{ 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.tree-sitter-yts]; 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.tree-sitter-yts}/queries/highlights.scm"} ''; }; }; }