mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 15:22:59 +01:00
neovimUtils.grammarToPlugin: install tree-sitter grammars for neovim without nvim-treesitter
nvim-treesitter installs tons of queries that are picked up by neovim even though we sometimes dont want those queries. This makes it possible to install grammars without nvim-treesitter which becomes more and more a repository like nvim-lspconfig, aka a repo that lists others.
This commit is contained in:
parent
3463e24e1d
commit
3b0f5393d9
2 changed files with 32 additions and 26 deletions
|
@ -9,8 +9,11 @@
|
|||
, python3Packages
|
||||
, writeText
|
||||
, wrapNeovimUnstable
|
||||
, runCommand
|
||||
}:
|
||||
let
|
||||
inherit (vimUtils) toVimPlugin;
|
||||
|
||||
/* returns everything needed for the caller to wrap its own neovim:
|
||||
- the generated content of the future init.vim
|
||||
- the arguments to wrap neovim with
|
||||
|
@ -197,11 +200,38 @@ let
|
|||
inherit (vimUtils) toVimPlugin;
|
||||
inherit lua;
|
||||
};
|
||||
|
||||
grammarToPlugin = grammar:
|
||||
let
|
||||
name = lib.pipe grammar [
|
||||
lib.getName
|
||||
|
||||
# added in buildGrammar
|
||||
(lib.removeSuffix "-grammar")
|
||||
|
||||
# grammars from tree-sitter.builtGrammars
|
||||
(lib.removePrefix "tree-sitter-")
|
||||
(lib.replaceStrings [ "-" ] [ "_" ])
|
||||
];
|
||||
in
|
||||
|
||||
toVimPlugin (runCommand "vimplugin-treesitter-grammar-${name}"
|
||||
{
|
||||
meta = {
|
||||
platforms = lib.platforms.all;
|
||||
} // grammar.meta;
|
||||
}
|
||||
''
|
||||
mkdir -p $out/parser
|
||||
ln -s ${grammar}/parser $out/parser/${name}.so
|
||||
'');
|
||||
|
||||
in
|
||||
{
|
||||
inherit makeNeovimConfig;
|
||||
inherit generateProviderRc;
|
||||
inherit legacyWrapper;
|
||||
inherit grammarToPlugin;
|
||||
|
||||
inherit buildNeovimPlugin;
|
||||
buildNeovimPluginFrom2Nix = lib.warn "buildNeovimPluginFrom2Nix was renamed to buildNeovimPlugin" buildNeovimPlugin;
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{ lib, callPackage, tree-sitter, neovim, runCommand }:
|
||||
{ lib, callPackage, tree-sitter, neovim, neovimUtils, runCommand }:
|
||||
|
||||
self: super:
|
||||
|
||||
let
|
||||
inherit (neovimUtils) grammarToPlugin;
|
||||
generatedGrammars = callPackage ./generated.nix {
|
||||
inherit (tree-sitter) buildGrammar;
|
||||
};
|
||||
|
@ -27,31 +28,6 @@ let
|
|||
})
|
||||
generatedDerivations;
|
||||
|
||||
grammarToPlugin = grammar:
|
||||
let
|
||||
name = lib.pipe grammar [
|
||||
lib.getName
|
||||
|
||||
# added in buildGrammar
|
||||
(lib.removeSuffix "-grammar")
|
||||
|
||||
# grammars from tree-sitter.builtGrammars
|
||||
(lib.removePrefix "tree-sitter-")
|
||||
(lib.replaceStrings [ "-" ] [ "_" ])
|
||||
];
|
||||
in
|
||||
|
||||
runCommand "nvim-treesitter-grammar-${name}"
|
||||
{
|
||||
meta = {
|
||||
platforms = lib.platforms.all;
|
||||
} // grammar.meta;
|
||||
}
|
||||
''
|
||||
mkdir -p $out/parser
|
||||
ln -s ${grammar}/parser $out/parser/${name}.so
|
||||
'';
|
||||
|
||||
allGrammars = lib.attrValues generatedDerivations;
|
||||
|
||||
# Usage:
|
||||
|
|
Loading…
Reference in a new issue