mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
67 lines
1.9 KiB
Nix
67 lines
1.9 KiB
Nix
{ lib, ... }:
|
|
let
|
|
inherit (lib) types;
|
|
inherit (lib.nixvim) defaultNullOpts toLuaObject;
|
|
in
|
|
lib.nixvim.plugins.mkNeovimPlugin {
|
|
name = "nix-develop";
|
|
packPathName = "nix-develop.nvim";
|
|
package = "nix-develop-nvim";
|
|
callSetup = false;
|
|
hasSettings = false;
|
|
|
|
maintainers = [ lib.maintainers.HeitorAugustoLN ];
|
|
|
|
extraOptions = {
|
|
ignoredVariables =
|
|
defaultNullOpts.mkAttrsOf types.bool
|
|
{
|
|
BASHOPTS = true;
|
|
HOME = true;
|
|
NIX_BUILD_TOP = true;
|
|
NIX_ENFORCE_PURITY = true;
|
|
NIX_LOG_FD = true;
|
|
NIX_REMOTE = true;
|
|
PPID = true;
|
|
SHELL = true;
|
|
SHELLOPTS = true;
|
|
SSL_CERT_FILE = true;
|
|
TEMP = true;
|
|
TEMPDIR = true;
|
|
TERM = true;
|
|
TMP = true;
|
|
TMPDIR = true;
|
|
TZ = true;
|
|
UID = true;
|
|
}
|
|
''
|
|
Variables that should be ignored when generating the environment.
|
|
'';
|
|
|
|
separatedVariables =
|
|
defaultNullOpts.mkAttrsOf types.str
|
|
{
|
|
PATH = ":";
|
|
XDG_DATA_DIRS = ":";
|
|
}
|
|
''
|
|
Specified separators to use for particular environment variables.
|
|
'';
|
|
};
|
|
|
|
extraConfig = cfg: {
|
|
plugins.nix-develop.luaConfig.content =
|
|
lib.optionalString (cfg.ignoredVariables != null) ''
|
|
local ignored_variables = ${toLuaObject cfg.ignoredVariables}
|
|
for ignored_variable, should_ignore in pairs(ignored_variables) do
|
|
require("nix-develop").ignored_variables[ignored_variable] = should_ignore
|
|
end
|
|
''
|
|
+ lib.optionalString (cfg.separatedVariables != null) ''
|
|
local separated_variables = ${toLuaObject cfg.separatedVariables}
|
|
for separated_variable, separator in pairs(separated_variables) do
|
|
require("nix-develop").separated_variables[separated_variable] = separator
|
|
end
|
|
'';
|
|
};
|
|
}
|