neovim: enable use of external package manager (#5225)
* neovim: add extraWrapperArgs option pass external arguments to neovim-unwrapper this gives users more flexibility in managing neovim configuration * neovim: add test for `extraWrapperArgs`
This commit is contained in:
parent
40ab43ae98
commit
8fdf329526
|
@ -198,6 +198,28 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
extraWrapperArgs = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
example = literalExpression ''
|
||||
[
|
||||
"--suffix"
|
||||
"LIBRARY_PATH"
|
||||
":"
|
||||
"''${lib.makeLibraryPath [ pkgs.stdenv.cc.cc pkgs.zlib ]}"
|
||||
"--suffix"
|
||||
"PKG_CONFIG_PATH"
|
||||
":"
|
||||
"''${lib.makeSearchPathOutput "dev" "lib/pkgconfig" [ pkgs.stdenv.cc.cc pkgs.zlib ]}"
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
Extra arguments to be passed to the neovim wrapper.
|
||||
This option sets environment variables required for building and running binaries
|
||||
with external package managers like mason.nvim.
|
||||
'';
|
||||
};
|
||||
|
||||
generatedConfigViml = mkOption {
|
||||
type = types.lines;
|
||||
visible = true;
|
||||
|
@ -415,7 +437,8 @@ in {
|
|||
|
||||
programs.neovim.finalPackage = pkgs.wrapNeovimUnstable cfg.package
|
||||
(neovimConfig // {
|
||||
wrapperArgs = (lib.escapeShellArgs neovimConfig.wrapperArgs) + " "
|
||||
wrapperArgs = (lib.escapeShellArgs
|
||||
(neovimConfig.wrapperArgs ++ cfg.extraWrapperArgs)) + " "
|
||||
+ extraMakeWrapperArgs + " " + extraMakeWrapperLuaCArgs + " "
|
||||
+ extraMakeWrapperLuaArgs;
|
||||
wrapRc = false;
|
||||
|
|
|
@ -20,6 +20,17 @@ with lib;
|
|||
};
|
||||
}
|
||||
];
|
||||
extraWrapperArgs = let buildDeps = with pkgs; [ stdenv.cc.cc zlib ];
|
||||
in [
|
||||
"--suffix"
|
||||
"LIBRARY_PATH"
|
||||
":"
|
||||
"${lib.makeLibraryPath buildDeps}"
|
||||
"--suffix"
|
||||
"PKG_CONFIG_PATH"
|
||||
":"
|
||||
"${lib.makeSearchPathOutput "dev" "lib/pkgconfig" buildDeps}"
|
||||
];
|
||||
}
|
||||
{
|
||||
extraPython3Packages = ps: with ps; [ jedi pynvim ];
|
||||
|
@ -33,7 +44,10 @@ with lib;
|
|||
|
||||
nmt.script = ''
|
||||
ftplugin="home-files/.config/nvim/after/ftplugin/c.vim"
|
||||
nvimbin="home-path/bin/nvim"
|
||||
assertFileExists "$ftplugin"
|
||||
assertFileRegex "$nvimbin" 'LIBRARY_PATH'
|
||||
assertFileRegex "$nvimbin" 'PKG_CONFIG_PATH'
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue