あなたのプロジェクトに、
あなたに合う解析を。
既定の Hybrid で始めるか、プロジェクトの状態に合わせてモードを選択できます。
おすすめ
軽快さと精度を自動で選択
Tag インデックスと利用可能な Compiler サービスを維持し、各ファイルのコンパイルコマンドの有無に応じて解析方式を自動選択します。
- ファイルごとの選択
- データベースなしでは Tag
- 設定に応じて意味解析を有効化
Tree-sitter
軽量な構文解析をすぐに
同梱の Tree-sitter C/C++ WebAssembly パーサーをバックグラウンドで実行し、最近のファイルには差分更新の構文木を使用します。
- 組み込み WASM パーサー
- 構文インデックス
- 差分更新の構文木
clangd
実際のコンパイル引数でコードを理解
clangd で意味解析に基づく移動、名前変更、コードアクション、リアルタイム診断を提供します。マクロ、型、ヘッダーの解析には完全なビルド設定が必要です。
- 意味解析
- 正確な名前変更
- コンパイル診断
settings.json
{
"hornet-cpp.mode": "compiler"
}有効な compile_commands.json、clangd、プロジェクトで使用するツールチェーン。
利用シーンを見るすぐに使える
設定なしでコードを読み始める
バックグラウンドで字句タグのインデックスをすばやく作成し、基本的なシンボル閲覧、移動、呼び出し関係を提供します。
- 字句タグ
- 基本的な移動
- バックグラウンドで索引化
選ぶ前に、機能の範囲を確認。
軽量モードならすぐに始められます。意味解析には実際のビルド環境が必要です。
| 機能・要件 | Hybrid | Flyweight | Compiler | Tag |
|---|---|---|---|---|
| コンパイルデータベースなしで閲覧 | 対応(Tag を使用) | 対応 | データベースが必要 | 対応 |
| 解析方式 | ファイルごとに Tag / Compiler | Tree-sitter 構文木 | clangd の意味解析 | 字句タグ |
| シンボル・移動・コールグラフ | 対応 | 構文レベル | 意味解析レベル | 字句レベル |
| 正確な名前変更とコードアクション | コンパイルコマンドがあるファイル | 非対応 | clangd の対応範囲 | 非対応 |
| コンパイル診断・型検査 | コンパイルコマンドがあるファイル | 非対応 | 対応 | 非対応 |
| 追加ツール | 意味解析には clangd が必要 | なし | clangd + コンパイルデータベース | なし |
Tag / Flyweight はプリプロセスや型検査を行わず、同名のシンボルでは複数の候補を返す場合があります。Flyweight の速度はファイルや編集方法に依存し、常に Tag より速いとは限りません。
設定ひとつで切り替え。
VS Code 下部のモード名をクリックするか、Switch Parsing Mode を実行してください。