【问题标题】:How to make clangd use diagnostics flags?如何让 clangd 使用诊断标志?
【发布时间】:2021-05-03 19:36:51
【问题描述】:

我正在尝试使用 Neovim 内置的 LSP 配置设置 clangd,它工作正常。问题是,通常我用-Wall -Wextra -Werror标志编译所有东西,我怎样才能让clangd在分析代码时使用这些标志并提示错误?

提前致谢:)

【问题讨论】:

    标签: neovim language-server-protocol clangd


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

      clangd 通过$XDG_CONFIG_HOME/clangd/config.yaml 接受全局配置。您可以添加编译标志:

      CompileFlags:
          Add: [-Wall, -Wextra, -Werror]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-03
        • 2021-07-26
        相关资源
        最近更新 更多