From 4c4c4874c49a47a40df6bc45e20124535253f36f Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Tue, 20 Oct 2020 12:26:39 +0200 Subject: [PATCH] neovim: add config to passthru (#101100) first will register the config under the name init.vim which is more appropriate for neovim. Pass the generated config to passthru so that one can easily pass the current config to a raw/unwrapped neovim (helps with development). For instance, home-manager can reference the config in $XDG_CONFIG_HOME/nvim/init.vim without the need to wrap nvim with its config. --- pkgs/applications/editors/neovim/wrapper.nix | 9 +++++---- pkgs/misc/vim-plugins/vim-utils.nix | 6 ++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index e3c03c92e58c..cdc9a441dc5d 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -1,5 +1,6 @@ { stdenv, symlinkJoin, lib, makeWrapper , vimUtils +, writeText , bundlerEnv, ruby , nodejs , nodePackages @@ -110,9 +111,9 @@ let # https://github.com/neovim/neovim/issues/9413 ++ lib.optionals (configure != {}) [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" - "--add-flags" "-u ${vimUtils.vimrcFile configure}" - ] - ; + "--add-flags" "-u ${configFile}" + ]; + configFile = writeText "init.vim" "${vimUtils.vimrcContent configure}"; in symlinkJoin { name = "neovim-${stdenv.lib.getVersion neovim}"; @@ -181,7 +182,7 @@ let preferLocalBuild = true; buildInputs = [makeWrapper]; - passthru = { unwrapped = neovim; }; + passthru = { unwrapped = neovim; inherit configFile; }; meta = neovim.meta // { # To prevent builds on hydra diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix index 5e1703c8cc36..ee77599a3ba2 100644 --- a/pkgs/misc/vim-plugins/vim-utils.nix +++ b/pkgs/misc/vim-plugins/vim-utils.nix @@ -183,7 +183,7 @@ let rtpPath = "share/vim-plugins"; - vimrcFile = { + vimrcContent = { packages ? null, vam ? null, pathogen ? null, @@ -338,7 +338,7 @@ let filetype indent plugin on | syn on ''); - in writeText "vimrc" '' + in '' " configuration generated by NIX set nocompatible @@ -351,11 +351,13 @@ let ${customRC} ''; + vimrcFile = settings: writeText "vimrc" (vimrcContent settings); in rec { inherit vimrcFile; + inherit vimrcContent; # shell script with custom name passing [-u vimrc] [-U gvimrc] to vim vimWithRC = {