vimPlugins.nvim-treesitter-legacy: init (#472119)
This commit is contained in:
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
lib,
|
||||
vimPlugins,
|
||||
}:
|
||||
lib.recurseIntoAttrs vimPlugins.nvim-treesitter-legacy.grammarPlugins
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
{ vimUtils, fetchFromGitHub }:
|
||||
vimUtils.buildVimPlugin {
|
||||
pname = "nvim-treesitter-legacy";
|
||||
version = "0.10.0-unstable-2025-05-24";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-treesitter";
|
||||
repo = "nvim-treesitter";
|
||||
rev = "42fc28ba918343ebfd5565147a42a26580579482";
|
||||
hash = "sha256-CVs9FTdg3oKtRjz2YqwkMr0W5qYLGfVyxyhE3qnGYbI=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
|
||||
meta.hydraPlatforms = [ ];
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,91 @@
|
||||
{
|
||||
lib,
|
||||
callPackage,
|
||||
tree-sitter,
|
||||
neovim,
|
||||
neovimUtils,
|
||||
runCommand,
|
||||
vimPlugins,
|
||||
tree-sitter-grammars,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
self: super:
|
||||
|
||||
let
|
||||
inherit (neovimUtils) grammarToPlugin;
|
||||
|
||||
overrides = prev: {
|
||||
};
|
||||
|
||||
generatedGrammars =
|
||||
let
|
||||
generated = callPackage ./generated.nix {
|
||||
inherit (tree-sitter) buildGrammar;
|
||||
};
|
||||
in
|
||||
lib.overrideExisting generated (overrides generated);
|
||||
|
||||
generatedDerivations = lib.filterAttrs (_: lib.isDerivation) generatedGrammars;
|
||||
|
||||
# add aliases so grammars from `tree-sitter` are overwritten in `withPlugins`
|
||||
# for example, for ocaml_interface, the following aliases will be added
|
||||
# ocaml-interface
|
||||
# tree-sitter-ocaml-interface
|
||||
# tree-sitter-ocaml_interface
|
||||
builtGrammars =
|
||||
generatedGrammars
|
||||
// lib.concatMapAttrs (
|
||||
k: v:
|
||||
let
|
||||
replaced = lib.replaceStrings [ "_" ] [ "-" ] k;
|
||||
in
|
||||
{
|
||||
"tree-sitter-${k}" = v;
|
||||
}
|
||||
// lib.optionalAttrs (k != replaced) {
|
||||
${replaced} = v;
|
||||
"tree-sitter-${replaced}" = v;
|
||||
}
|
||||
) generatedDerivations;
|
||||
|
||||
allGrammars = lib.attrValues generatedDerivations;
|
||||
|
||||
# Usage:
|
||||
# pkgs.vimPlugins.nvim-treesitter-legacy.withPlugins (p: [ p.c p.java ... ])
|
||||
# or for all grammars:
|
||||
# pkgs.vimPlugins.nvim-treesitter-legacy.withAllGrammars
|
||||
withPlugins =
|
||||
f:
|
||||
self.nvim-treesitter-legacy.overrideAttrs {
|
||||
passthru.dependencies = map grammarToPlugin (f (tree-sitter.builtGrammars // builtGrammars));
|
||||
};
|
||||
|
||||
withAllGrammars = withPlugins (_: allGrammars);
|
||||
in
|
||||
|
||||
{
|
||||
postPatch = ''
|
||||
rm -r parser
|
||||
'';
|
||||
|
||||
passthru = (super.nvim-treesitter-legacy.passthru or { }) // {
|
||||
inherit
|
||||
builtGrammars
|
||||
allGrammars
|
||||
grammarToPlugin
|
||||
withPlugins
|
||||
withAllGrammars
|
||||
;
|
||||
|
||||
grammarPlugins = lib.mapAttrs (_: grammarToPlugin) generatedDerivations;
|
||||
parsers = lib.recurseIntoAttrs vimPlugins.nvim-treesitter.grammarPlugins;
|
||||
};
|
||||
|
||||
meta =
|
||||
|
||||
(super.nvim-treesitter-legacy.meta or { }) // {
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
@@ -1927,7 +1927,7 @@ assertNoAdditions {
|
||||
};
|
||||
|
||||
markid = super.markid.overrideAttrs {
|
||||
dependencies = [ self.nvim-treesitter ];
|
||||
dependencies = [ self.nvim-treesitter-legacy ];
|
||||
};
|
||||
|
||||
mason-lspconfig-nvim = super.mason-lspconfig-nvim.overrideAttrs {
|
||||
@@ -2421,7 +2421,7 @@ assertNoAdditions {
|
||||
nvim-cmp
|
||||
nvim-lspconfig
|
||||
telescope-nvim
|
||||
nvim-treesitter
|
||||
nvim-treesitter-legacy
|
||||
nvchad-ui
|
||||
];
|
||||
nvimSkipModules = [
|
||||
@@ -2464,7 +2464,7 @@ assertNoAdditions {
|
||||
|
||||
nvim-biscuits = super.nvim-biscuits.overrideAttrs {
|
||||
dependencies = with self; [
|
||||
nvim-treesitter
|
||||
nvim-treesitter-legacy
|
||||
plenary-nvim
|
||||
];
|
||||
};
|
||||
@@ -2526,7 +2526,7 @@ assertNoAdditions {
|
||||
};
|
||||
|
||||
nvim-FeMaco-lua = super.nvim-FeMaco-lua.overrideAttrs {
|
||||
dependencies = [ self.nvim-treesitter ];
|
||||
dependencies = [ self.nvim-treesitter-legacy ];
|
||||
};
|
||||
|
||||
nvim-fzf-commands = super.nvim-fzf-commands.overrideAttrs {
|
||||
@@ -2699,16 +2699,16 @@ assertNoAdditions {
|
||||
# Optional toggleterm integration
|
||||
checkInputs = [ self.toggleterm-nvim ];
|
||||
dependencies = with self; [
|
||||
nvim-treesitter
|
||||
nvim-treesitter-parsers.c_sharp
|
||||
nvim-treesitter-parsers.go
|
||||
nvim-treesitter-parsers.haskell
|
||||
nvim-treesitter-parsers.javascript
|
||||
nvim-treesitter-parsers.python
|
||||
nvim-treesitter-parsers.ruby
|
||||
nvim-treesitter-parsers.rust
|
||||
nvim-treesitter-parsers.typescript
|
||||
nvim-treesitter-parsers.zig
|
||||
nvim-treesitter-legacy
|
||||
nvim-treesitter-legacy-parsers.c_sharp
|
||||
nvim-treesitter-legacy-parsers.go
|
||||
nvim-treesitter-legacy-parsers.haskell
|
||||
nvim-treesitter-legacy-parsers.javascript
|
||||
nvim-treesitter-legacy-parsers.python
|
||||
nvim-treesitter-legacy-parsers.ruby
|
||||
nvim-treesitter-legacy-parsers.rust
|
||||
nvim-treesitter-legacy-parsers.typescript
|
||||
nvim-treesitter-legacy-parsers.zig
|
||||
];
|
||||
nvimSkipModules = [
|
||||
# Broken runners
|
||||
@@ -2738,37 +2738,42 @@ assertNoAdditions {
|
||||
callPackage ./nvim-treesitter/overrides.nix { } self super
|
||||
);
|
||||
|
||||
# TODO: raise warning at 26.04; drop at 26.11
|
||||
nvim-treesitter-legacy = super.nvim-treesitter-legacy.overrideAttrs (
|
||||
callPackage ./nvim-treesitter-legacy/overrides.nix { } self super
|
||||
);
|
||||
|
||||
nvim-treesitter-context = super.nvim-treesitter-context.overrideAttrs {
|
||||
# Meant for CI installing parsers
|
||||
nvimSkipModules = [ "install_parsers" ];
|
||||
};
|
||||
|
||||
nvim-treesitter-endwise = super.nvim-treesitter-endwise.overrideAttrs {
|
||||
dependencies = [ self.nvim-treesitter ];
|
||||
dependencies = [ self.nvim-treesitter-legacy ];
|
||||
};
|
||||
|
||||
nvim-treesitter-pairs = super.nvim-treesitter-pairs.overrideAttrs {
|
||||
dependencies = [ self.nvim-treesitter ];
|
||||
dependencies = [ self.nvim-treesitter-legacy ];
|
||||
};
|
||||
|
||||
nvim-treesitter-pyfold = super.nvim-treesitter-pyfold.overrideAttrs {
|
||||
dependencies = [ self.nvim-treesitter ];
|
||||
dependencies = [ self.nvim-treesitter-legacy ];
|
||||
};
|
||||
|
||||
nvim-treesitter-refactor = super.nvim-treesitter-refactor.overrideAttrs {
|
||||
dependencies = [ self.nvim-treesitter ];
|
||||
dependencies = [ self.nvim-treesitter-legacy ];
|
||||
};
|
||||
|
||||
nvim-treesitter-sexp = super.nvim-treesitter-sexp.overrideAttrs {
|
||||
dependencies = [ self.nvim-treesitter ];
|
||||
dependencies = [ self.nvim-treesitter-legacy ];
|
||||
};
|
||||
|
||||
nvim-treesitter-textobjects = super.nvim-treesitter-textobjects.overrideAttrs {
|
||||
dependencies = [ self.nvim-treesitter ];
|
||||
dependencies = [ self.nvim-treesitter-legacy ];
|
||||
};
|
||||
|
||||
nvim-treesitter-textsubjects = super.nvim-treesitter-textsubjects.overrideAttrs {
|
||||
dependencies = [ self.nvim-treesitter ];
|
||||
dependencies = [ self.nvim-treesitter-legacy ];
|
||||
};
|
||||
|
||||
nvim-ufo = super.nvim-ufo.overrideAttrs {
|
||||
|
||||
@@ -216,6 +216,14 @@ let
|
||||
ln -s ${python3Env}/${python3Env.sitePackages} $out/pack/${packageName}/start/__python3_dependencies/python3
|
||||
'';
|
||||
in
|
||||
|
||||
assert
|
||||
(
|
||||
builtins.elem vimPlugins.nvim-treesitter (opt ++ allPlugins)
|
||||
&& builtins.elem vimPlugins.nvim-treesitter-legacy (opt ++ allPlugins)
|
||||
)
|
||||
-> throw "You cannot include two different versions of nvim-treesitter, perhaps you included a legacy plugin together with a new one?";
|
||||
|
||||
[
|
||||
packdirStart
|
||||
packdirOpt
|
||||
|
||||
Reference in New Issue
Block a user