# Buf объявил 14 января 2026 года: LSP для protobuf проверяет схему

> Buf выпустил LSP для Protobuf. Разбираю, что изменилось в работе с `.proto`, как подключить сервер в VS Code и Neovim и где заканчивается его интеграция с Claude Code.

Источник: https://vibeceh.ru/novosti/v-protobuf-poyavilas-podderzhka-yazykovogo-servera-udobnee
Автор: Сергей Мазур · опубликовано 2026-08-17

Я разбираю здесь protobuf, `.proto`-файлы и схемы, которые в них описываются. На примере [вайб-кодинга](/concepts/vajb-koding) покажу, как [ИИ-агент](/concepts/agent) работает с таким проектом: перед правкой я проверяю его Контекст и доступный Токен, а Buf LSP добавляет подсказки, диагностику и переходы прямо в редакторе. Конкретные ошибки схемы лучше подтвердить отдельной проверкой проекта.

## Что произошло с Protobuf и языковым сервером?

четырнадцатого января Buf объявил сервер, который назвал первым полнофункциональным и production-grade LSP для Protobuf. Buf встроил сервер в CLI. В `.proto` он даёт переход к определению, автодополнение, поиск ссылок, диагностику и семантическую подсветку. Я не нашёл в анонсе Buf номер версии продукта. Это пригодится тебе, если ты правишь `.proto` в VS Code или Neovim.

Поддержка появилась не внутри самого проекта Protobuf и не в Anthropic. Её выпустил Buf. Первоисточник: анонс Buf от 14 января 2026 года.

> “Buf is proud to announce the first fully-featured, production-grade LSP server for Protobuf.”
> 
> Перевод: «Buf с гордостью представляет первый LSP-сервер для Protobuf с полным набором функций, готовый для production».
> - Buf, анонс от четырнадцатого января.

До этого, по формулировке Buf, для Protobuf не было одного сопоставимого LSP-сервера с таким набором функций. Теперь Buf связывает сущности схемы между файлами и показывает диагностику прямо в редакторе. Я проверил список возможностей: из `.proto` можно перейти к определению, найти ссылки и получить автодополнение.

Перед генерацией кода ты получаешь ещё одну проверку схемы: редактор может показывать диагностику ошибок схемы раньше следующего запуска.

Версия Buf CLI или расширения в анонсе Buf не указана. Я не подставляю её из сторонних страниц: номер версии здесь остаётся неизвестным.

## Что было раньше и что изменилось?

раньше Protobuf не хватало сопоставимой LSP-поддержки. После анонса появился сервер с переходом к определению, автодополнением, поиском ссылок, диагностикой и семантической подсветкой. На старте не было автоматических импортов, полной интеграции с `buf.yaml`, поддержки custom options, автоподстановки номеров и Protovalidate/CEL.

