别人做的网站百度网站验证,在线网页生成器,wordpress 图片显示插件,吉林省延边州建设局网站背景#xff1a;最近从Clion切换到了vscode来进行代码开发#xff0c;发现vscode自带的c/c插件除了能够使用debug功能#xff0c;其余代码补全#xff0c;跳转等功能都和基于clangd的clion有较大差距#xff0c;经常出现匹配不上或者跳转不准确的问题#xff0c;在这背景…背景最近从Clion切换到了vscode来进行代码开发发现vscode自带的c/c插件除了能够使用debug功能其余代码补全跳转等功能都和基于clangd的clion有较大差距经常出现匹配不上或者跳转不准确的问题在这背景下自己折腾了两天切换到了基于clangd来配置(事实上vim中的youcompleteme也已经基于clangd来实现c/c的代码的补全配置方法首先在vscode的插件商店中搜索clangd并安装。安装完成后打开一个已有的工程如以下是一个最简单的项目这里使用CMake来配置项目事实上可能还存在其他比如bazel,scons,make等项目配置工具而clangd是基于compile_commands.json文件来完成对项目的解析并支持代码补全和跳转。这里记录一下三种生成方式1.在CMakeLists.txt文件中添加set(CMAKE_EXPORT_COMPILECOMMANDS ON)之后cd build cmake .. 可以发现在build目录下已经生成了compile_commands.json文件2.如果是基于make方式来编译那么可以先安装 pip install compiledb之后在当前目录下运行(1) compiledb -n make -C build (2) compiledb make -C build 这两个命令中的其中一个来生成compile_commands.json文件其中前者不会执行真正的make编译命令3.如果是基于其他方式可以使用https://github.com/rizsotto/Bear 项目中的方式来生成对应的compile_commands.json文件通过以上方式生成完后compile_commands.json文件后可以在vscode中对clangd的参数进行配置可以使用clangd --help来获取一些有用的参数下面给出我实际的配置其中第一个是指定配置文件所在目录第二个是代码补全的时候完全显示函数的参数类型而第三个则是避免clangd自动引入一些函数依赖的头文件。在完成以上配置后就可以愉快的使用clangd进行代码补全了跳转了可以看出在下图复杂的工程内部函数的补全和跳转支持也是十分精准的(已知的issue在和微软的c/c一起工作时会提示不正常因此使用clangd时需要完全关闭c/c的代码补全等一系列功能只是将c/c插件作为debug使用即可)