plugins: Fetch the plugin sources from flake inputs (#247)

This commit is contained in:
traxys 2023-03-14 23:48:27 +01:00 committed by GitHub
parent b3ca52110f
commit 416c719f47
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 310 additions and 72 deletions

View file

@ -75,7 +75,10 @@
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
alejandra.enable = true;
alejandra = {
enable = true;
excludes = ["plugins/_sources"];
};
};
};
};
@ -114,6 +117,8 @@
'';
})
{};
# Used to updates plugins, launch 'nix run .#nvfetcher' in the 'plugins' directory
nvfetcher = pkgs.nvfetcher;
};
legacyPackages = rec {
makeNixvimWithModule = import ./wrappers/standalone.nix pkgs modules;
@ -124,7 +129,33 @@
};
};
};
formatter = pkgs.alejandra;
formatter = let
# We need to exclude the plugins/_sources/* files as they are autogenerated
# nix formatter only takes a derivation so we need to make a proxy that passes
# the correct flags
excludeWrapper = {
stdenv,
alejandra,
writeShellScript,
...
}:
stdenv.mkDerivation {
pname = "alejandra-excludes";
version = alejandra.version;
dontUnpack = true;
dontBuild = true;
installPhase = let
script = writeShellScript "alejandra-excludes.sh" ''
${alejandra}/bin/alejandra --exclude ./plugins/_sources "$@"
'';
in ''
mkdir -p $out/bin
cp ${script} $out/bin/alejandra-excludes
'';
};
in
pkgs.callPackage excludeWrapper {};
lib = import ./lib {
inherit pkgs;

View file

@ -0,0 +1,142 @@
{
"coq-artifacts": {
"cargoLocks": null,
"date": "2023-03-12",
"extract": null,
"name": "coq-artifacts",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "ms-jpq",
"repo": "coq.artifacts",
"rev": "ee1814e2183bd424ca5528f82f3d6ce8f64e6f90",
"sha256": "sha256-e+w5tLuer/4f0oImlIgxmI4Ke9h6x0PQ8+nVJDihkGQ=",
"type": "github"
},
"version": "ee1814e2183bd424ca5528f82f3d6ce8f64e6f90"
},
"coq-nvim": {
"cargoLocks": null,
"date": "2023-03-12",
"extract": null,
"name": "coq-nvim",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "ms-jpq",
"repo": "coq_nvim",
"rev": "4b4b93dbbfc871a3d32a244a4276ee06696c21bb",
"sha256": "sha256-OXhLs7fO+qlOPyDc8AOA+bkbj9OzMZO8CFgfE/Q1cro=",
"type": "github"
},
"version": "4b4b93dbbfc871a3d32a244a4276ee06696c21bb"
},
"intellitab-nvim": {
"cargoLocks": null,
"date": "2021-11-13",
"extract": null,
"name": "intellitab-nvim",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "pta2002",
"repo": "intellitab.nvim",
"rev": "a6c1a505865f6131866d609c52440306e9914b16",
"sha256": "sha256-z5G7v2OttQs5B/uqWdxYtW6wPnVPARjQYidKLYkhvqY=",
"type": "github"
},
"version": "a6c1a505865f6131866d609c52440306e9914b16"
},
"magma-nvim": {
"cargoLocks": null,
"date": "2023-03-13",
"extract": null,
"name": "magma-nvim",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "WhiteBlackGoose",
"repo": "magma-nvim-goose",
"rev": "5d916c39c1852e09fcd39eab174b8e5bbdb25f8f",
"sha256": "sha256-Sq7J43AYvsfUdFXELzEwBNTpnOt/F43/de+2zwBspoE=",
"type": "github"
},
"version": "5d916c39c1852e09fcd39eab174b8e5bbdb25f8f"
},
"mark-radar": {
"cargoLocks": null,
"date": "2021-06-22",
"extract": null,
"name": "mark-radar",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "winston0410",
"repo": "mark-radar.nvim",
"rev": "d7fb84a670795a5b36b18a5b59afd1d3865cbec7",
"sha256": "sha256-6WfEFLFQnDpQ2X0NRSa25ALvm/SxiFoW4PAzBA8TdPg=",
"type": "github"
},
"version": "d7fb84a670795a5b36b18a5b59afd1d3865cbec7"
},
"pynvim_pp": {
"cargoLocks": null,
"date": "2023-03-12",
"extract": null,
"name": "pynvim_pp",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "ms-jpq",
"repo": "pynvim_pp",
"rev": "40db0426f171d413dcc976b17c8eff0127664f23",
"sha256": "sha256-AtsoRJQcO5jDNlSydVnqcN7f4xURmH6bGFPpjsZ9Yrg=",
"type": "github"
},
"version": "40db0426f171d413dcc976b17c8eff0127664f23"
},
"std2": {
"cargoLocks": null,
"date": "2023-03-12",
"extract": null,
"name": "std2",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "ms-jpq",
"repo": "std2",
"rev": "43635e036486296776b4ef5ac498f742ad25a691",
"sha256": "sha256-oWVaw7v1Sl7DkqIJOm8wEReID9MTD3XFOdpyQDXRa04=",
"type": "github"
},
"version": "43635e036486296776b4ef5ac498f742ad25a691"
}
}

