以下是我在Rust开发中经常使用的一个场景:
- 铁 rust LSP始终打开.
- 我把LSP特性称为"格式化当前缓冲区"(或者不管它叫什么).
- LSP返回格式化的缓冲区(在内部,LSP使用
rustfmt
).
由于Emacs Elisp没有LSP实现,我如何才能实现类似的功能呢? 例如,我想按下某个按钮,然后格式化缓冲区中的代码(不仅仅是缩进,格式化).
附注: Emacs新手在此,从Neovim过渡过来.
以下是我在Rust开发中经常使用的一个场景:
rustfmt
).由于Emacs Elisp没有LSP实现,我如何才能实现类似的功能呢? 例如,我想按下某个按钮,然后格式化缓冲区中的代码(不仅仅是缩进,格式化).
附注: Emacs新手在此,从Neovim过渡过来.
事实上,在用户配置文件中定义了Elisp条格式化规则,每个项目.dir-locals.el条,并且通常遵循this style guide suggestions条.
从Emacs 29开始,对于其中的pretest is now available,可以使用新函数pp-emacs-lisp-code
,该函数"应用适用于Emacs Lisp代码的格式化规则".
该函数的文档字符串当前声明:
将SEXP插入当前缓冲区,格式为Emacs Lisp代码.使用 用于控制所需线路长度的
pp-max-width
变量.注意事项 对于大型SEXP来说,这可能是缓慢的.
在Command that formats (prettifies) Elisp code个线程中列出了许多用于Elisp格式化的第三方包.