return { 'nvim-treesitter/nvim-treesitter', dependencies = { 'mizlan/iswap.nvim', 'romgrk/nvim-treesitter-context', --"nvim-treesitter/nvim-treesitter-textobjects", --"nvim-treesitter/playground", }, build = ':TSUpdate', opts = function() -- Tree-sitter configuration local ts = require'nvim-treesitter.configs' ts.setup { ignore_install = {'javascript'}, sync_install = true, auto_install = true, ensure_installed = { "arduino", "awk", "bash", "bibtex", "bitbake", "c", "cmake", --"comment", "cpp", "csv", "devicetree", "diff", "fish", "gitattributes", "gitcommit", "gitignore", "git_config", "git_rebase", "html", "vimdoc", "http", "ini", "jq", "json", "latex", "lua", "make", "markdown", "markdown_inline", "matlab", "ninja", "proto", "python", "regex", "rust", "toml", "vim", "yaml", }, modules = {}, highlight = { enable = true, -- disable = function(lang, buf) -- local max_filesize = 100 * 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, additional_vim_regex_highlighting = false, }, indent = { enable = false, }, incremental_selection = { enable = true, keymaps = { init_selection = "ti", node_incremental = "ti", scope_incremental = "ts", node_decremental = "td", }, }, matchup = { enable = true, -- disable = { "c", "ruby" }, }, } vim.opt.foldmethod = "manual" vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()" vim.opt.foldlevelstart = 99 vim.opt.foldminlines = 50 end }