| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- { fetchFromGitHub, fetchpatch, buildNeovimPlugin }:
- let
- plugins = builtins.fromJSON (builtins.readFile ./sources.json);
- overrides = {
- "nvim-telescope/telescope-fzf-native.nvim" = {
- dontBuild = false;
- };
- "nvim-treesitter/nvim-treesitter" = {
- patches = [
- # these extra rules causes nvim to crash when looking at a deeply nested
- # JSX expression
- ./treesitter-jsx.patch
- # try to fix indentation in JS
- ./treesitter-ecma.patch
- ];
- installPhase = ''
- mkdir $out
- cp -r runtime/queries $out/queries
- rm -r $out/queries/svelte
- mkdir $out/plugin
- cp plugin/query_predicates.lua $out/plugin
- mkdir -p $out/lua/nvim-treesitter
- cp lua/nvim-treesitter/indent.lua $out/lua/nvim-treesitter
- '';
- };
- "nvim-treesitter/nvim-treesitter-context" = {
- postInstall = ''
- rm -r $out/queries/svelte
- '';
- };
- "FourierTransformer/tinytoml" = {
- postPatch = ''
- mkdir lua
- mv tinytoml.lua lua
- '';
- };
- };
- buildPlugin = name: spec:
- let
- nameParts = builtins.split "/" name;
- owner = builtins.head nameParts;
- repo = builtins.elemAt nameParts 2;
- in
- buildNeovimPlugin ({
- name = repo;
- src = fetchFromGitHub {
- inherit owner repo;
- inherit (spec) rev sha256;
- };
- passthru = {
- optional = spec.optional or false;
- };
- dontBuild = true;
- } // (overrides.${name} or {}));
- in
- builtins.mapAttrs buildPlugin plugins
|