View file

@ -0,0 +1,88 @@
# This file was generated by nvfetcher, please do not modify it manually.
{ fetchgit, fetchurl, fetchFromGitHub, dockerTools }:
{
coq-artifacts = {
pname = "coq-artifacts";
version = "ee1814e2183bd424ca5528f82f3d6ce8f64e6f90";
src = fetchFromGitHub ({
owner = "ms-jpq";
repo = "coq.artifacts";
rev = "ee1814e2183bd424ca5528f82f3d6ce8f64e6f90";
fetchSubmodules = false;
sha256 = "sha256-e+w5tLuer/4f0oImlIgxmI4Ke9h6x0PQ8+nVJDihkGQ=";
});
date = "2023-03-12";
};
coq-nvim = {
pname = "coq-nvim";
version = "4b4b93dbbfc871a3d32a244a4276ee06696c21bb";
src = fetchFromGitHub ({
owner = "ms-jpq";
repo = "coq_nvim";
rev = "4b4b93dbbfc871a3d32a244a4276ee06696c21bb";
fetchSubmodules = false;
sha256 = "sha256-OXhLs7fO+qlOPyDc8AOA+bkbj9OzMZO8CFgfE/Q1cro=";
});
date = "2023-03-12";
};
intellitab-nvim = {
pname = "intellitab-nvim";
version = "a6c1a505865f6131866d609c52440306e9914b16";
src = fetchFromGitHub ({
owner = "pta2002";
repo = "intellitab.nvim";
rev = "a6c1a505865f6131866d609c52440306e9914b16";
fetchSubmodules = false;
sha256 = "sha256-z5G7v2OttQs5B/uqWdxYtW6wPnVPARjQYidKLYkhvqY=";
});
date = "2021-11-13";
};
magma-nvim = {
pname = "magma-nvim";
version = "5d916c39c1852e09fcd39eab174b8e5bbdb25f8f";
src = fetchFromGitHub ({
owner = "WhiteBlackGoose";
repo = "magma-nvim-goose";
rev = "5d916c39c1852e09fcd39eab174b8e5bbdb25f8f";
fetchSubmodules = false;
sha256 = "sha256-Sq7J43AYvsfUdFXELzEwBNTpnOt/F43/de+2zwBspoE=";
});
date = "2023-03-13";
};
mark-radar = {
pname = "mark-radar";
version = "d7fb84a670795a5b36b18a5b59afd1d3865cbec7";
src = fetchFromGitHub ({
owner = "winston0410";
repo = "mark-radar.nvim";
rev = "d7fb84a670795a5b36b18a5b59afd1d3865cbec7";
fetchSubmodules = false;
sha256 = "sha256-6WfEFLFQnDpQ2X0NRSa25ALvm/SxiFoW4PAzBA8TdPg=";
});
date = "2021-06-22";
};
pynvim_pp = {
pname = "pynvim_pp";
version = "40db0426f171d413dcc976b17c8eff0127664f23";
src = fetchFromGitHub ({
owner = "ms-jpq";
repo = "pynvim_pp";
rev = "40db0426f171d413dcc976b17c8eff0127664f23";
fetchSubmodules = false;
sha256 = "sha256-AtsoRJQcO5jDNlSydVnqcN7f4xURmH6bGFPpjsZ9Yrg=";
});
date = "2023-03-12";
};
std2 = {
pname = "std2";
version = "43635e036486296776b4ef5ac498f742ad25a691";
src = fetchFromGitHub ({
owner = "ms-jpq";
repo = "std2";
rev = "43635e036486296776b4ef5ac498f742ad25a691";
fetchSubmodules = false;
sha256 = "sha256-oWVaw7v1Sl7DkqIJOm8wEReID9MTD3XFOdpyQDXRa04=";
});
date = "2023-03-12";
};
}

27
plugins/nvfetcher.toml Normal file
View file

@ -0,0 +1,27 @@
[intellitab-nvim]
src.git = "https://github.com/pta2002/intellitab.nvim"
fetch.github = "pta2002/intellitab.nvim"
[mark-radar]
src.git = "https://github.com/winston0410/mark-radar.nvim"
fetch.github = "winston0410/mark-radar.nvim"
[coq-nvim]
src.git = "https://github.com/ms-jpq/coq_nvim"
fetch.github = "ms-jpq/coq_nvim"
[std2]
src.git = "https://github.com/ms-jpq/std2"
fetch.github = "ms-jpq/std2"
[pynvim_pp]
src.git = "https://github.com/ms-jpq/pynvim_pp"
fetch.github = "ms-jpq/pynvim_pp"
[coq-artifacts]
src.git = "https://github.com/ms-jpq/coq.artifacts"
fetch.github = "ms-jpq/coq.artifacts"
[magma-nvim]
src.git = "https://github.com/WhiteBlackGoose/magma-nvim-goose"
fetch.github = "WhiteBlackGoose/magma-nvim-goose"

