tree-sitter.nix (1190B)
1 { pkgs, ... }: 2 { 3 programs.neovim.plugins = [ 4 (pkgs.vimPlugins.nvim-treesitter.withAllGrammars // { runtimeDeps = [ pkgs.tree-sitter ]; }) 5 ]; 6 programs.neovim.customPlugins.treesitter-config = { 7 "plugin/tree-sitter-config.lua" = # lua 8 '' 9 require('nvim-treesitter.config').setup({ 10 highlight = { 11 enable = true, 12 disable = {}, 13 }, 14 textobjects = { 15 select = { 16 enable = true, 17 lookahead = true, 18 keymaps = { 19 ["af"] = "@function.outer", 20 ["if"] = "@function.inner", 21 ["ac"] = "@class.outer", 22 ["ic"] = "@class.inner", 23 }, 24 }, 25 }, 26 }) 27 28 29 vim.api.nvim_create_autocmd('FileType', { 30 group = vim.api.nvim_create_augroup('TreeSitterStart', { clear = true }), 31 callback = function(args) 32 local language = vim.treesitter.language.get_lang(vim.bo[args.buf].filetype) 33 if vim.treesitter.language.add(language) then 34 vim.treesitter.start(args.buf, language) 35 end 36 end 37 }) 38 ''; 39 }; 40 }