選擇解析模式
了解 Hybrid、Flyweight、Compiler 和 Tag 的能力邊界。
切換模式
點選狀態列的模式名稱,或在指令面板執行 Hornet C/C++: Switch Parsing Mode。你也可以編輯設定:
{
"hornet-cpp.mode": "hybrid"
}Hybrid · 推薦
同時維護 Tag 索引和可用的 Compiler 服務,依照每個檔案的編譯指令覆蓋情況,自動選擇適當的解析方式。
配置要求:開箱即可瀏覽;語意功能需要 clangd 與有效的編譯資料庫。
適用場景:日常開發、已有工程、逐步完善編譯配置。
Flyweight
在背景執行緒執行隨外掛程式附帶的 Tree-sitter C/C++ WebAssembly 解析器,近期檔案使用增量語法樹。
配置要求:無須額外安裝編譯器、clangd 或產生 compile_commands.json。
適用場景:閱讀陌生程式碼、輕量瀏覽、尚未建立建置環境的工程。
Compiler
由 clangd 提供語義跳躍、重命名、程式碼操作和即時編譯診斷。瞭解巨集、類型與頭文件,需要完整的專案編譯配置。
配置要求:有效的 compile_commands.json、clangd,以及專案實際工具鏈。
適用場景:精確導航、重構、維護複雜的 C/C++ 項目。
Tag
在後台執行緒快速建立詞法標籤索引,提供基礎符號瀏覽、跳躍和呼叫關係,適合快速進入項目。
配置要求:無額外工具要求。
適用場景:快速檢索、基礎補全與定義導航。
輕量模式的邊界
Tag 與 Flyweight 提供符號搜尋、大綱、基礎補全、定義 / 宣告跳躍、語法參考和呼叫圖。它們不執行預處理、類型檢查或重構。同名符號可能出現多個候選。
需要精確重命名、程式碼操作和編譯診斷時,使用 Compiler,或為 Hybrid 設定對應檔案的編譯指令。 Flyweight 效能取決於檔案和編輯方式,不保證所有專案都快於 Tag。