aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name/nv/nvim/plgs/treesitter
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-09 12:35:44 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-09 12:54:51 +0100
commit2122a01f99c6da466b8f0f55c965c11a9043d117 (patch)
tree6c1697afc30a5bb72635bda7db9b5610386a5b71 /modules/by-name/nv/nvim/plgs/treesitter
parentfix(pkgs/stamp): Fallback to `dot-license` (diff)
downloadnixos-config-2122a01f99c6da466b8f0f55c965c11a9043d117.zip
refactor(modules/legacy/conf/nvim): Move to `by-name`
Diffstat (limited to 'modules/by-name/nv/nvim/plgs/treesitter')
-rw-r--r--modules/by-name/nv/nvim/plgs/treesitter/default.nix63
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"}
+ '';
+ };
+ };
+}