Neovim でツリーシッター情報を直接表示します。
この機能は Neovim に含まれているため、このプラグインは非推奨です。
:Inspect
。:InspectTree
解析された構文ツリー (「TSPlayground」) を表示します。:EditQuery
: ライブ クエリ エディターを開きます (Nvim 0.10 以降) query
文法がインストールされている) プラグインをインストールします (vim-plug を示します)。
Plug ' nvim-treesitter/nvim-treesitter '
Plug ' nvim-treesitter/playground '
クエリ エディターを強調表示するためにquery
パーサーをインストールすることもお勧めします。上記のプラグインをインストールした後、これを実行します。
:TSInstall query
構成は他の nvim-treesitter モジュールと似ています。
require " nvim-treesitter.configs " . setup {
playground = {
enable = true ,
disable = {},
updatetime = 25 , -- Debounced time for highlighting nodes in the playground from source code
persist_queries = false , -- Whether the query persists across vim sessions
keybindings = {
toggle_query_editor = ' o ' ,
toggle_hl_groups = ' i ' ,
toggle_injected_languages = ' t ' ,
toggle_anonymous_nodes = ' a ' ,
toggle_language_display = ' I ' ,
focus_language = ' f ' ,
unfocus_language = ' F ' ,
update = ' R ' ,
goto_node = ' <cr> ' ,
show_help = ' ? ' ,
},
}
}
ツリーは、コマンド:TSPlaygroundToggle
使用して切り替えることができます。
R
: フォーカスがあるときにプレイグラウンド ビューを更新するか、クエリ エディターがフォーカスしているときにクエリを再読み込みします。o
: プレイグラウンドがフォーカスされているときにクエリ エディターを切り替えます。a
: 匿名ノードの表示を切り替えます。i
: ハイライト グループの表示/非表示を切り替えます。I
: ノードが属する言語の表示を切り替えます。t
: 挿入された言語の表示を切り替えます。f
: プレイグラウンドのカーソルの下にある言語ツリーにフォーカスします。クエリ エディターはフォーカスされた言語を使用するようになります。F
: 現在フォーカスされている言語のフォーカスを解除します。<cr>
: コードバッファ内の現在のノードに移動します。 o
を押してクエリエディタを表示します。 (node) @capture
のようにクエリを作成し、キャプチャの下にカーソルを置いて一致を強調表示します。
query
バッファーを使用している場合は、 Ctrl-X Ctrl-Oを使用して候補のリストを取得できます。 :h 'omnifunc'
を参照してください。
プレイグラウンドはファイルの lint クエリを実行できます。そのためには、 query_linter
モジュールをアクティブにする必要があります。
require " nvim-treesitter.configs " . setup {
query_linter = {
enable = true ,
use_virtual_text = true ,
lint_events = { " BufWrite " , " CursorHold " },
},
}
注: クエリ リンターは、クエリがどの言語に属しているかを識別するために、特定のディレクトリ構造を前提としています。クエリ ファイルが./queries/<language_name>
の下にあることが想定されます。
プレイグラウンドには、カーソルの下にツリーシッターまたは構文ハイライト グループを表示する:TSHighlightCapturesUnderCursor
付属しています。
(ツリー全体を開かずに) 現在カーソルが置かれているノードに関する情報のみを表示したい場合は、代わりに:TSNodeUnderCursor
使用できます。パーサー、ノード名、行/列範囲に関する情報を含むフローティング ウィンドウが表示されます。