stamatios
← Voltar ao feed
Contêiner de carga içado por garra de colchetes de IDE, metáfora do suporte de LSP ao Protobuf
Dev & Engenharia · Open Source

Protobuf ganha suporte oficial de LSP pela Buf

resumo de ~3 min

O suporte anunciado

A Buf anunciou, em 14 de janeiro de 2026, o que descreve como o primeiro servidor LSP completo e compatível com a especificação para Protobuf. O Language Server Protocol é uma API padrão para integrar recursos de linguagens a editores e ambientes de desenvolvimento. Nesse caso, o servidor oferece recursos como ir para a definição, conclusão de código, localização de referências e realce de sintaxe orientado pela semântica.

Segundo a Buf, Protobuf não tinha antes o mesmo nível de suporte LSP disponível para outras linguagens de programação. A empresa afirma que o novo servidor leva suporte moderno de IDE ao desenvolvimento com Protobuf e que tudo é disponibilizado por meio do Buf CLI. O servidor pode ser usado no VSCode pela extensão da Buf, que aproveita a versão instalada do Buf CLI ou instala uma quando necessário. No Neovim, é preciso instalar o Buf CLI, configurar o editor para usar o comando buf lsp serve e, opcionalmente, utilizar o repositório nvim-lspconfig para as configurações padrão. Em outros editores, a orientação é habilitar a integração com LSP e executar esse mesmo comando para iniciar o servidor.

Como a implementação funciona

A base do LSP é o protocompile, frontend de compilação de Protobuf mantido pela Buf. Essa camada analisa arquivos e chama plugins, em uma função comparável à do protoc. A Buf afirma que sua implementação é compatível com a especificação, mais rápida e mais flexível que o protoc, e que o Google já a utiliza em conjunto com o compilador tradicional em partes de sua base de código.

Para o servidor LSP, a empresa ampliou o protocompile com um frontend orientado a consultas. A arquitetura permite compilação incremental e diagnósticos mais precisos. Um exemplo apresentado é a identificação correta de um modificador repeated duplicado, com indicação do erro, destaque da primeira ocorrência e sugestão para remover a segunda.

A Buf também desenvolveu uma nova árvore sintática abstrata e uma representação intermediária para diagnosticar erros com precisão, em vez de usar FileDescriptorProto. De acordo com a empresa, essa estrutura facilita a implementação de recursos futuros do Protobuf, incluindo funcionalidades previstas nas Editions 2024. Ela também foi projetada para consumir pouca memória e lidar com espaços de trabalho que contenham módulos Buf muito grandes.

Próximos recursos

A Buf ressalva que o trabalho ainda não terminou. A empresa planeja continuar aprimorando os diagnósticos e adicionar correções automáticas para imports, integração mais estreita com buf.yaml, incluindo importação automática de módulos, conclusão de código e busca de referências para opções personalizadas, sugestões automáticas de números de campos e enums e suporte dedicado ao Protovalidate, com realce de sintaxe para trechos em CEL.

O lançamento integra a família de ferramentas da Buf para o ecossistema Protobuf, que também inclui Protobuf-ES, Protovalidate, ConnectRPC e o Buf Schema Registry. A tese da empresa é que, além de ser uma escolha consolidada por seu ecossistema de bibliotecas e ferramentas, Protobuf deve se tornar uma opção mais simples de adotar e utilizar.