efm-langserver:一款通用的语言服务器
efm-langserver 是一个由 matsuda-kazushi 开发并维护的开源项目,该项目主要使用 Go 语言编写。efm-langserver 旨在成为一个通用的 Language Server,支持通过指定命令生成特定错误消息格式,这在代码编辑时配合 linter 使用非常有用。
核心功能
efm-langserver 的核心功能是为各种编程语言提供统一的 Language Server 接口。它不包含任何格式化工具或静态分析工具,而是依赖于外部工具来提供这些功能。以下是它的一些主要特点:
- 支持多种编程语言,如 Lua、Python、JavaScript、CSS 等。
- 可自定义配置,支持通过 YAML 配置文件或客户端的 DidChangeConfiguration 通知进行配置更新。
- 支持多种 linter 和格式化工具,如 ESLint、Prettier、LuaFormatter 等。
- 提供了丰富的语言服务器功能,包括文档格式化、范围格式化、悬停提示、文档符号、代码动作和自动完成等。
最近更新的功能
efm-langserver 的最新版本引入了一些更新和改进,以下是最近更新的功能:
- 改进了配置文件的解析和验证。
- 增加了对更多语言和工具的支持,如 Dockerfile 的 hadolint、Elixir 的 mix credo 等。
- 优化了错误消息的格式化,使其更加直观和易于理解。
- 提高了对不同编辑器和 IDE 的兼容性,如 VSCode、Neovim、Emacs 等。
efm-langserver 的持续更新使其成为一个更加完善和强大的语言服务器,为开发者提供了更加便捷的代码编辑体验。