diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/spacevim/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/editors/spacevim/default.nix | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/spacevim/default.nix b/nixpkgs/pkgs/applications/editors/spacevim/default.nix new file mode 100644 index 000000000000..661bec463a78 --- /dev/null +++ b/nixpkgs/pkgs/applications/editors/spacevim/default.nix @@ -0,0 +1,65 @@ +{ ripgrep, git, fzf, makeWrapper, vim_configurable, vimPlugins, fetchFromGitHub +, lib, stdenv, formats, runCommand, spacevim_config ? import ./init.nix }: + +let + format = formats.toml {}; + vim-customized = vim_configurable.customize { + name = "vim"; + # Not clear at the moment how to import plugins such that + # SpaceVim finds them and does not auto download them to + # ~/.cache/vimfiles/repos + vimrcConfig.packages.myVimPackage = with vimPlugins; { start = [ ]; }; + }; + spacevimdir = runCommand "SpaceVim.d" { } '' + mkdir -p $out + cp ${format.generate "init.toml" spacevim_config} $out/init.toml + ''; +in stdenv.mkDerivation rec { + pname = "spacevim"; + version = "1.6.0"; + src = fetchFromGitHub { + owner = "SpaceVim"; + repo = "SpaceVim"; + rev = "v${version}"; + sha256 = "sha256-QQdtjEdbuzmf0Rw+u2ZltLihnJt8LqkfTrLDWLAnCLE="; + }; + + nativeBuildInputs = [ makeWrapper vim-customized]; + buildInputs = [ vim-customized ]; + + buildPhase = '' + runHook preBuild + # generate the helptags + vim -u NONE -c "helptags $(pwd)/doc" -c q + runHook postBuild + ''; + + patches = [ + # Don't generate helptags at runtime into read-only $SPACEVIMDIR + ./helptags.patch + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + + cp -r $(pwd) $out/SpaceVim + + # trailing slash very important for SPACEVIMDIR + makeWrapper "${vim-customized}/bin/vim" "$out/bin/spacevim" \ + --add-flags "-u $out/SpaceVim/vimrc" --set SPACEVIMDIR "${spacevimdir}/" \ + --prefix PATH : ${lib.makeBinPath [ fzf git ripgrep]} + runHook postInstall + ''; + + meta = with lib; { + description = "Modern Vim distribution"; + longDescription = '' + SpaceVim is a distribution of the Vim editor that’s inspired by spacemacs. + ''; + homepage = "https://spacevim.org/"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.fzakaria ]; + platforms = platforms.all; + }; +} |