Просматривайте информацию о деревьях прямо в Neovim!
Этот плагин устарел , поскольку его функциональность включена в Neovim: Используйте
:Inspect
, чтобы отобразить выделенные группы под курсором.:InspectTree
для отображения проанализированного синтаксического дерева ("TSPlayground"):EditQuery
, чтобы открыть редактор Live Query (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'
.
Игровая площадка может анализировать файлы запросов для вас. Для этого вам необходимо активировать модуль query_linter
:
require " nvim-treesitter.configs " . setup {
query_linter = {
enable = true ,
use_virtual_text = true ,
lint_events = { " BufWrite " , " CursorHold " },
},
}
Примечание. Линтер запросов предполагает определенную структуру каталогов, чтобы определить, к какому языку принадлежат запросы. Ожидается, что файлы запросов будут находиться в папке ./queries/<language_name>
Игровая площадка поставляется с :TSHighlightCapturesUnderCursor
, который показывает любые группы деревьев или выделения синтаксиса под курсором.
Если вы хотите просмотреть информацию только об узле, на котором в данный момент находится курсор (без необходимости открывать все дерево), вместо этого вы можете использовать :TSNodeUnderCursor
. Появится плавающее окно, содержащее информацию о парсере, имени узла и диапазонах строк/столбцов.