mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-11-05 05:02:20 +00:00
lib: extract shared borderType
This commit is contained in:
parent
d3cd9809b2
commit
32eb9c3de6
5 changed files with 21 additions and 19 deletions
|
|
@ -4,22 +4,24 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib.options) mkOption mkEnableOption;
|
||||
inherit (lib.lists) optionals;
|
||||
inherit (lib.types) enum either listOf str;
|
||||
inherit (lib.nvim.types) borderType;
|
||||
|
||||
cfg = config.vim.ui.borders;
|
||||
|
||||
defaultStyles = ["none" "single" "double" "rounded"];
|
||||
in {
|
||||
options.vim.ui.borders = {
|
||||
enable = mkEnableOption "visible borders for most windows";
|
||||
|
||||
globalStyle = mkOption {
|
||||
type = either (enum defaultStyles) (listOf str);
|
||||
type = borderType;
|
||||
default = "rounded";
|
||||
description = ''
|
||||
The global border style to use.
|
||||
|
||||
If a list is given, it should have a length of eight or any divisor of
|
||||
eight. The array will specify the eight chars building up the border in
|
||||
a clockwise fashion starting with the top-left corner.
|
||||
'';
|
||||
example = ["╔" "═" "╗" "║" "╝" "═" "╚" "║"];
|
||||
};
|
||||
|
||||
# TODO: make per-plugin borders configurable
|
||||
|
|
@ -28,7 +30,7 @@ in {
|
|||
enable = mkEnableOption "borders for the ${name} plugin" // {default = cfg.enable;};
|
||||
|
||||
style = mkOption {
|
||||
type = either (enum (defaultStyles ++ optionals (name != "which-key") ["shadow"])) (listOf str);
|
||||
type = borderType;
|
||||
default = cfg.globalStyle;
|
||||
description = "The border style to use for the ${name} plugin";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
inherit (lib.options) mkOption mkEnableOption;
|
||||
inherit (lib.types) nullOr listOf enum bool str int either;
|
||||
inherit (lib.modules) mkRenamedOptionModule;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption borderType;
|
||||
mkSimpleIconOption = default:
|
||||
mkOption {
|
||||
inherit default;
|
||||
|
|
@ -212,8 +212,7 @@ in {
|
|||
# position = {}
|
||||
|
||||
border = mkOption {
|
||||
# TODO: let this type accept a custom string
|
||||
type = either (enum ["single" "rounded" "double" "solid" "none"]) (listOf str);
|
||||
type = borderType;
|
||||
default = config.vim.ui.borders.globalStyle;
|
||||
description = "border style to use";
|
||||
};
|
||||
|
|
@ -236,8 +235,7 @@ in {
|
|||
*/
|
||||
|
||||
border = mkOption {
|
||||
# TODO: let this type accept a custom string
|
||||
type = nullOr (either (enum ["single" "rounded" "double" "solid" "none"]) (listOf str));
|
||||
type = borderType;
|
||||
default = config.vim.ui.borders.globalStyle;
|
||||
description = "border style to use for the left section of Navbuddy UI";
|
||||
};
|
||||
|
|
@ -254,8 +252,7 @@ in {
|
|||
*/
|
||||
|
||||
border = mkOption {
|
||||
# TODO: let this type accept a custom string
|
||||
type = nullOr (either (enum ["single" "rounded" "double" "solid" "none"]) (listOf str));
|
||||
type = borderType;
|
||||
default = config.vim.ui.borders.globalStyle;
|
||||
description = "border style to use for the middle section of Navbuddy UI";
|
||||
};
|
||||
|
|
@ -265,8 +262,7 @@ in {
|
|||
# there is no size option for the right section, it fills the remaining space
|
||||
right = {
|
||||
border = mkOption {
|
||||
# TODO: let this type accept a custom string
|
||||
type = nullOr (either (enum ["single" "rounded" "double" "solid" "none"]) (listOf str));
|
||||
type = borderType;
|
||||
default = config.vim.ui.borders.globalStyle;
|
||||
description = "border style to use for the right section of Navbuddy UI";
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue