Describe la característica
La idea básica se ha introducido en format-all-the-code
en https://github.com/lassik/emacs-format-all-the-code/issues/47. La suposición es que un servidor de idiomas probablemente tiene una mejor idea de cómo formatear el código que cualquier conjunto predeterminado en format-all-the-code
. La propuesta, citada a partir de ahí, es la siguiente:
lsp-mode
no está habilitado para el búfer actual, vuelva al comportamiento actual.textDocument/formatting
del servidor de idioma actual (o tal vez servidores, ya que aparentemente es un flujo de trabajo compatible). Si no está disponible, recurra al comportamiento actual.textDocument/formatting
(probablemente a través de lsp-format-buffer
) en lugar de la herramienta predefinida.No está claro si es una mejor idea hacer que format-all-the-things
LSP sea compatible o extender el contenedor de formato automático doom-emacs
'. De cualquier manera, estaría feliz de tener la función.
Información del sistema
Lo siento por la respuesta tardía; solo repicando para hacerle saber que estoy al tanto de este problema. El módulo :editor format
está dolorosamente atrasado en una reescritura, tanto para que sea compatible con LSP, como posiblemente para reemplazar format-all-the-code con reformatter.el para facilitar un backend de formato más personalizable.
Sin embargo, todavía no tengo tiempo para trabajar en esto, pero no lo he olvidado.
Además, @Kaali en el # 2516 mencionó este desconocimiento de LSP en el modo go. Por el momento, la solución para esto es deshabilitar nuestro formateador agregando go-mode
a +format-on-save-enabled-modes
(que es una lista negada, por defecto, debido a que su primer elemento es not
), luego agregue lsp-format-buffer
al local before-save-hook de ese modo. p.ej
(add-to-list '+format-on-save-enabled-modes 'go-mode t)
(add-hook! 'go-mode-hook
(add-hook 'before-save-hook #'lsp-format-buffer nil 'local)
(add-hook 'before-save-hook #'lsp-organize-imports nil 'local))
@hlissner ¡ Gracias por los comentarios! Antes de reemplazar format-all-the-code
, es posible que le interesen los desarrollos recientes , que presentan formateadores configurables globales y locales de búfer. De lo contrario: no te preocupes por mí, seré feliz cuando esté terminado, pero también estoy bastante feliz con Doom ahora mismo, incluso sin él :)
A partir de 7472cff, nuestros comandos de formato admiten LSP (si el servidor en ejecución admite el formateo).
Esto se puede desactivar globalmente con
(setq +format-with-lsp nil)
O por modo con
(setq-hook! 'python-mode-hook +format-with-lsp nil)
En cualquier caso, consideraré esto resuelto. ¡Gracias por avisarme!
Comentario más útil
Lo siento por la respuesta tardía; solo repicando para hacerle saber que estoy al tanto de este problema. El módulo
:editor format
está dolorosamente atrasado en una reescritura, tanto para que sea compatible con LSP, como posiblemente para reemplazar format-all-the-code con reformatter.el para facilitar un backend de formato más personalizable.Sin embargo, todavía no tengo tiempo para trabajar en esto, pero no lo he olvidado.
Además, @Kaali en el # 2516 mencionó este desconocimiento de LSP en el modo go. Por el momento, la solución para esto es deshabilitar nuestro formateador agregando
go-mode
a+format-on-save-enabled-modes
(que es una lista negada, por defecto, debido a que su primer elemento esnot
), luego agreguelsp-format-buffer
al local before-save-hook de ese modo. p.ej