diff options
Diffstat (limited to 'modules/home/conf/nvim/plgs/treesitter')
-rw-r--r-- | modules/home/conf/nvim/plgs/treesitter/default.nix | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/home/conf/nvim/plgs/treesitter/default.nix b/modules/home/conf/nvim/plgs/treesitter/default.nix new file mode 100644 index 00000000..656b4ce3 --- /dev/null +++ b/modules/home/conf/nvim/plgs/treesitter/default.nix @@ -0,0 +1,56 @@ +{ + osConfig, + config, + pkgs, + lib, + ... +}: { + programs.nixvim = { + plugins.treesitter = { + enable = true; + + ensureInstalled = "all"; + indent = true; + + # inject nixvim specific highlighting (eg in extraConfigLua). + nixvimInjections = true; + + grammarPackages = + config.programs.nixvim.plugins.treesitter.package.passthru.allGrammars + ++ [pkgs.yts-grammar]; + + disabledLanguages = []; + + /* + # TODO: this is not supported by the NixVim module, NixNeovim supports this though.. + highlight = { + # `false` will disable the whole extension + enable = true; + disable = ["latex"]; + + # Setting this to true will run `:h syntax` and tree-sitter at the same time. + # Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + # Using this option may slow down your editor; and you may see some duplicate highlights. + # Instead of true it can also be a list of languages + additionalVimRegexHighlighting = [""]; + }; + */ + + incrementalSelection = { + enable = true; + keymaps = { + # TODO: include these in the which-key description + initSelection = "gnn"; # set to `false` to disable one of the mappings + nodeIncremental = "grn"; + scopeIncremental = "grc"; + nodeDecremental = "grm"; + }; + }; + }; + extraFiles = { + "queries/yts/highlights.scm" = '' + ${lib.strings.fileContents "${pkgs.yts-grammar}/queries/highlights.scm"} + ''; + }; + }; +} |