dotfiles/nvim/.config/nvim/lua/treesitter.lua
Sanchayan Maity 397cac1050 nvim: plugins/treesitter: Use treehopper instead of textobjects
The whole bunch of treesitter text objects were difficult to remember
and we ended up rarely ever using any of the defined mappings.

treehopper simplifies things with a single mapping and hints.
2022-11-24 14:21:41 +05:30

37 lines
1.3 KiB
Lua

local ts_langs = { "bash", "cpp", "fish", "go", "haskell", "html", "java", "javascript", "jsdoc", "json", "markdown", "nix", "python", "query", "rust", "teal", "toml", "tsx", "typescript", "verilog" }
require'nvim-treesitter.install'.compilers = { "gcc" }
require'nvim-treesitter.configs'.setup {
ensure_installed = ts_langs,
highlight = { enable = true, },
query_linter = {
enable = true,
use_virtual_text = true,
lint_events = { "BufWrite", "CursorHold" },
},
playground = {
enable = true,
disable = {},
updatetime = 25,
persist_queries = false,
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 = '?',
},
},
matchup = {
enable = true,
},
}
vim.keymap.set('o', '<Leader>m', ':<C-U>lua require(\'tsht\').nodes()<CR>', { noremap=false, unique=true, silent=true })
vim.keymap.set('x', '<Leader>m', ':lua require(\'tsht\').nodes()<CR>' , { noremap=true , unique=true, silent=true })