diff options
Diffstat (limited to 'modules/by-name/nv/nvim/plgs/treesitter/default.nix')
-rw-r--r-- | modules/by-name/nv/nvim/plgs/treesitter/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/modules/by-name/nv/nvim/plgs/treesitter/default.nix b/modules/by-name/nv/nvim/plgs/treesitter/default.nix new file mode 100644 index 00000000..02088d0a --- /dev/null +++ b/modules/by-name/nv/nvim/plgs/treesitter/default.nix @@ -0,0 +1,63 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.soispha.programs.nvim; +in { + home-manager.users.soispha. programs.nixvim = lib.mkIf cfg.enable { + 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 = + # Append the `tree-sitter-yts` grammar to all the other grammars. + # TODO: Find a better way to do this. <2024-11-08> + config.home-manager.users.soispha.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"} + ''; + }; + }; +} |