【发布时间】:2021-05-03 19:36:51
【问题描述】:
我正在尝试使用 Neovim 内置的 LSP 配置设置 clangd,它工作正常。问题是,通常我用-Wall -Wextra -Werror标志编译所有东西,我怎样才能让clangd在分析代码时使用这些标志并提示错误?
提前致谢:)
【问题讨论】:
标签: neovim language-server-protocol clangd
我正在尝试使用 Neovim 内置的 LSP 配置设置 clangd,它工作正常。问题是,通常我用-Wall -Wextra -Werror标志编译所有东西,我怎样才能让clangd在分析代码时使用这些标志并提示错误?
提前致谢:)
【问题讨论】:
标签: neovim language-server-protocol clangd
clangd 自动从名为compile_commands.json 的文件中读取编译数据库,并从那里重用编译器标志。无需在 Neovim 中做任何特别的事情。例如,compile_commands.json 文件可能如下所示:
[{
"directory": ".",
"file": "test.cpp",
"arguments": ["g++", "-c", "test.cpp", "-Wall", "-Wextra", "-Werror"]
}]
通常您会希望在构建过程中生成此文件。
CMake 可以开箱即用,您也可以使用 clang -MJ compile_commands.json。
【讨论】:
clangd 通过$XDG_CONFIG_HOME/clangd/config.yaml 接受全局配置。您可以添加编译标志:
CompileFlags:
Add: [-Wall, -Wextra, -Werror]
【讨论】: