Syntax aware text-objects, select, move, swap, and peek support.
Warning: tree-sitter and nvim-treesitter are an experimental feature of nightly versions of Neovim. Please consider the experience with this plug-in as experimental until tree-sitter support in Neovim is stable! We recommend using the nightly builds of Neovim or the latest stable version.
You can install nvim-treesitter-textobjects with your favorite package manager, or using the default pack feature of Neovim!
If you are using vim-plug, put this in your init.vim file:
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
Plug 'nvim-treesitter/nvim-treesitter-textobjects'
Define your own text objects mappings
similar to ip
(inner paragraph) and ap
(a paragraph).
lua <<EOF
require'nvim-treesitter.configs'.setup {
textobjects = {
select = {
enable = true,
-- Automatically jump forward to textobj, similar to targets.vim
lookahead = true,
keymaps = {
-- You can use the capture groups defined in textobjects.scm
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
-- You can optionally set descriptions to the mappings (used in the desc parameter of
-- nvim_buf_set_keymap) which plugins like which-key display
["ic"] = { query = "@class.inner", desc = "Select inner part of a class region" },
},
-- You can choose the select mode (default is charwise 'v')
--
-- Can also be a function which gets passed a table with the keys
-- * query_string: eg '@function.inner'
-- * method: eg 'v' or 'o'
-- and should return the mode ('v', 'V', or '<c-v>') or a table
-- mapping query_strings to modes.
selection_modes = {
['@parameter.outer'] = 'v', -- charwise
['@function.outer'] = 'V', -- linewise
['@class.outer'] = '<c-v>', -- blockwise
},
-- If you set this to `true` (default is `false`) then any textobject is
-- extended to include preceding or succeeding whitespace. Succeeding
-- whitespace has priority in order to act similarly to eg the built-in
-- `ap`.
--
-- Can also be a function which gets passed a table with the keys
-- * query_string: eg '@function.inner'
-- * selection_mode: eg 'v'
-- and should return true of false
include_surrounding_whitespace = true,
},
},
}
EOF
Define your own mappings to swap the node under the cursor with the next or previous one, like function parameters or arguments.
lua <<EOF
require'nvim-treesitter.configs'.setup {
textobjects = {
swap = {
enable = true,
swap_next = {
["<leader>a"] = "@parameter.inner",
},
swap_previous = {
["<leader>A"] = "@parameter.inner",
},
},
},
}
EOF
Define your own mappings to jump to the next or previous text object.
This is similar to ]m
, [m
, ]M
, [M
Neovim's mappings to jump to the next
or previous function.
lua <<EOF
require'nvim-treesitter.configs'.setup {
textobjects = {
move = {
enable = true,
set_jumps = true, -- whether to set jumps in the jumplist
goto_next_start = {
["]m"] = "@function.outer",
["]]"] = { query = "@class.outer", desc = "Next class start" },
},
goto_next_end = {
["]M"] = "@function.outer",
["]["] = "@class.outer",
},
goto_previous_start = {
["[m"] = "@function.outer",
["[["] = "@class.outer",
},
goto_previous_end = {
["[M"] = "@function.outer",
["[]"] = "@class.outer",
},
},
},
}
EOF
- peek_definition_code: show textobject surrounding definition as determined using Neovim's built-in LSP in a floating window. Press the shortcut twice to enter the floating window.
lua <<EOF
require'nvim-treesitter.configs'.setup {
textobjects = {
lsp_interop = {
enable = true,
border = 'none',
peek_definition_code = {
["<leader>df"] = "@function.outer",
["<leader>dF"] = "@class.outer",
},
},
},
}
EOF
Textobjects are defined in the textobjects.scm
files.
You can extend or override those files by following the instructions at
https://github.com/nvim-treesitter/nvim-treesitter#adding-queries.
You can also use a custom capture for your own textobjects,
and use it in any of the textobject modules, for example:
-- after/queries/python/textobjects.scm
; extends
(function_definition) @custom-capture
lua <<EOF
require'nvim-treesitter.configs'.setup {
textobjects = {
select = {
enable = true,
keymaps = {
-- Your custom capture.
["aF"] = "@custom-capture",
-- Built-in captures.
["af"] = "@function.outer",
["if"] = "@function.inner",
},
},
},
}
EOF
- @attribute.inner
- @attribute.outer
- @block.inner
- @block.outer
- @call.inner
- @call.outer
- @class.inner
- @class.outer
- @comment.outer
- @conditional.inner
- @conditional.outer
- @frame.inner
- @frame.outer
- @function.inner
- @function.outer
- @loop.inner
- @loop.outer
- @parameter.inner
- @parameter.outer
- @scopename.inner
- @statement.outer
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | |
agda | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
astro | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
bash | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | β¬ | β¬ | β¬ | β¬ |
beancount | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
bibtex | β¬ | β¬ | β¬ | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© |
blueprint | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
c | β¬ | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
c_sharp | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
clojure | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
cmake | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | β¬ | β¬ | β¬ | β¬ |
comment | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
commonlisp | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
cooklang | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
cpp | β¬ | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
css | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
cuda | β¬ | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
d | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
dart | β¬ | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
devicetree | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
diff | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
dockerfile | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
dot | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
eex | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
elixir | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ |
elm | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ |
elvish | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
embedded_template | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
erlang | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
fennel | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
fish | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | β¬ | β¬ |
foam | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | β¬ | β¬ | β¬ |
fortran | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
fusion | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
Godot (gdscript) | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
git_rebase | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
gitattributes | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
gitignore | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
gleam | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
Glimmer and Ember | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
glsl | β¬ | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
go | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
Godot Resources (gdresource) | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
gomod | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
gowork | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
graphql | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
hack | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
haskell | β¬ | β¬ | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
hcl | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© |
heex | π© | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
help | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
hjson | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
hlsl | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
hocon | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
html | π© | π© | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
http | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
java | β¬ | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
javascript | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
jsdoc | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
json | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
json5 | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
JSON with comments | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
jsonnet | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
julia | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
kotlin | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
lalrpop | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
latex | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | π© | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© |
ledger | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
llvm | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
lua | β¬ | β¬ | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
m68k | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
make | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
markdown | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
markdown_inline | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
menhir | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
meson | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
nickel | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
ninja | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
nix | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ |
norg | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
ocaml | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
ocaml_interface | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
ocamllex | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
org | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
pascal | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
perl | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
php | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
phpdoc | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
pioasm | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
prisma | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
proto | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
pug | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
python | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
ql | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | π© | β¬ |
qmljs | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
Tree-sitter query language | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
r | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
racket | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
rasi | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
regex | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
rego | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
rnoweb | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
rst | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
ruby | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ |
rust | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
scala | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ |
scheme | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
scss | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
slint | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
solidity | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
sparql | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
sql | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
supercollider | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
surface | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
svelte | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
swift | β¬ | β¬ | β¬ | β¬ | π© | π© | π© | π© | π© | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | β¬ | π© | π© | β¬ | β¬ |
sxhkdrc | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
teal | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
tiger | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
tlaplus | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
todotxt | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
toml | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
tsx | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
turtle | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
twig | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | π© | β¬ | π© |
typescript | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
v | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
vala | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
verilog | β¬ | β¬ | β¬ | π© | β¬ | β¬ | β¬ | π© | π© | β¬ | π© | β¬ | β¬ | β¬ | π© | β¬ | π© | β¬ | β¬ | β¬ | β¬ |
vim | β¬ | β¬ | π© | π© | β¬ | π© | β¬ | β¬ | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |
vue | β¬ | β¬ | β¬ | β¬ | β¬ | π© | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | π© | β¬ | β¬ | β¬ | π© | β¬ | β¬ |
wgsl | β¬ | β¬ | β¬ | π© | β¬ | β¬ | π© | π© | β¬ | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | β¬ |
yaml | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
yang | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ | β¬ |
zig | β¬ | β¬ | π© | π© | π© | π© | π© | π© | π© | π© | π© | β¬ | β¬ | π© | π© | π© | π© | π© | π© | β¬ | π© |