return { 'nvim-treesitter/nvim-treesitter', -- lazy = false, dependencies = { 'rush-rs/tree-sitter-asm' }, -- dependencies = 'windwp/nvim-ts-autotag', event = 'VeryLazy', keys = { { 'v', desc = 'start incremental selection' }, { 'h', 'TSBufToggle highlight', desc = 'toggle TS highlight' }, }, -- init = function(plugin) -- require('lazy.core.loader').add_to_rtp(plugin) -- require 'nvim-treesitter.query_predicates' -- end, config = function() require('nvim-treesitter.parsers').get_parser_configs().asm = { install_info = { url = 'https://github.com/rush-rs/tree-sitter-asm.git', files = { 'src/parser.c' }, branch = 'main', }, } local configs = require 'nvim-treesitter.configs' configs.setup { ignore_install = { 'haskell' }, ensure_installed = { 'c', 'rust', 'lua', 'vim', 'vimdoc', 'cpp', 'go' }, auto_install = true, highlight = { enable = true, -- false will disable the whole extension }, incremental_selection = { enable = true, keymaps = { init_selection = 'v', node_incremental = '', scope_incremental = false, node_decremental = '', }, }, -- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files disable = function(_, buf) local max_filesize = 300 * 1024 -- 100 KB local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) if ok and stats and stats.size > max_filesize then return true end end, -- context_commentstring = { enable = true, config = { css = '// %s' } }, indent = { enable = true }, -- autotag = { enable = true }, } end, }