View file

@ -1,65 +1,31 @@
# This is for plugins not in nixpkgs
# e.g. intellitab.nvim
# Ideally, in the future, this would all be specified as a flake input!
{pkgs, ...}: {
intellitab-nvim = pkgs.vimUtils.buildVimPlugin rec {
pname = "intellitab-nvim";
version = "a6c1a505865f6131866d609c52440306e9914b16";
src = pkgs.fetchFromGitHub {
owner = "pta2002";
repo = "intellitab.nvim";
rev = version;
sha256 = "19my464jsji7cb81h0agflzb0vmmb3f5kapv0wwhpdddcfzvp4fg";
};
#
# This is generated through nvfetcher, the plugins are defined in nvfetcher.toml.
# You can update the plugins by running `nvfetcher` in this directory
{pkgs, ...}: let
sources = pkgs.callPackage ./_sources/generated.nix {};
in {
intellitab-nvim = pkgs.vimUtils.buildVimPlugin {
inherit (sources.intellitab-nvim) pname version src;
};
mark-radar = pkgs.vimUtils.buildVimPlugin rec {
pname = "mark-radar";
version = "d7fb84a670795a5b36b18a5b59afd1d3865cbec7";
src = pkgs.fetchFromGitHub {
owner = "winston0410";
repo = "mark-radar.nvim";
rev = version;
sha256 = "1y3l2c7h8czhw0b5m25iyjdyy0p4nqk4a3bxv583m72hn4ac8rz9";
};
mark-radar = pkgs.vimUtils.buildVimPlugin {
inherit (sources.mark-radar) pname version src;
};
coq-nvim = pkgs.vimUtils.buildVimPlugin rec {
pname = "coq-nvim";
version = "2699492a1b8716c59ade7130dc354e53944b6a7f";
src = pkgs.fetchFromGitHub {
owner = "ms-jpq";
repo = "coq_nvim";
rev = version;
sha256 = "sha256-tjniIWe1V4vGuao5no+3YB9WtiNaMehEjffJyNpFgd8=";
};
coq-nvim = pkgs.vimUtils.buildVimPlugin {
inherit (sources.coq-nvim) pname version src;
passthru.python3Dependencies = ps: [
ps.pynvim
ps.pyyaml
(ps.buildPythonPackage rec {
pname = "pynvim_pp";
version = "01dc0f58d4e71a98c388e1f37bda3d1357089fa2";
src = pkgs.fetchFromGitHub {
owner = "ms-jpq";
repo = "pynvim_pp";
rev = version;
sha256 = "sha256-/m4Paw6AvDzTMWWCWpPnrdI4gsjIDSJPvGCMV7ufbEA=";
};
(ps.buildPythonPackage {
inherit (sources.pynvim_pp) pname version src;
propagatedBuildInputs = [pkgs.python3Packages.pynvim];
})
(ps.buildPythonPackage rec {
pname = "std2";
version = "48bb39b69ed631ef64eed6123443484133fd20fc";
(ps.buildPythonPackage {
inherit (sources.std2) pname version src;
doCheck = true;
src = pkgs.fetchFromGitHub {
owner = "ms-jpq";
repo = "std2";
rev = version;
sha256 = "sha256-nMwNAq15zyf9ORhFGo0sawQukOygYoVWtT7jH68MIkI=";
};
})
];
@ -72,28 +38,12 @@
'';
};
coq-artifacts = pkgs.vimUtils.buildVimPlugin rec {
pname = "coq.artifacts";
version = "495429564e481cafeb044456da32c10cb631f948";
src = pkgs.fetchFromGitHub {
owner = "ms-jpq";
repo = "coq.artifacts";
rev = version;
sha256 = "sha256-AtkG2XRVZgvJzH2iLr7UT/U1+LXxenvNckdapnJV+8A=";
};
coq-artifacts = pkgs.vimUtils.buildVimPlugin {
inherit (sources.coq-artifacts) pname version src;
};
magma-nvim = pkgs.vimUtils.buildVimPlugin rec {
pname = "magma-nvim";
version = "94370733757d550594fe4a1d65643949d7485989";
src = pkgs.fetchFromGitHub {
owner = "WhiteBlackGoose";
repo = "magma-nvim-goose";
rev = version;
sha256 = "sha256-IaslJK1F2BxTvZzKGH9OKOl2RICi4d4rSgjliAIAqK4=";
};
magma-nvim = pkgs.vimUtils.buildVimPlugin {
inherit (sources.magma-nvim) pname version src;
passthru.python3Dependencies = ps:
with ps; [