vscode不能写cpp?cpu占用高?提示缓慢?那都是过去式了!快快抛弃垃圾微软开发的shit插件,拥抱LLVM的怀抱吧!

前言

N年前,vscode只有一个微软自家写的shit插件——C/C++,名字起的高大上,但实际上就是一坨shit,占用高,提示缓慢,项目一大就变成sb,垃圾的一,好在现在我们有了开源社区的救世主,LLVM!其中的clangd简直犹如人间太岁神,直接解决了上面微软插件的问题,并附带了相当多的好用功能比如clang-formatclang-tidy,可以说有了这个插件vscode能给人IDE一般的体验。

准备工作

首先你需要准备以下环境:

  • cmake
  • llvm(其中包含了clnagd等工具)
  • ninja(注意配置环境变量)

vscode方面则需要安装以下插件:

然后就可以开始愉快配置了~

配置

在vscode中,先想好是全局配置还是针对每一个项目进行配置。如果是针对全局配置,需要在settings里面单独配置。而针对单个项目则需要在.vscode文件夹(没有就自己新建一个)里面新建settings.json文件,在其中对于需要的设置进行改写。

下面针对单独settings.json文件给出实例和注释:

  "C_Cpp.errorSquiggles": "disabled",
  "C_Cpp.intelliSenseEngineFallback": "disabled",
  "C_Cpp.intelliSenseEngine": "disabled",
  "cmake.generator": "Ninja",
  "cmake.configureSettings": {
    "CMAKE_EXPORT_COMPILE_COMMANDS": 1,
  }
  // Clangd 运行参数(在终端/命令行输入 clangd --help-list-hidden 可查看更多)
  "clangd.arguments": [
    // 全局补全(输入时弹出的建议将会提供 CMakeLists.txt 里配置的所有文件中可能的符号,会自动补充头文件)
    "--all-scopes-completion",
    // 建议风格:打包(重载函数只会给出一个建议)
    // 相反可以设置为detailed
    "--completion-style=bundled",
    // 跨文件重命名变量
    "--cross-file-rename",
    // 允许补充头文件
    "--header-insertion=never",
    // 输入建议中,已包含头文件的项与还未包含头文件的项会以圆点加以区分
    "--header-insertion-decorators",
    // 在后台自动分析文件(基于 complie_commands,我们用CMake生成)
    "--background-index",
    // 启用 Clang-Tidy 以提供「静态检查」
    "--clang-tidy",
    // Clang-Tidy 静态检查的参数,指出按照哪些规则进行静态检查,详情见「与按照官方文档配置好的 VSCode 相比拥有的优势」
    // 同时开启的任务数量
    "-j=16",
    // pch优化的位置(memory 或 disk,选择memory会增加内存开销,但会提升性能) 推荐在板子上使用disk
    "--pch-storage=memory",
    // 启用这项时,补全函数时,将会给参数提供占位符,键入后按 Tab 可以切换到下一占位符,乃至函数末
    // 我选择禁用
    "--function-arg-placeholders=false",
    // compelie_commands.json 文件的目录位置(相对于工作区,由于 CMake 生成的该文件默认在 build 文件夹中,故设置为 build)
    "--compile-commands-dir=build"
  ],

结语

从此以后,你就能感受到LLVM的强大了,提示和跳转几乎是秒跳,只能说伟大,无需多言。

P.S. 终于有时间逐渐把陈年老文章发出来了…

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