diff options
Diffstat (limited to 'modules/home.legacy/conf/nvim/plgs/treesitter/default.nix')
-rw-r--r-- | modules/home.legacy/conf/nvim/plgs/treesitter/default.nix | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/modules/home.legacy/conf/nvim/plgs/treesitter/default.nix b/modules/home.legacy/conf/nvim/plgs/treesitter/default.nix new file mode 100644 index 00000000..b4b20388 --- /dev/null +++ b/modules/home.legacy/conf/nvim/plgs/treesitter/default.nix @@ -0,0 +1,59 @@ +{ + config, + pkgs, + lib, + ... +}: { + programs.nixvim = { + plugins.treesitter = { + enable = true; + + # NOTE: These are required to build grammars, but I already use the nix grammars <2024-07-13> + gccPackage = null; + nodejsPackage = null; + treesitterPackage = null; + + # inject nixvim specific highlighting (eg in extraConfigLua). + nixvimInjections = true; + + nixGrammars = true; + grammarPackages = + config.programs.nixvim.plugins.treesitter.package.passthru.allGrammars + ++ [pkgs.tree-sitter-yts]; + + settings = { + auto_install = false; + ensureInstalled = "all"; + indent.enable = true; + disabledLanguages = []; + + highlight = { + enable = true; + disable = []; + + # 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 = ["latex"]; + }; + + 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".text = '' + ${lib.strings.fileContents "${pkgs.tree-sitter-yts}/queries/highlights.scm"} + ''; + }; + }; +} |