選擇解析模式

了解 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。

搜尋使用文件

輸入關鍵字查找文檔。

Esc 關閉 · Tab 選擇結果