added warnings module

This commit is contained in:
Alexander Nortung 2023-01-20 00:15:58 +01:00
parent e607ab67a5
commit 5a222885fc
5 changed files with 65 additions and 8 deletions

31
lib/option-warnings.nix Normal file
View file

@ -0,0 +1,31 @@
{ lib, ... }:
with lib;
rec {
mkDeprecatedOption =
{ option # an array of the path to the option
, alternative ? null
, message ? null
, visible ? false
, ...
}:
{ options, ... }:
let
fromOpt = getAttrFromPath option options;
fullMessage = "The option `${showOption option}` has been deprecated." +
(optionalString (alternative != null) " You may want to use `${showOption alternative}` instead.") +
(optionalString (message != null) " Message: ${message}");
in
{
options = setAttrByPath option
(mkOption {
inherit visible;
description = fullMessage;
});
config = mkIf (fromOpt.isDefined) {
warnings = [
("Nixvim: ${fullMessage}")
];
};
};
}

12
modules/warnings.nix Normal file
View file

@ -0,0 +1,12 @@
{ lib, ... }:
with lib;
{
options = {
warnings = mkOption {
type = types.listOf types.str;
visible = false;
default = [];
};
};
}

View file

@ -1,8 +1,9 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }@args:
with lib; with lib;
let let
cfg = config.plugins.bufferline; cfg = config.plugins.bufferline;
helpers = import ../helpers.nix { inherit lib; }; optionWarnings = import ../../lib/option-warnings.nix args;
helpers = import ../helpers.nix args;
highlight = mkOption { highlight = mkOption {
type = types.nullOr (types.submodule ({ ... }: { type = types.nullOr (types.submodule ({ ... }: {
@ -23,6 +24,13 @@ let
}; };
in in
{ {
imports = [
(optionWarnings.mkDeprecatedOption {
option = [ "plugins" "bufferline" "indicatorIcon" ];
alternative = [ "plugins" "bufferline" "indicator" "icon" ];
})
];
options = { options = {
plugins.bufferline = { plugins.bufferline = {
enable = mkEnableOption "Enable bufferline"; enable = mkEnableOption "Enable bufferline";
@ -56,12 +64,12 @@ in
description = "Command or function run when middle clicking on a buffer."; description = "Command or function run when middle clicking on a buffer.";
default = null; default = null;
}; };
indicatorIcon = mkOption { # indicatorIcon = mkOption {
type = types.nullOr types.str; # type = types.nullOr types.str;
description = "The Icon shown as a indicator for buffer. Changing it is NOT recommended, # description = "The Icon shown as a indicator for buffer. Changing it is NOT recommended,
this is intended to be an escape hatch for people who cannot bear it for whatever reason."; # this is intended to be an escape hatch for people who cannot bear it for whatever reason.";
default = null; # default = null;
}; # };
bufferCloseIcon = mkOption { bufferCloseIcon = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
description = "The close icon for each buffer."; description = "The close icon for each buffer.";

View file

@ -22,5 +22,8 @@ in
(mkIf (!cfg.wrapRc) { (mkIf (!cfg.wrapRc) {
xdg.configFile."nvim/init.lua".text = cfg.initContent; xdg.configFile."nvim/init.lua".text = cfg.initContent;
}) })
({
warnings = cfg.warnings;
})
]); ]);
} }

View file

@ -23,5 +23,8 @@ in
environment.etc."nvim/sysinit.lua".text = cfg.initContent; environment.etc."nvim/sysinit.lua".text = cfg.initContent;
environment.variables."VIM" = "/etc/nvim"; environment.variables."VIM" = "/etc/nvim";
}) })
({
warnings = cfg.warnings;
})
]); ]);
} }