You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Stephan Seitz 79f71e2bd7 feat: add omnifunc for query filetype 3 years ago
after/ftplugin feat: add omnifunc for query filetype 3 years ago
lua feat: add omnifunc for query filetype 3 years ago
plugin refactor(printer): integrate injected languages 3 years ago
queries/query fix(linter): Add (grouping) to toplevel-queries 3 years ago
syntax refactor(printer): integrate injected languages 3 years ago
.editorconfig Initial commit 4 years ago
LICENSE Initial commit 4 years ago
README.md feat: make keybindings configurable and show help on "?" 3 years ago
demo.gif add cleanup logic and update readme 4 years ago

README.md

Neovim Treesitter Playground

View treesitter information directly in Neovim!

nvim-treesitter-playground

Requirements

Setup

Install the plugin (vim-plug shown):

Plug 'nvim-treesitter/nvim-treesitter'
Plug 'nvim-treesitter/playground'

It's also recommended that you install the query parser for query editor highlighting. Run this after installing the above plugins.

:TSInstall query

The configuration is like any other nvim-treesitter module.

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 = '?',
    },
  }
}

Usage

The tree can be toggled using the command :TSPlaygroundToggle.

Keybindings

  • R: Refreshes the playground view when focused or reloads the query when the query editor is focused.
  • o: Toggles the query editor when the playground is focused.
  • a: Toggles visibility of anonymous nodes.
  • i: Toggles visibility of highlight groups.
  • I: Toggles visibility of the language the node belongs to.
  • t: Toggles visibility of injected languages.
  • f: Focuses the language tree under the cursor in the playground. The query editor will now be using the focused language.
  • F: Unfocuses the currently focused language.
  • <cr>: Go to current node in code buffer

Query Linter

The playground can lint query files for you. For that, you need to activate the query_linter module:

require "nvim-treesitter.configs".setup {
  query_linter = {
    enable = true,
    use_virtual_text = true,
    lint_events = {"BufWrite", "CursorHold"},
  },
}

image