about summary refs log tree commit diff
path: root/pkgs/misc/vim-plugins
diff options
context:
space:
mode:
authorMateusz Gołębiewski <mateusz@golebiewski.me>2019-02-24 05:05:31 +0100
committerMateusz Gołębiewski <mateusz@golebiewski.me>2019-02-24 05:07:46 +0100
commit75211154ede76acdf5d8f7ba10ad9b67045df8ae (patch)
treef8cdc84d30bf765b48f2e5248b8aca06bd55ca9d /pkgs/misc/vim-plugins
parentb623da79e4e0a1a5ade552ce43cb5b3e4e469bf6 (diff)
downloadnixlib-75211154ede76acdf5d8f7ba10ad9b67045df8ae.tar
nixlib-75211154ede76acdf5d8f7ba10ad9b67045df8ae.tar.gz
nixlib-75211154ede76acdf5d8f7ba10ad9b67045df8ae.tar.bz2
nixlib-75211154ede76acdf5d8f7ba10ad9b67045df8ae.tar.lz
nixlib-75211154ede76acdf5d8f7ba10ad9b67045df8ae.tar.xz
nixlib-75211154ede76acdf5d8f7ba10ad9b67045df8ae.tar.zst
nixlib-75211154ede76acdf5d8f7ba10ad9b67045df8ae.zip
vim: Allow independent setting of executable names
* Allow settign gvim wrapper name independently of vim wrapper name.
* Allow setting vim wrapper name independently of derivation name.
* Refactor multiple places where name was checked for null with default
  value.
Diffstat (limited to 'pkgs/misc/vim-plugins')
-rw-r--r--pkgs/misc/vim-plugins/vim-utils.nix32
1 files changed, 25 insertions, 7 deletions
diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix
index 62e0d9e8bcc7..3e9fb7facf71 100644
--- a/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/pkgs/misc/vim-plugins/vim-utils.nix
@@ -359,20 +359,31 @@ rec {
   inherit vimrcFile;
 
   # shell script with custom name passing [-u vimrc] [-U gvimrc] to vim
-  vimWithRC = {vimExecutable, gvimExecutable, vimManPages, wrapManual, wrapGui, name ? null, vimrcFile ? null, gvimrcFile ? null}:
+  vimWithRC = {
+    vimExecutable,
+    gvimExecutable,
+    vimManPages,
+    wrapManual,
+    wrapGui,
+    name ? "vim",
+    vimrcFile ? null,
+    gvimrcFile ? null,
+    vimExecutableName,
+    gvimExecutableName,
+  }:
     let
       rcOption = o: file: stdenv.lib.optionalString (file != null) "-${o} ${file}";
-      vimWrapperScript = writeScriptBin (if name == null then "vim" else name) ''
+      vimWrapperScript = writeScriptBin vimExecutableName ''
         #!${stdenv.shell}
         exec ${vimExecutable} ${rcOption "u" vimrcFile} ${rcOption "U" gvimrcFile} "$@"
       '';
-      gvimWrapperScript = writeScriptBin (if name == null then "gvim" else (lib.concatStrings [ "g" name ])) ''
+      gvimWrapperScript = writeScriptBin gvimExecutableName ''
         #!${stdenv.shell}
         exec ${gvimExecutable} ${rcOption "u" vimrcFile} ${rcOption "U" gvimrcFile} "$@"
       '';
     in
       buildEnv {
-        name = vimWrapperScript.name;
+        inherit name;
         paths = [
           vimWrapperScript
         ] ++ lib.optional wrapGui gvimWrapperScript
@@ -382,13 +393,20 @@ rec {
 
   # add a customize option to a vim derivation
   makeCustomizable = vim: vim // {
-    customize = { name, vimrcConfig, wrapManual ? true, wrapGui ? false }: vimWithRC {
+    customize = {
+      name,
+      vimrcConfig,
+      wrapManual ? true,
+      wrapGui ? false,
+      vimExecutableName ? name,
+      gvimExecutableName ? (lib.concatStrings [ "g" name ]),
+    }: vimWithRC {
       vimExecutable = "${vim}/bin/vim";
       gvimExecutable = "${vim}/bin/gvim";
-      inherit name wrapManual wrapGui;
+      inherit name wrapManual wrapGui vimExecutableName gvimExecutableName;
       vimrcFile = vimrcFile vimrcConfig;
       vimManPages = buildEnv {
-        name = "${name}-doc";
+        name = "vim-doc";
         paths = [ vim ];
         pathsToLink = [ "/share/man" ];
       };