From 398988c3148a3c488a86d3a0474e6640c5f4cac6 Mon Sep 17 00:00:00 2001 From: Jelle Spreeuwenberg Date: Thu, 23 Jul 2026 11:52:46 +0200 Subject: [PATCH] fix: @attach keyword properly highlighted for svelte --- modules/capabilities/neovim/default.nix | 20 ++++++++++++++++++- .../lua-config/queries/svelte/highlights.scm | 3 +++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 modules/capabilities/neovim/lua-config/queries/svelte/highlights.scm diff --git a/modules/capabilities/neovim/default.nix b/modules/capabilities/neovim/default.nix index 3f66871..da37974 100644 --- a/modules/capabilities/neovim/default.nix +++ b/modules/capabilities/neovim/default.nix @@ -18,6 +18,24 @@ in osConfig, ... }: + let + nvimTreesitter = pkgs.vimPlugins.nvim-treesitter; + svelteGrammar = nvimTreesitter.builtGrammars.svelte.overrideAttrs (_: { + version = "0.0.0+rev=c2457b9"; + src = pkgs.fetchFromGitHub { + owner = "m4rch3n1ng"; + repo = "tree-sitter-svelte"; + rev = "c2457b99a5b8ee38e14928dceeb246a61c097b77"; + hash = "sha256-RIAe30TTzZhHuXxC2VRVk/X73Qm1u2LWOW3AsnUfRzI="; + }; + }); + nvimTreesitterWithAllGrammars = nvimTreesitter.withPlugins ( + _: + map ( + grammar: if grammar == nvimTreesitter.builtGrammars.svelte then svelteGrammar else grammar + ) nvimTreesitter.allGrammars + ); + in { home.sessionVariables = { EDITOR = "nvim"; @@ -74,7 +92,7 @@ in data = with pkgs.vimPlugins; [ plenary-nvim kanagawa-nvim - nvim-treesitter.withAllGrammars + nvimTreesitterWithAllGrammars nvim-treesitter-textobjects rainbow-delimiters-nvim ]; diff --git a/modules/capabilities/neovim/lua-config/queries/svelte/highlights.scm b/modules/capabilities/neovim/lua-config/queries/svelte/highlights.scm new file mode 100644 index 0000000..ed52eaf --- /dev/null +++ b/modules/capabilities/neovim/lua-config/queries/svelte/highlights.scm @@ -0,0 +1,3 @@ +; extends + +("attach") @keyword