diff --git a/pkgs/applications/editors/neovim/utils.nix b/pkgs/applications/editors/neovim/utils.nix index f95494812bd5..beca1cf1d4e2 100644 --- a/pkgs/applications/editors/neovim/utils.nix +++ b/pkgs/applications/editors/neovim/utils.nix @@ -259,6 +259,30 @@ let inherit lua; }; + toGrammarName = lib.flip lib.pipe [ + lib.getName + + # added in buildGrammar + (lib.removeSuffix "-grammar") + + # grammars from tree-sitter.builtGrammars + (lib.removePrefix "tree-sitter-") + (lib.replaceStrings [ "-" ] [ "_" ]) + ]; + + nvimGrammars = lib.mapAttrsToList ( + name: value: + value.origGrammar + or (throw "additions to `pkgs.vimPlugins.nvim-treesitter.grammarPlugins` set should be passed through `pkgs.neovimUtils.grammarToPlugin` first") + ) vimPlugins.nvim-treesitter.grammarPlugins; + + isNvimGrammar = x: builtins.elem x nvimGrammars; + + toNvimTreesitterGrammar = makeSetupHook { + name = "to-nvim-treesitter-grammar"; + meta.license = lib.licenses.mit; + } ./to-nvim-treesitter-grammar.sh; + grammarToPlugin = grammar: # If the grammar has already been processed by this function, return it as-is. @@ -268,28 +292,7 @@ let grammar else let - name = lib.pipe grammar [ - lib.getName - - # added in buildGrammar - (lib.removeSuffix "-grammar") - - # grammars from tree-sitter.builtGrammars - (lib.removePrefix "tree-sitter-") - (lib.replaceStrings [ "-" ] [ "_" ]) - ]; - - nvimGrammars = lib.mapAttrsToList ( - name: value: - value.origGrammar - or (throw "additions to `pkgs.vimPlugins.nvim-treesitter.grammarPlugins` set should be passed through `pkgs.neovimUtils.grammarToPlugin` first") - ) vimPlugins.nvim-treesitter.grammarPlugins; - isNvimGrammar = x: builtins.elem x nvimGrammars; - - toNvimTreesitterGrammar = makeSetupHook { - name = "to-nvim-treesitter-grammar"; - meta.license = lib.licenses.mit; - } ./to-nvim-treesitter-grammar.sh; + name = toGrammarName grammar; in (toVimPlugin (