主要观点:作者在阅读语言服务器协议文档时,决定围绕 LSP 做一个有趣的项目。介绍了 LSP 的定义、工作原理,以及为何选择 Go 语言来实现,还详细阐述了项目的设置、结构、核心实现(包括自动补全和代码片段)以及如何在 VSCode 和 Neovim 中使用该语言服务器,最后提到了未来的改进方向。
关键信息:
- LSP 是语言服务器协议,可实现不同编辑器间的语言支持共享,定义了多种常见功能协议。
- 选择 Go 语言的原因:简单、标准库实用、错误处理清晰、迭代快。
- 项目结构:包括
go.mod、go.sum等文件及不同功能的代码文件。 - 核心实现:通过
glsp库实现 LSP 相关方法,定义了自动补全和代码片段的映射。 - 在 VSCode 和 Neovim 中的使用方式:创建客户端扩展或添加配置。
- 未来改进:添加 emoji 建议、自动大写等功能。
重要细节:
- LSP 工作流程通过序列图展示了用户与编辑器、LSP 之间的交互。
- Go 语言在项目中的具体优势体现,如简单的结构和函数等。
- 代码片段的具体定义和自动补全的实现逻辑。
- 在不同编辑器中使用语言服务器的具体命令和配置。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。