網(wǎng)站建設(shè)價格標準報價軟件開發(fā)交易平臺
前提
在VScode中寫C++代碼時,總會用到 C/C++ 這個插件,也就自然而然地使用了這個插件帶來的代碼跳轉(zhuǎn)和代碼提示功能。但是當代碼變地很多時,就會變得非常慢。所以經(jīng)過調(diào)查后棄用C/C++ 插件的這個功能,使用 clangd 這個插件來提示C++代碼和跳轉(zhuǎn)。
Clang 安裝使用
安裝步驟如下:
-
在VScode的extension中搜索 clangd 安裝。
-
在settings中設(shè)置 clangd 二進制文件路徑。如下圖所示:
我這里顯示的路徑是VScode自動幫助我下載的 clangd 路徑。就是當你下載好 clangd 插件后,它會自動檢測你的環(huán)境中有沒有安裝 clangd ,如果沒有它會在右下角提示你是否要下載 clangd ,如果走這條路的話,它會自動幫你下載并配置好路徑。另一條路就是我們的環(huán)境中已經(jīng)安裝了 clangd ,那我們就就要將安裝路徑填在這里(clang官方下載地址)。 -
禁用C/C++插件的提示功能,并重啟clangd的服務。如下所示:
將default改為disable。然后ctrl+shift+p打開command palette,重啟 language server。
-
關(guān)于 clangd 的一些配置選項說明如下:
在VScode中我們安裝的是 clangd 插件,它的背后使用了 clangd這個語言服務(也就是一個二進制文件),我們可以在VScode中設(shè)置一些參數(shù)傳給這個 clangd 這個二進制文件,那么它都有什么可選項呢?
如果你走的是上面的第二條路徑,在命令行輸入clangd --help-list-hidden
就可以看到它支持的參數(shù);如果是VScode幫助你安裝的,要進到安裝目錄下再輸入這條命令就可以看到。展示如下:
太多了,一張圖展示不了。我們選擇其中比較重要的幾條進行配置如下,將其添加到setting.json
中:"clangd.arguments": ["--log=verbose", // 生成更詳細的日志"--pretty", // 輸出的json更美觀"--completion-style=detailed", // 詳細的代碼補全"--clangd-tidy", // 使用clang-tidy進行代碼靜態(tài)檢查"--clang-tidy-checks=cppcoreguidelines-*,performance-*,bugprone-*,portability-*,modernize-*,google-*", // 指定clang-tidy檢查的規(guī)則"-j=8", // 使用8個線程"--background-index", // 后臺索引"--pch-storage=disk", // 使用disk存儲PCH文件"--function-arg-placeholders=false", // 函數(shù)參數(shù)不使用占位符]
注意事項
- 無論什么時候?qū)?clangd 插件做修改后,都要重啟 language server。
- 如果你選擇讓VScode自動幫助你下載 clangd ,然后一直顯示無法下載,網(wǎng)絡不好。配置下VScode的代理,在setting.json中添加下面的代理:
下載速度就會很快了。 - clangd 插件的使用依賴于你cmake工程時產(chǎn)生的 compile_commands.json 文件,如果cmake時沒有輸出這個文件,在
CMakeLists.txt
中添加set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
這行代碼。或者在命令行中使用cmake時添加-DCMAKE_EXPORT_COMPILE_COMMANDS=on
。
參考鏈接
- https://juejin.cn/post/7126880493668139021
- https://blog.csdn.net/TM1695648164/article/details/138271582