VSCode 的 #ifdef 套色

在用 VSCode 處理 C/C++ 檔案的時候,如果裝了官方的 C/C++ extension ,會發現 #ifdef 預設是沒有套色的,查了一輪資料又再試了一下有找到有幾個方法來解決。


取消 Dim Inactive Regions

在 VSCode 的設定中,找到 C_Cpp: Dim Inactive Regions 這個選項,把它關掉:

Dim Inactive Regions

如果是直接改 settings.json (或是 .vscode/settings.json ) 的話就是加上 "C_Cpp.dimInactiveRegions": false


設定 C/C++ IntelliSense

用 GUI 設定的話就是找到 C/C++: 編輯組態 (UI) ,然後設定 進階設定 裡面的 編譯命令 ,把它設成 ${workspaceFolder}/build/compile_commands.json

C/C++ IntelliSense

或是也可以直接新增 .vscode/c_cpp_properties.json ,內容可以參考 Configure C/C++ IntelliSensec_cpp_properties.json reference ,主要就是要設定 "compileCommands": "${workspaceFolder}/build/compile_commands.json"

設定好之後要想辦法產生 compile_commands.json ,如果是用 CMake 的話就是直接加上 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ,可以參考 CMAKE_EXPORT_COMPILE_COMMANDS


使用 CMake Tools Extensions

不過如果是用 CMake 的話,最簡單的方法應該是直接用官方的 CMake Tools extension ,裝完照著推薦跑完一次 configure 就會自動吃到 CMakeLists.txt 裡的設定了,不用設定什麼 compileCommands 也不用手動加 CMake 的參數。

這種情況下如果想要修改 CMake 的參數,可以參考 Configure CMake Tools settings 裡的 cmake.configureArgscmake.buildArgs ,如果常常有不同的參數組合的話,可以參考 Configure with CMake Tools tasks 來考慮直接新增 tasks.json 來處理。

Support Me