Skip to content
Tech News
← Back to articles

Protobuf has LSP support. You're welcome

read original more articles
Why This Matters

The introduction of a fully-featured, production-grade LSP server for Protobuf by Buf marks a significant milestone, providing modern IDE support for Protobuf developers for the first time. This enhancement streamlines development workflows, making Protobuf easier and more efficient to work with across popular editors like VSCode and Neovim, ultimately benefiting both the industry and consumers by fostering better tooling and productivity.

Key Takeaways

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 text editor, such as VSCode, IntelliJ, or Neovim. An LSP server provides the smarts that power go to definition, code completion, finding references, and semantics-aware syntax highlighting.

Before today, Protobuf lacked the same LSP support other major programming languages enjoy. We don’t want to overstate our own work, but this is a game-changer for Protobuf development: Protobuf now has modern IDE support for the first time, all powered by the Buf CLI.

At Buf, we believe that Protobuf is the best schema language, thanks to its established ecosystem of libraries and tools. Protobuf shouldn’t just be the smart choice; it should be the easiest choice too. This is why we’re releasing the Buf LSP server, as part of our family of tools that complete the Protobuf ecosystem, including Protobuf-ES (used in Chromium!), Protovalidate, ConnectRPC, and the Buf Schema Registry. No matter your project or use-case, developing with Protobuf should be the easy, obvious choice.

Here’s how you can try it out!

Installing the Buf LSP

VSCode is one of the most popular graphical editors available, and it has stellar LSP support (LSP originated with VSCode). To use the Buf LSP, just install the Buf extension. This will automatically use your installed version of the Buf CLI (which bundles the LSP server), or install one if you need it.

Neovim is Buf engineers’ favorite editor, and the Buf LSP works great with it, too. All you need to do is install the Buf CLI, and configure Neovim to use it as an LSP server.

Make sure you’ve installed the nvim-lspconfig repository, which provides default LSP config options. Follow the instructions here. Add lspconfig.buf_ls.setup {} to your .nvimrc .

Alternatively, you can add the following somewhere in init.lua (or another config file, if you like):

... continue reading