about summary refs log tree commit diff stats
path: root/hm/soispha/conf/nvim/plgs/treesitter
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2024-01-19 18:55:21 +0100
committerSoispha <soispha@vhack.eu>2024-01-19 18:55:21 +0100
commit849cd60632c2da99a4035e614266b0aa86612f4f (patch)
tree55372bc6c1f6424d84c75085ca0a3b4d12b4dabb /hm/soispha/conf/nvim/plgs/treesitter
parentfeat(flake): Add `pkgs` subattribute (diff)
downloadnixos-config-849cd60632c2da99a4035e614266b0aa86612f4f.zip
feat(hm/conf/nvim/plgs/treesitter): Add custom parser for `yts`
Diffstat (limited to 'hm/soispha/conf/nvim/plgs/treesitter')
-rw-r--r--hm/soispha/conf/nvim/plgs/treesitter/default.nix74
1 files changed, 45 insertions, 29 deletions
diff --git a/hm/soispha/conf/nvim/plgs/treesitter/default.nix b/hm/soispha/conf/nvim/plgs/treesitter/default.nix
index bbee4690..fe43ddd7 100644
--- a/hm/soispha/conf/nvim/plgs/treesitter/default.nix
+++ b/hm/soispha/conf/nvim/plgs/treesitter/default.nix
@@ -1,39 +1,55 @@
-{...}: {
-  programs.nixvim.plugins.treesitter = {
-    enable = true;
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}: {
+  programs.nixvim = {
+    plugins.treesitter = {
+      enable = true;
 
-    ensureInstalled = "all";
-    indent = true;
+      ensureInstalled = "all";
+      indent = true;
 
-    # inject nixvim specific highlighting (eg in extraConfigLua).
-    nixvimInjections = true;
+      # inject nixvim specific highlighting (eg in extraConfigLua).
+      nixvimInjections = true;
 
-    disabledLanguages = [];
+      grammarPackages =
+        config.programs.nixvim.plugins.treesitter.package.passthru.allGrammars
+        ++ [pkgs.yts-grammar];
 
-    /*
-    # TODO: this is not supported by the nixVim modlue, nixNeovim supports this though ..
-    highlight = {
-      #  `false` will disable the whole extension
-      enable = true;
-      disable = ["latex"];
+      disabledLanguages = [];
 
-      #  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 = [""];
-    };
-    */
+      /*
+      # TODO: this is not supported by the NixVim module, NixNeovim supports this though..
+      highlight = {
+        #  `false` will disable the whole extension
+        enable = true;
+        disable = ["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";
+        #  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"}
+      '';
     };
   };
 }