Отказ от ответственности: я полностью знаком с VS Code, поэтому, пожалуйста, будьте осторожны со мной. 🙂
Я пытаюсь настроить Кодекс VS за C ++.
Тем не менее, я явно хочу настроить его так, чтобы он использовал Протокол языкового сервера общаться с clangd
при обработке C ++ — файлов.
Я уже установил clangd
на моей (Ubuntu Linux) системе и официальной «Vscode-clangd» расширение с рынка VS Code, и я также настроил его параметры так, чтобы clangd
должно быть найдено этим.
Однако сейчас я потерялся.
Когда я открываю *.cpp
или же *.hpp
Файл VS Code рекомендует мне другие расширения (например, официальный Microsoft «C / C ++» расширение с поддержкой IntelliSense) но я не вижу, где и как clangd
действительно помогает мне.
Использование расширения Microsoft «C / C ++», кажется, работает из коробки, но как я могу использовать clangd
?
Спасибо за любую помощь.
Это должно работать без какой-либо конфигурации.
Я проверил это в Windows, и оно работает просто отлично — у меня не установлено расширение C / C ++ в коде Visual Studio, просто vscode-clangd
и он сообщает об ошибках, обеспечивает завершение кода и т. д.
Это означает, что расширение работает, потому что в «основном» коде Visual Studio таких функций нет.
Visual Studio Code все еще предлагает популярные расширения C / C ++, но вы можете игнорировать это, это не значит, что vscode-clangd
не работает
Обратите внимание, что редактируемый файл должен иметь стандартное расширение, например .cpp
или же .c
быть признанным и действующим vscode-clangd
,
Увидеть исходный код расширения для списка всех поддерживаемых расширений.
Для простых проектов может быть недостаточно иметь конфигурацию, но для более сложных вам, конечно, нужно сообщить Clang такие вещи, как каталоги, флаги компиляции и т. Д.
Это может быть сделано путем создания compile_flags.txt
файл, где вы вводите аргументы для Clang, по одному на строку.
Вы можете поместить этот файл в ту же папку, что и ваши исходные файлы, или в любое место дерева.
После редактирования этого файла необходимо перезапустить код Visual Studio, чтобы изменения вступили в силу.
Кроме того, вы можете создать (или позволить CMake генерировать) compile_commands.json
файл.
Он имеет следующий синтаксис:
[
{ "directory": "/home/user/llvm/build",
"command": "/usr/bin/clang++ -Irelative -DSOMEDEF=\"With spaces, quotes and \\-es.\" -c -o file.o file.cc",
"file": "file.cc" },
...
]
Увидеть Clang Docs Больше подробностей.
Других решений пока нет …