Unverified Commit ae4b12b0 authored by Austin Horstman's avatar Austin Horstman Committed by GitHub
Browse files

vimPlugins.nvim-treesitter-legacy: use parsers from main branch (#477675)

parents e85cbe51 5401813d
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
{
  lib,
  vimPlugins,
}:
lib.recurseIntoAttrs vimPlugins.nvim-treesitter-legacy.grammarPlugins
+0 −3643

File deleted.

Preview size limit exceeded, changes collapsed.

+16 −66
Original line number Diff line number Diff line
{
  lib,
  callPackage,
  tree-sitter,
  neovim,
  neovimUtils,
  runCommand,
  vimPlugins,
  tree-sitter-grammars,
  writableTmpDirAsHomeHook,
}:

{ lib }:
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;
  inherit (self) nvim-treesitter;

  # Usage:
  # pkgs.vimPlugins.nvim-treesitter-legacy.withPlugins (p: [ p.c p.java ... ])
  # or for all grammars:
  # pkgs.vimPlugins.nvim-treesitter-legacy.withAllGrammars
  withPlugins =
    f:
    let
      from-main = self.nvim-treesitter.withPlugins f;
    in
    self.nvim-treesitter-legacy.overrideAttrs {
      passthru.dependencies = map grammarToPlugin (f (tree-sitter.builtGrammars // builtGrammars));
      passthru = { inherit (from-main) dependencies; };
    };

  withAllGrammars = withPlugins (_: allGrammars);
  withAllGrammars = withPlugins (_: nvim-treesitter.allGrammars);
in

{
@@ -70,21 +21,20 @@ in
  '';

  passthru = (super.nvim-treesitter-legacy.passthru or { }) // {
    inherit
    inherit (nvim-treesitter)
      builtGrammars
      allGrammars
      grammarToPlugin
      grammarPlugins
      parsers
      ;
    inherit
      withPlugins
      withAllGrammars
      ;

    grammarPlugins = lib.mapAttrs (_: grammarToPlugin) generatedDerivations;
    parsers = lib.recurseIntoAttrs vimPlugins.nvim-treesitter.grammarPlugins;
  };

  meta =

    (super.nvim-treesitter-legacy.meta or { }) // {
  meta = super.nvim-treesitter-legacy.meta or { } // {
    license = lib.licenses.asl20;
    maintainers = [ ];
  };
+9 −9
Original line number Diff line number Diff line
@@ -2750,15 +2750,15 @@ assertNoAdditions {
    checkInputs = [ self.toggleterm-nvim ];
    dependencies = with self; [
      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
      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
    ];
    nvimSkipModules = [
      # Broken runners