about summary refs log tree commit diff stats
path: root/modules/home/conf/nvim/plgs/treesitter
diff options
context:
space:
mode:
Diffstat (limited to 'modules/home/conf/nvim/plgs/treesitter')
-rw-r--r--modules/home/conf/nvim/plgs/treesitter/default.nix56
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"}
+      '';
+    };
+  };
+}