首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

Protobuf 有 LSP 支持。不客气

摘要

Buf is proud to announce the first fully-featured, production-grade LSP server for Protobuf. The Language Server Protocol is the standard API for integrating language support into your favorite IDE or...

the Buf LSP Protobuf and you server for support your
2026-08-17 1 阅读 约6分钟阅读 theanonymousone
分享:
字号:
Buf 很自豪地宣布推出首款适用于 Protobuf 的全功能生产级 LSP 服务器。语言服务器协议是标准 API,用于将语言支持集成到您喜欢的 IDE 或文本编辑器(例如 VSCode、IntelliJ 或 Neovim)中。 LSP 服务器提供智能功能,支持定义、代码完成、查找引用和语义感知语法突出显示。在今天之前,Protobuf 缺乏其他主要编程语言所享有的 LSP 支持。我们不想夸大我们自己的工作,但这对 Protobuf 开发来说是一个游戏规则改变者:Protobuf 现在首次拥有现代 IDE 支持,全部由 Buf CLI 提供支持。在 Buf,我们相信 Protobuf 是最好的模式语言,这要归功于其已建立的库和工具生态系统。 Protobuf 不应该只是明智的选择;这也应该是最简单的选择。这就是为什么我们发布 Buf LSP 服务器,作为我们完善 Protobuf 生态系统的工具系列的一部分,包括 Protobuf-ES(在 Chromium 中使用!)、Protovalidate、ConnectRPC 和 Buf Schema Registry。无论您的项目或用例如何,使用 Protobuf 进行开发都应该是简单、显而易见的选择。您可以尝试以下方法!安装 Buf LSP VSCode 是最流行的图形编辑器之一,并且它具有出色的 LSP 支持(LSP 源自 VSCode)。要使用 Buf LSP,只需安装 Buf 扩展即可。这将自动使用您安装的 Buf CLI 版本(它捆绑了 LSP 服务器),或者如果您需要,也可以安装一个版本。 Neovim 是 Buf 工程师最喜欢的编辑器,Buf LSP 也能很好地配合它。您所需要做的就是安装 Buf CLI,并将 Neovim 配置为将其用作 LSP 服务器。确保您已安装 nvim-lspconfig 存储库,它提供默认的 LSP 配置选项。请按照此处的说明进行操作。将 lspconfig.buf_ls.setup {} 添加到您的 .nvimrc 。或者,您可以在 init.lua(或其他配置文件,如果您愿意的话)中的某个位置添加以下内容:vim。 LSP。 config ( 'buf-lsp' , { cmd = { 'buf' , 'lsp' , 'serve' }, filetypes = { 'proto' }, root_markers = { 'buf.yaml' , '.git' }, }) 然后,您可以在 .nvimrc 中使用 vim.lsp.enable('buf-lsp') 启用它。在此处了解有关 LSP 和 Neovim 的更多信息。如果您使用其他编辑器,请首先了解 LSP 集成的工作原理,然后确保运行 buf lspserve 命令来生成服务器。 Buf 已经维护了一个 Protobuf 编译器前端(解析文件和调用插件的部分,如 protoc ),我们称之为 protocompile 。我们的实现不仅完全兼容,而且比 protoc 更快、更灵活。我们的编译器非常好,甚至谷歌也在其庞大代码库的某些部分将它与 protoc 一起使用。为了构建 Buf LSP,我们将原始编译提升到了一个新的水平。我们开发了一个全新的查询驱动前端,可以实现增量编译和更好的诊断。例如,与 protoc 不同,我们正确诊断重复的重复修饰符: error:遇到多个类型修饰符 --> testdata/parser/type/repeated.proto:23:14 | 23 | 23重复 重复 M x4 = 4; | -------- ^^^^^^^^ 帮助:考虑删除此 | | |第一个在这里我们设计了一个新的 AST 和中间表示来精确诊断这些错误,而不是使用 FileDescriptorProto 。它的灵活性使我们可以轻松地实现添加到 Protobuf 的新语言功能,例如 2024 版中即将推出的功能。它还具有内存效率,因此它可以处理包含非常大的 Buf 模块的工作区。我们的承诺 我们在 Buf LSP 上的工作尚未完成。我们一直在改进我们的诊断,并且我们还计划向 LSP 服务器添加更多功能:添加 import 作为自动修复。与 buf.yaml 更紧密的集成(例如自动导入模块)。自定义选项的代码完成和参考查找。自动建议字段/枚举编号。专用的 Protovalidate 支持,包括 CEL 片段的语法突出显示。在 Buf,我们将始终突破 Protobuf 所能实现的界限,为所有人提供模式驱动的开发!如果您需要帮助执行组织数据标准,请联系我们,看看 Buf 是否可以提供帮助。如果构建优秀的开发人员工具让您感到兴奋,请查看我们的职业页面!
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