描述特征
基本思想已在https://github.com/lassik/emacs-format-all-the-code/issues/47 中引入format-all-the-code
。 假设是语言服务器可能比format-all-the-code
任何默认设置更好地了解如何格式化代码。 从那里引用的提案是这样的:
lsp-mode
,则回退到当前行为。textDocument/formatting
功能。 如果它不可用,则回退到当前行为。textDocument/formatting
(可能通过lsp-format-buffer
)而不是预定义的工具。目前尚不清楚使format-all-the-things
LSP-aware 或扩展doom-emacs
'自动格式化包装器是否更好。 无论哪种方式,我都会很高兴拥有该功能。
系统信息
回复晚了非常抱歉; 只是想告诉你我知道这个问题。 :editor format
模块很早就应该重写了,这既是为了使其具有 LSP 感知能力,也可能将 format-all-the-code 替换为 reformatter.el 以促进更可定制的格式化后端。
然而,我还没有时间做这件事,但我并没有忘记它。
此外,#2516 中的@Kaali在 go-mode 中提出了这种 LSP- go-mode
到+format-on-save-enabled-modes
(默认情况下这是一个否定列表,因为它的第一个元素是not
)来禁用我们的格式化程序lsp-format-buffer
到该模式的本地保存前挂钩。 例如
(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感谢您的反馈! 在替换format-all-the-code
,您可能对最近的发展感兴趣,它引入了全局和缓冲区本地可配置格式化程序。 否则:别介意我,如果完成了我会很高兴的,但即使没有它,我现在也对 Doom 很满意:)
从 7472cff 开始,我们的格式化命令支持 LSP(如果正在运行的服务器支持格式化)。
这可以全局禁用
(setq +format-with-lsp nil)
或者在每个模式的基础上
(setq-hook! 'python-mode-hook +format-with-lsp nil)
无论如何,我会认为这已解决。 感谢您引起我的注意!
最有用的评论
回复晚了非常抱歉; 只是想告诉你我知道这个问题。
:editor format
模块很早就应该重写了,这既是为了使其具有 LSP 感知能力,也可能将 format-all-the-code 替换为 reformatter.el 以促进更可定制的格式化后端。然而,我还没有时间做这件事,但我并没有忘记它。
此外,#2516 中的@Kaali在 go-mode 中提出了这种 LSP-
go-mode
到+format-on-save-enabled-modes
(默认情况下这是一个否定列表,因为它的第一个元素是not
)来禁用我们的格式化程序lsp-format-buffer
到该模式的本地保存前挂钩。 例如