Коротко — не нужно VPN и Copilot Chat, чтобы вернуть нормальное автодополнение C++ в VS Code. Copilot — это дополнительный (AI) сервис; стандартный IntelliSense/LS (C/C++ language server) работает локально или через другие расширения. Ниже — практические варианты восстановления и отладка.
1) Установите (или проверьте) расширение Microsoft C/C++ (ms-vscode.cpptools)
- Это основной (и до сих пор поддерживаемый) LSP для C/C++ в VS Code. Оно обеспечивает автодополнение, переход к определению, подсказки типов и т. д.
- Если уже установлено, откройте Command Palette → C/C++: Reset IntelliSense Database (сброс БД) и перезапустите VS Code.
- Можно также открыть C/C++: Log Diagnostics — там видно, какие include-пути и defines используются и почему может не работать автодополнение.
2) Убедитесь, что VS Code получил правильную конфигурацию для проекта PlatformIO
- Откройте рабочую папку проекта (ту, где лежит platformio.ini).
- Откройте Command Palette → C/C++: Select a Configuration Provider и выберите PlatformIO (если «PlatformIO» доступен). Тогда ms-vscode.cpptools будет использовать конфигурацию сборки PlatformIO.
- Если Provider не виден — возможно, расширение PlatformIO не установлено/отключено. Установите/включите его.
3) Временный/ручной вариант: c_cpp_properties.json
Если автоматика не подхватывает include-пути, можно явно задать их:
- Создайте/отредактируйте .vscode/c_cpp_properties.json и укажите includePath, compilerPath, intelliSenseMode и defines. Пример шаблона:
{
"configurations": [
{
"name": "PlatformIO",
"compilerPath": "${workspaceFolder}/.pio/toolchains/.../bin/your-gcc",
"intelliSenseMode": "gcc-x64",
"includePath": [
"${workspaceFolder}/src",
"${workspaceFolder}/lib",
"${workspaceFolder}/.pio/libdeps/**",
"${workspaceFolder}/.pio/build/**"
],
"defines": [
"PLATFORMIO",
"__AVR_ATmega328P__"
],
"browse": { "path": ["${workspaceFolder}/.pio/libdeps/**"] }
}
],
"version": 4
}
- Подставьте реальные пути для вашей платформы (ATmega, ESP32 и т.п.). После сохранения C/C++ расширение пересоберёт индекс.
4) Альтернатива ms-vscode.cpptools — clangd
- Установите расширение clangd (официальный LSP от LLVM) и сам бинарник clangd (через пакет LLVM).
- clangd работает лучше с compilation database (compile_commands.json). Для PlatformIO можно сгенерировать этот файл и затем clangd будет полноценно понимать проект.
- Как сгенерировать compile_commands.json: из корня проекта PlatformIO выполните pio run -t compile_commands (или platformio run -t compile_commands). Это создаст compile_commands.json в .pio/build/<env>/compile_commands.json (проверьте в документации версии PlatformIO, название цели может слегка отличаться).
- Скопируйте или сделайте ссылку на него в корне (compile_commands.json), затем перезапустите clangd.
5) Диагностика — что проверить первым делом
- Откройте Command Palette → C/C++: Log Diagnostics — посмотрите, какие пути видит сервер.
- Включите отображение проблем/логи PlatformIO (View → Output → PlatformIO) и C/C++ (Output → C/C++).
- Проверьте, нет ли конфликтующих расширений (несколько C++ LSP могут конфликтовать). Временно отключите другие C/C++ расширения.
- Попробуйте переключить C_Cpp.intelliSenseEngine в settings (Tag Parser как слабый, но рабочий запасной вариант).
6) Итог по Copilot Chat / VPN
- Copilot Chat НЕ обязателен для стандартного автодополнения C++ — это отдельный AI-инструмент. Для базового/умного автодополнения достаточно ms-vscode.cpptools или clangd + compilation database.
- VPN нужен только если вы хотите именно пользоваться GitHub Copilot/Copilot Chat и они заблокированы в вашей стране. Для локальных LSP/VScode-расширений VPN не требуется.
Если хотите, могу:
- Подготовить конкретный пример c_cpp_properties.json под ваш PlatformIO-энвайронмент (скопируйте сюда platformio.ini и структуру .pio/build),
- Подсказать точную команду для генерации compile_commands.json для вашей версии PlatformIO,
- Или помочь пошагово пройти диагностику (скриншоты/логи из C/C++: Log Diagnostics и Output → PlatformIO).