Как восстановить работу IntelliSense в Visual Studio Code, чтобы снова работало автодополнение C++-кода?

В VS Code перестало работать автодополнение C++ в проекте на Arduino (PlatformIO). Официальное расширение IntelliSense помечено как deprecated и недоступно для установки; в документации рекомендуется перейти на Copilot Chat, который не работает в РФ. Есть ли способы восстановить автодополнение (альтернативные расширения или локальные настройки), или обязательно использовать VPN, чтобы получить доступ к Copilot Chat?
  • 11 марта 2026 г. 11:00
Ответы на вопрос 1
Коротко — не нужно 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).
Похожие вопросы