return { { "nvim-treesitter/nvim-treesitter", lazy = false, config = function() require("nvim-treesitter.configs").setup({ auto_install = true, sync_install = false, ignore_install = {}, modules = {}, -- not used, but it will silence lua_ls incremental_selection = { enable = true, keymaps = { init_selection = "", node_incremental = "", node_decremental = "", }, }, ensure_installed = { "bash", "c", "cmake", "comment", "cpp", "css", "csv", "diff", "dockerfile", "dot", "git_config", "git_rebase", "gitattributes", "gitcommit", "gitignore", "go", "html", "htmldjango", "http", "ini", "javascript", "json", "kdl", "kotlin", "latex", "lua", "make", "markdown", "markdown_inline", "mermaid", "passwd", "perl", "php", "proto", "python", "query", "regex", "ron", "rst", "rust", "scss", "sql", "terraform", "toml", "typescript", "vim", "vimdoc", "xml", "yaml", }, highlight = { enable = true, indent = true }, playground = { enable = false, 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 = '', show_help = '?', }, }, query_linter = { enable = true, use_virtual_text = true, lint_events = { "BufWrite", "CursorHold" }, }, }) end } }