dot

NixOS dotfiles
git clone https://git.echoz.io/dot.git
Log | Files | Refs

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 }