解析モードを選ぶ
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 より速いとは限りません。