


10 ноября GitHub объявил об автоматической подготовке команд MSBuild в Microsoft C++ Language Server для Copilot CLI. Извлекатель команд сборки включён в сервер и запускается при открытии проекта. На Mentoring.digital разбираем, какую часть настройки это снимает с разработчика.
Для точного разбора C++ серверу нужен контекст компиляции. База compile_commands.json описывает команды для файлов проекта и помогает связать код с параметрами его сборки.
Раньше для проекта MSBuild требовалось подготовить эту базу самостоятельно либо поручить агенту найти и запустить отдельный навык настройки. Теперь извлекатель входит в C++ Language Server и запускается при старте сервера, когда базу команд нужно создать. Генерация идёт в фоне, а её длительность зависит от размера и сложности решения. Ход работы можно посмотреть командой /lsp logs.
Изменение упрощает подготовку контекста для перехода к определениям, поиска ссылок и других функций сервера. Оно не подтверждает успешную компиляцию всего приложения: сборку и тесты проекта по-прежнему нужно проверять отдельно.
В репозитории Microsoft C++ Language Server обозначен как preview. Для работы нужны активная подписка GitHub Copilot и совместимый Copilot CLI. Быстрый старт также предусматривает принятие лицензионных условий и вход в GitHub.
Объявленная автоматизация относится к MSBuild. Для CMake можно использовать навык генерации команд, а для собственной системы сборки потребуется своя база или извлекатель. Не стоит переносить обещание автоматической настройки на любой проект C++.
После настройки откройте знакомый небольшой проект и проверьте переход к определению символа, поиск его использований и работу с заголовочными файлами. Затем отдельно выполните штатную сборку и тесты. Так проще различить проблему навигации по коду и ошибку самого проекта.
Если контекст определяется неверно, сначала проверьте используемую систему сборки и доступность базы команд. Подготовить такой разбор и разобраться в зависимостях проекта поможет наставник по C++.