summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/editors/spacevim/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/editors/spacevim/default.nix')
-rw-r--r--pkgs/applications/editors/spacevim/default.nix55
1 files changed, 55 insertions, 0 deletions
diff --git a/pkgs/applications/editors/spacevim/default.nix b/pkgs/applications/editors/spacevim/default.nix
new file mode 100644
index 000000000000..b2eb6eecc193
--- /dev/null
+++ b/pkgs/applications/editors/spacevim/default.nix
@@ -0,0 +1,55 @@
+{ ripgrep, gitAndTools, fzf, makeWrapper, vim_configurable, vimPlugins, fetchFromGitHub, writeTextDir
+, stdenv, runCommandNoCC, remarshal, formats, spacevim_config ? import ./init.nix }:
+with stdenv;
+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 = format.generate "init.toml" spacevim_config;
+in mkDerivation rec {
+ pname = "spacevim";
+ version = "1.5.0";
+ src = fetchFromGitHub {
+ owner = "SpaceVim";
+ repo = "SpaceVim";
+ rev = "v${version}";
+ sha256 = "1xw4l262x7wzs1m65bddwqf3qx4254ykddsw3c3p844pb3mzqhh7";
+ };
+
+ nativeBuildInputs = [ makeWrapper vim-customized];
+ buildInputs = [ vim-customized ];
+
+ buildPhase = ''
+ # generate the helptags
+ vim -u NONE -c "helptags $(pwd)/doc" -c q
+ '';
+
+ patches = [ ./helptags.patch ];
+
+ installPhase = ''
+ 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 gitAndTools.git ripgrep]}
+ '';
+
+ meta = with stdenv.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;
+ };
+}