推荐插件:git
其余好用的插件:github
目前我在msys2上和用msvc编译出来的都有问题,启动后一写代码就会crash🙃json
在MSYS2上安装gcc等:windows
pacman -S --needed mingw-w64-x86_64-{gcc,gdb,make,binutils}
惋惜的是并无ccls的软件包,若是想在windows上用,须要本身在MSYS2上编译:api
pacman -S --needed mingw-w64-x86_64-{clang,clang-tools-extra,polly,cmake,jq,ninja,ncurses,rapidjson} # 而后下载ccls源码并编译 cd ccls cmake -H. -BRelease -G Ninja -DCMAKE_CXX_FLAGS=-D__STDC_FORMAT_MACROS ninja -C Release
出现错误:bash
ninja: error: '/mingw64/lib/libz3.dll.a', needed by 'ccls.exe', missing and no known rule to make it
解决办法:
打开./Release/build.ninja
,搜索/mingw64/lib/libz3.dll.a
,会找到两个,都改为绝对路径(好比我这里分别改为D$:/msys64/mingw64/lib/libz3.dll.a
和D:/msys64/mingw64/lib/libz3.dll.a
),以后再:ui
ninja -C Release
等几分钟编译完成后,把./Release/ccls.exe
复制到一个在PATH里的目录就行。插件
在Manjaro上就很方便了debug
sudo pacman -S --needed gcc clang ccls
这里只介绍一小小小小小部分code
给个例子,在工做区设置中添加:
"ccls.clang.extraArgs": [ "-Iinc", "-Ipath/to/headers", ],
保存,而后就会提示你重启ccls,若是没提示,那就Ctrl+Shift+P
,输入ccls: Restart language server
来重启ccls。这样ccls就将inc
和path/to/headers
这两个文件夹做为头文件目录了。
其余推荐设置:
"ccls.completion.detailedLabel": true, "ccls.completion.enableSnippetInsertion": true, "ccls.codeLens.enabled": false,
若是是使用make管理代码,须要使用bear:
sudo pacman -S --needed bear
cmake等等,详见ccls的wiki
# 清理之前的目标文件 make clean # 生成 compile_commands.json bear make
而后重启ccls,就会自动索引
ccls没有提供debug支持而ms-vscode.cpptools有,可是ms-vscode.cpptools的代码补全等功能与ccls重复(并且很laji),因此须要把ms-vscode.cpptools的这些功能禁用,添加以下设置:
"C_Cpp.autocomplete": "Disabled", "C_Cpp.errorSquiggles": "Disabled", "C_Cpp.intelliSenseEngine": "Disabled",
settings.json