标题:LSP 模式 - Emacs 的语言服务器协议支持 描述:Emacs 的语言服务器协议支持,支持多种语言 根文件:README.md
Emacs 的语言服务器协议支持
主页 • 安装 • 语言 • 设置 • 教程 • 故障排除 • 截图 • 常见问题
为什么选择它?
- :heart: 社区驱动
- :gem: 功能齐全 - 支持语言服务器协议 v3.14 中的所有功能。
- :rocket: 快速 - 查看性能部分。
- :star2: 灵活 - 可选择全功能 IDE 或简约无干扰模式。
- :gear: 易于配置 - 开箱即用,自动升级(如果存在其他包)。
概述
语言服务器协议(v3.14)的客户端。lsp-mode 旨在通过与最流行的 Emacs 包(如 company
、flycheck
和 projectile
)的可选集成,提供类似 IDE 的体验。
- 非阻塞异步调用
- 实时诊断/代码检查,通过 flycheck(推荐)或 Emacs > 26 时的
flymake
(需要 flymake>=1.0.5) - 代码补全 -
company-capf
/completion-at-point
(注意:不再支持 company-lsp) - 悬停提示 - 使用 lsp-ui
- 代码操作 - 通过
lsp-execute-code-action
、模式行(推荐)或 lsp-ui 侧边栏 - 代码大纲 - 使用内置的 imenu 或
helm-imenu
- 代码导航 - 使用内置的 xref、lsp-treemacs 树视图或 lsp-ui 查看功能
- 代码镜头
- 符号高亮
- 格式化
- 模式行上的项目错误
- 调试器 - dap-mode
- 标题行上的面包屑导航
- Helm 集成 - helm-lsp
- Ivy 集成 - lsp-ivy
- Consult 集成 - consult-lsp
- Treemacs 集成 - lsp-treemacs
- LSP 3.16 定义的语义标记(兼容的语言服务器包括 clangd 和 rust-analyzer 的最新开发版本)
- which-key 集成,便于发现功能
- iedit
- dired
- ido
演示/演示
- System Crafters 频道的 Emacs IDE 视频
- skybert 的 emacsconf 演示(Java)
- thatwist 在 ScalaUA 会议上的演示(Scala)
另请参阅
- lsp-docker - 提供预配置语言服务器的 Docker 镜像及相应的 Emacs 配置。
- company-box - 带图标的
company
前端。 - dap-mode -
lsp-mode
的调试器集成。 - eglot - 另一种最小化的 LSP 实现。
- which-key - 在弹出窗口中显示可用键绑定的 Emacs 包。
- projectile - Emacs 的项目交互库。
- emacs-tree-sitter - 通过 tree-sitter 实现更快、更精细的代码高亮。
- gccemacs - 经过修改的 Emacs,能够将 Emacs Lisp 编译并运行为本地代码。
贡献
非常欢迎贡献!
注意 客户端的文档是从客户端本身的文档注释(参见 lsp-doc.el)和一些元数据(参见 lsp-clients.json)生成的,所以请相应地提交更正。
支持项目
emacs-lsp
组织拥有超过 20,000 行代码,为了保持所有这些正常运行,我们需要实现新功能并帮助社区解决大量问题。
您可以通过**支持项目**来帮助我们继续改进。
成员
以下是当前 lsp-mode
成员及其主要工作/职责列表。
totbwf F# |
brotzeit Rust |
dsyzling Scala |
kurnevsky Scala | Rust |
seagle0128 Go | Python MS |
sebastiansturm lsp-mode 核心 | C++ |
vibhavp lsp-mode 核心 |
yyoncho lsp-mode 核心 | Java |
ericdallo Dart/Flutter | Clojure |
danielmartin C++ | Swift |
kiennq 补全 | pwsh |
nbfalcon lsp-mode 核心 | iedit |
psibi Terraform | Nix |
razzmatazz C# | F# |
jcs090218 lsp-mode 核心 |