为何`emacs-lisp`语言没有对应的语言服务器协议?
为什么Emacs-Lisp没有对应的语言服务器协议实现?
- 原生支持足够强大:Emacs本身基于Emacs-Lisp构建,内置了完整的Elisp代码分析、补全、定义跳转、语法检查工具。比如
elisp-mode自带语法高亮与函数补全,find-function可直接跳转至函数定义,checkdoc能完成代码规范校验——这些功能完全覆盖了LSP提供的核心能力,无需额外通过LSP框架实现。 - LSP存在冗余性:LSP的设计初衷是通过统一协议实现编辑器与语言服务的解耦,解决多编辑器对多种语言的支持问题。但Elisp是Emacs专属语言,Emacs对它的支持是深度定制化的,引入LSP反而会增加不必要的层级开销,原生工具的效率反而更高。
- 已有更适配的替代工具:社区针对Elisp开发了大量原生集成工具,比如
company-elisp提供智能补全,flycheck-elisp实现实时语法检查,xref支持跨文件定义跳转,这些工具完全贴合Emacs的工作流,比通用LSP方案更适配。 - 社区需求优先级较低:LSP的发展重点集中在跨编辑器的通用语言支持上,而Elisp的核心用户群体是Emacs深度使用者,原生工具已能满足日常开发需求,因此社区没有足够动力去开发专门的Elisp语言服务器。
内容的提问来源于stack exchange,提问作者Refael Sheinker
相关产品推荐
相关产品推荐