![Кот сравнивает колонки «Было» и «Стало» с возможностями Buf LSP.](https://s3.regru.cloud/crossmark/statejnik/images/guides/v-protobuf-poyavilas-podderzhka-yazykovogo-servera-udobnee/kadr-1.webp)

| Было | Стало |
|---|---|
| У Buf не было собственного полнофункционального LSP для Protobuf | Появился LSP-сервер внутри Buf CLI |
| `.proto`-файлы не имели заявленного Buf-набора навигационных функций | Есть переход к определению, автодополнение и поиск ссылок |
| В старом состоянии Buf не обещал этот набор функций | Сервер добавляет диагностику и семантическую подсветку |
| Форматирование не подтверждено в основном списке анонса Buf | Форматирование отдельно обсуждается в issue о расхождении с `buf format` |
| Ограничения не были частью старого состояния | Buf отдельно перечислил функции, которых пока нет |

Я бы начал не с фразы `production-grade`, а со списка того, чего сервер пока не умеет. На старте он не добавляет `import` автоматически, не учитывает часть настроек `buf.yaml`, не подсказывает custom options и номера полей. Также нет отдельной поддержки Protovalidate, включая подсветку CEL-фрагментов.

Я нашёл ещё несколько расхождений в issue Buf: LSP не всегда следует `buf.yaml`, падает на некоторых `.proto`, а форматирование может отличаться от `buf format`; отдельный issue также посвящён отсутствию Format Selection. Поэтому «production-grade» не означает, что каждая команда редактора уже работает без сюрпризов.

## Что проверить перед подключением Buf LSP?

если ты работаешь с protobuf-файлами, подключи Buf LSP и проверь его на небольшой правке. Редактор может показать часть ошибок схемы во время редактирования, а также дать автодополнение, переходы и ссылки в `.proto`. Для Claude Code готового официального Protobuf-плагина Anthropic в источниках статьи не указано.

Завтра действие простое: открой `.proto`, внеси небольшую правку и посмотри, что показывает редактор. Если он подсветил ошибку, сначала исправь схему. Не проси агента сразу переписывать связанные файлы и запускать весь процесс генерации.

Я разделяю две проверки:

1. Buf LSP проверяет и объясняет происходящее в редакторе.
2. Затем отдельно проверь проект инструментом, который используешь для генерации кода.

Поэтому после правки я всё равно запускаю обычную проверку схемы и кода.

С [Claude Code](/guides/claude-code-bezopasnyy-dopusk-agenta-k-proektu), который читает файлы и может менять их как агент, граница ещё заметнее. Anthropic описывает работу с LSP через плагины. В Claude Code отдельно подключают LSP-плагин, а Buf LSP запускается через Buf CLI. Перед задачей проверь, какие файлы и настройки Claude Code реально видит, а не какие, как тебе кажется, должен видеть.

В официальном каталоге Anthropic Protobuf не указан среди готовых LSP-плагинов. Пользовательский плагин возможен, но для него отдельно нужен установленный бинарник сервера. Поэтому я бы не писал в задаче Claude Code «подключи Buf LSP» и не ждал, что агент сам найдёт рабочую интеграцию.

## Как проверить подключение Buf LSP по шагам?

я бы проверял подключение в таком порядке: сначала открыть `.proto` в VS Code и убедиться, что появились диагностика и переходы; для Neovim отдельно проверить запуск команды `buf lsp serve`. Для ручной конфигурации укажи тип файлов `proto`, а корнем проекта выбери `buf.yaml` или `.git`. Команды установки и версия CLI в источнике не указаны.

![Собака поднимает лапу рядом с тремя шагами проверки Buf LSP.](https://s3.regru.cloud/crossmark/statejnik/images/guides/v-protobuf-poyavilas-podderzhka-yazykovogo-servera-udobnee/kadr-2.webp)

![Мужчина у конфигурации Neovim закрывает лицо ладонью из-за неправильного корня проекта.](https://s3.regru.cloud/crossmark/statejnik/images/guides/v-protobuf-poyavilas-podderzhka-yazykovogo-servera-udobnee/kadr-3.webp)

1. **Установи расширение Buf в VS Code и открой файл с расширением `.proto`;** отдельная команда установки в доступных материалах не приведена.

   После установки открой файл с расширением `.proto`. Проверь, появились ли диагностика, автодополнение и переходы. Не считай сам факт установленного расширения доказательством, что сервер обработал проект.

2. **Подготовь Buf CLI для Neovim:** он запускается как LSP-сервер.

   Минимальную версию CLI в доступных источниках определить нельзя. Я не добавляю команду установки или номер версии, потому что это пришлось бы брать из неподтверждённого документа.

3. **Запусти сервер правильной командой.** В настройке Neovim укажи запуск `buf lsp serve`.

   ```lua
   vim.lsp.config('buf-lsp', {
       cmd = { 'buf', 'lsp', 'serve' },
       filetypes = { 'proto' },
       root_markers = { 'buf.yaml', '.git' },
   })
   ```

   Затем включи конфигурацию:

   ```lua
   vim.lsp.enable('buf-lsp')
   ```

4. **Укажи тип файлов `proto`.** В конфигурации оставь `filetypes = { 'proto' }`.

   Я оставляю `proto`, чтобы Neovim запускал сервер только для `.proto`. Не подставляй сюда расширение `.proto`: в официальном примере Buf используется значение `proto`.

5. **Выбери корень проекта.** Для корня используй `buf.yaml` или `.git`.

   ```lua
   root_markers = { 'buf.yaml', '.git' }
   ```

   Корнем я ставлю `buf.yaml` или `.git`: иначе импорт может проверяться не так, как в CLI. Если открыть отдельный файл не из того каталога, результат может отличаться от проверки Buf CLI.

6. **Проверь работу на одном файле.** Открой `.proto` и проверь диагностику, переход к определению и ссылки.

   Сначала внеси маленькую правку. Не начинай с масштабного переписывания схемы агентом. Если функция не сработала, сначала проверь подключение сервера и корень проекта. Полную замену конфига оставь на потом.

## Сколько стоит Buf LSP и работает ли он из России?

проверенные источники подтверждают локальные способы подключения, но не называют цену Buf LSP, цену расширения, региональные ограничения, минимальную версию CLI или доступность из России. VS Code использует расширение Buf, Neovim запускает сервер через локальный Buf CLI. Бесплатность и работу без ограничений обещать нельзя.

Здесь важно разделить редактор и внешние сервисы. В VS Code в источнике указано расширение Buf. Neovim работает с локальным Buf CLI и командой `buf lsp serve`. Источники не сообщают о цене LSP или необходимости отдельного токена.

В проверенных источниках нет данных о:

- цене расширения;
- цене Buf CLI;
- наличии платных функций;
- региональных ограничениях;
- доступности загрузки из России;
- минимальной версии CLI.

Поэтому я не буду писать «Buf LSP бесплатен» или «из России всё работает». Таких данных в проверенных источниках нет. Перед подключением проверь официальную страницу расширения и документацию Buf на момент установки.

## Вопросы и ответы

Фраза protobuf oneof здесь только пример конструкции схемы: Buf LSP помогает диагностировать `.proto` и переходить между определениями, но устройство `oneof` в новости не разбирается.

Проверь импорт на проекте с корнем `buf.yaml` или `.git` и посмотри, как LSP обрабатывает его в конкретном проекте. Полный разбор protocol buffers protobuf import в эту новость не входит.

Подробные примеры protobuf generate не входят в проверенные источники этой статьи. Для проверки новости достаточно открыть локальный `.proto` в редакторе и посмотреть, показывает ли Buf LSP диагностику и переходы.

Синтаксис и диагностика protobuf enum не разобраны в проверенных источниках этой новости. Поэтому я не привожу здесь предметное описание конструкции.

Правила `protobuf package` и выбора имени пакета не разобраны в проверенных источниках этой новости. Я не добавляю сюда учебное объяснение без отдельной ссылки на документацию Protobuf.

Список `protobuf type` и правила выбора типа поля не входят в проверенные источники этой новости. Я не выдаю их за возможность Buf LSP.

Для protobuf vscode установи расширение Buf, открой `.proto` и проверь диагностику, автодополнение и переходы. В проверенных источниках не указаны команда установки, версия расширения и региональные ограничения. Если расширение не работает, проверь корень проекта и наличие Buf CLI там, где это требуется.

После подключения языкового сервера `.proto` редактируется с диагностикой, автодополнением, переходом к определениям и поиском ссылок. Buf LSP не является инструментом генерации кода, поэтому protobuf compiler и protobuf json проверяй отдельно. Я также не считаю результат LSP доказательством готовности сборки и отдельно проверяю protobuf api проекта.

- [Plugins reference - Claude Code Docs](https://code.claude.com/docs/en/plugins-reference)
- [Create plugins - Claude Code Docs](https://code.claude.com/docs/en/plugins)
- [Tools reference - Claude Code Docs](https://code.claude.com/docs/en/tools-reference)
- [Discover and install prebuilt plugins - Claude Code Docs](https://code.claude.com/docs/en/discover-plugins)
- [LSP formatting behavior is different from `buf format` - GitHub Issue #3701](https://github.com/bufbuild/buf/issues/3701)
- [Buf LSP diagnostic does not follow `buf.yaml` setting - GitHub Issue #4159](https://github.com/bufbuild/buf/issues/4159)
- [LSP crashes with SIGSEGV when processing service definitions - GitHub Issue #4192](https://github.com/bufbuild/buf/issues/4192)
- [Buf LSP throws index out of range - GitHub Issue #4218](https://github.com/bufbuild/buf/issues/4218)
- [Format Selection support - GitHub Issue #4352](https://github.com/bufbuild/buf/issues/4352)
