modules/wrapper: make all wrapper features configurable

following features have been made configurable `withRuby`, `withNodeJs`, `withPython3` and `python3Packages`
This commit is contained in:
NotAShelf 2024-04-21 02:23:07 +03:00
parent d9a984bf6f
commit 7647353c40
No known key found for this signature in database
GPG key ID: 02D1DD3FA08B6B29
2 changed files with 32 additions and 3 deletions

View file

@ -83,6 +83,7 @@ inputs: {
plugins = builtStartPlugins ++ builtOptPlugins;
extraLuaPackages = ps: map (x: ps.${x}) vimOptions.luaPackages;
extraPython3Packages = ps: map (x: ps.${x}) vimOptions.python3Packages;
# wrap user's desired neovim package using the neovim wrapper from nixpkgs
# the wrapper takes the following arguments:
@ -95,8 +96,8 @@ inputs: {
# - customRC (string)
# and returns the wrapped package
neovim-wrapped = wrapNeovimUnstable vimOptions.package (makeNeovimConfig {
inherit (vimOptions) viAlias vimAlias;
inherit plugins extraLuaPackages;
inherit (vimOptions) viAlias vimAlias withRuby withNodeJs withPython3;
inherit plugins extraLuaPackages extraPython3Packages;
customRC = vimOptions.builtConfigRC;
});
in {

View file

@ -3,7 +3,7 @@
lib,
...
}: let
inherit (lib.options) mkOption literalExpression;
inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.types) package bool str listOf attrsOf;
inherit (lib.nvim.types) pluginsOpt extraPluginType;
in {
@ -94,6 +94,21 @@ in {
'';
};
# this defaults to `true` in the wrapper
# and since we passs this value to the wrapper
# with an inherit, it should be `true` here as well
withRuby =
mkEnableOption ''
Ruby support in the Neovim wrapper.
''
// {
default = true;
};
withNodeJs = mkEnableOption ''
NodeJs support in the Neovim wrapper.
'';
luaPackages = mkOption {
type = listOf str;
default = [];
@ -102,5 +117,18 @@ in {
List of lua packages to install.
'';
};
withPython3 = mkEnableOption ''
Python3 support in the Neovim wrapper.
'';
python3Packages = mkOption {
type = listOf str;
default = [];
example = literalExpression ''["pynvim"]'';
description = ''
List of python packages to install.
'';
};
};
}