标题 | 说明 |
---|---|
LSP 模式 -- 支持 Emacs 的语言服务器协议。 | 支持多种语言的语言服务器协议,支持Emacs。 |
支持 Emacs 的语言服务器协议
主页 • 安装 • 语言 • 设置 • 扩展 • 故障排除 • 屏幕截图 • FAQ
为什么?
- 社区驱动
- 功能齐全 -- 支持语言服务器协议 v3.14 的所有功能。
- 快速 -- 见性能部分。
- 灵活 -- 可以选择具有华丽用户界面的完整集成开发环境,也可以选择最小化的免打扰。
- 易于配置 -- 开箱即用,如果有额外的包,则自动升级。
概述
语言服务器协议的客户端(v3.14),lsp-mode 的目的是提供类似 IDE 的体验,它提供了与最流行的 Emacs 包的可选集成,如 company、flycheck 和 projectile。
- 非阻塞异步调用
- 当Emacs>26时,通过 flycheck(推荐)或 flymake 进行实时诊断//linting(需要flymake>=1.0.5)
- 代码完成 -- company-capf / completion-at-point(注意,不再支持company-lsp)。
- 悬停 -- 使用 lsp-ui
- 代码动作 -- 通过 lsp-execute-code-action、modeline(推荐)或 lsp-ui sideline。
- 代码大纲 -- 使用内置的 imenu 或 helm-imenu。
- 代码导航 -- 使用内置的 xref、lsp-treemacs 树形视图或 lsp-ui peek 函数。
- 代码透镜
- 符号亮点
- 格式化
- 模型上的项目错误
- 调试器 -- dap-mode
- 标题行上的面包屑
- Helm 集成 -- helm-lsp
- Ivy 集成 -- lsp-ivy
- Treemacs 集成 -- lsp-treemacs。
- LSP 3.16 所定义的语义高亮(兼容的语言服务器包括 clangd 和 rust-analyzer 的最新开发版本)。
- 整合 which-key,更好的发现
演讲/演示
- System Crafters channel Emacs IDE Videos
- skybert's emacsconf presentation (Java)
- thatwist 的 ScalaUA 大会 演讲 (Scala)
另见
- lsp-docker -- 提供带有预配置语言服务器的 docker 镜像和相应的 emacs 配置。
- company-box -- 带有图标的 company 前端。
- dap-mode -- lsp-mode 的调试器集成。
- eglot -- 另一种最小化 LSP 实现。
- which-keyy -- Emacs 包,可在弹出式中显示可用的键绑定。
- projectile -- Emacs 的项目交互库。
- emacs-tree-sitter -- 通过 tree-sitter 实现更快、更精细的代码高亮。
- gccemacs -- 修改后的 Emacs 能够作为本地代码编译和运行 Emacs Lisp。
贡献
欢迎大家踊跃贡献。
支持本项目
emacs-lsp 组织有超过 20.000 行代码,为了保持所有这些工作,我们需要实现新特性,并在许多问题上帮助社区。
你可以通过 支持这个项目 来帮助我们继续下去并改进它。
成员
这里是目前 lsp-mode 成员的名单,以及他们主要工作/负责的内容。
(恕删略。请参见自述文件)
(First version translated and edited by vz on 2020.12.20)