推薦插件:
- C/C++(建議關閉補全和錯誤提示等功能,因為實在是太爛了)
- ccls
- Code Runner
- Cmake
- CMake Tools
其他好用的插件:
- GNU Assembler Language Support
- Bracket Pair Colorizer 2
- Visual Studio Blue Theme
- Color Highlight
- Markdown All in one
- One Dark Pro
- Git History
- Remote - WSL
- LinkerScript
安裝 clang 和 ccls
在windows上安裝clang並編譯ccls
目前我在msys2上和用msvc編譯出來的都有問題,啟動后一寫代碼就會crash🙃
在MSYS2上安裝gcc等:
pacman -S --needed mingw-w64-x86_64-{gcc,gdb,make,binutils}
可惜的是並沒有ccls的軟件包,如果想在windows上用,需要自己在MSYS2上編譯:
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
出現錯誤:
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),之后再:
ninja -C Release
等幾分鍾編譯完成后,把./Release/ccls.exe復制到一個在PATH里的目錄就行。
在Manjaro上安裝clang和ccls
在Manjaro上就很方便了
sudo pacman -S --needed gcc clang ccls
插件配置以及 Project Setup
這里只介紹一小小小小小部分
ccls 插件
給個例子,在工作區設置中添加:
"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,
生成 compile_commands.json 文件
如果是使用make管理代碼,需要使用bear:
sudo pacman -S --needed bear
cmake等等,詳見ccls的wiki
# 清理以前的目標文件
make clean
# 生成 compile_commands.json
bear make
然后重啟ccls,就會自動索引
C/C++ 插件
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 - 另外就是看文檔,看文檔,看文檔
