mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-13 02:34:34 +02:00
helpers.defaultNullOpts: add mkBorder
This commit is contained in:
parent
be6a29c800
commit
600cd12057
10 changed files with 29 additions and 36 deletions
|
@ -143,6 +143,21 @@ with lib; rec {
|
||||||
mkStr = default: mkNullable lib.types.str ''${builtins.toString default}'';
|
mkStr = default: mkNullable lib.types.str ''${builtins.toString default}'';
|
||||||
mkEnum = enum: default: mkNullable (lib.types.enum enum) ''"${default}"'';
|
mkEnum = enum: default: mkNullable (lib.types.enum enum) ''"${default}"'';
|
||||||
mkEnumFirstDefault = enum: mkEnum enum (head enum);
|
mkEnumFirstDefault = enum: mkEnum enum (head enum);
|
||||||
|
mkBorder = default: name: desc:
|
||||||
|
mkNullable (with lib.types; oneOf [str (listOf str) (listOf (listOf str))]) default (let
|
||||||
|
defaultDesc = ''
|
||||||
|
Defines the border to use for ${name}.
|
||||||
|
|
||||||
|
Accepts same border values as `nvim_open_win()`. See `:help nvim_open_win()` for more info.
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
if desc == ""
|
||||||
|
then defaultDesc
|
||||||
|
else ''
|
||||||
|
${desc}
|
||||||
|
|
||||||
|
${defaultDesc}
|
||||||
|
'');
|
||||||
};
|
};
|
||||||
|
|
||||||
mkPackageOption = name: default:
|
mkPackageOption = name: default:
|
||||||
|
|
|
@ -391,15 +391,6 @@ in {
|
||||||
|
|
||||||
window = let
|
window = let
|
||||||
# Reusable options
|
# Reusable options
|
||||||
mkBorderOption = default:
|
|
||||||
helpers.defaultNullOpts.mkNullable
|
|
||||||
(with types; either str (listOf str))
|
|
||||||
default
|
|
||||||
''
|
|
||||||
Border characters used for the completion popup menu when |experimental.native_menu| is disabled.
|
|
||||||
See |nvim_open_win|.
|
|
||||||
'';
|
|
||||||
|
|
||||||
mkWinhighlightOption = default:
|
mkWinhighlightOption = default:
|
||||||
helpers.defaultNullOpts.mkStr
|
helpers.defaultNullOpts.mkStr
|
||||||
default
|
default
|
||||||
|
@ -415,7 +406,7 @@ in {
|
||||||
in
|
in
|
||||||
helpers.mkCompositeOption "Windows options" {
|
helpers.mkCompositeOption "Windows options" {
|
||||||
completion = helpers.mkCompositeOption "Completion window options" {
|
completion = helpers.mkCompositeOption "Completion window options" {
|
||||||
border = mkBorderOption ''[ "" "" "" "" "" "" "" "" ]'';
|
border = helpers.defaultNullOpts.mkBorder ''[ "" "" "" "" "" "" "" "" ]'' "nvim-cmp window" "";
|
||||||
|
|
||||||
winhighlight =
|
winhighlight =
|
||||||
mkWinhighlightOption
|
mkWinhighlightOption
|
||||||
|
@ -442,7 +433,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
documentation = helpers.mkCompositeOption "Documentation window options" {
|
documentation = helpers.mkCompositeOption "Documentation window options" {
|
||||||
border = mkBorderOption ''[ "" "" "" " " "" "" "" " " ]'';
|
border = helpers.defaultNullOpts.mkBorder ''[ "" "" "" " " "" "" "" " " ]'' "nvim-cmp documentation window" "";
|
||||||
|
|
||||||
winhighlight = mkWinhighlightOption "FloatBorder:NormalFloat";
|
winhighlight = mkWinhighlightOption "FloatBorder:NormalFloat";
|
||||||
|
|
||||||
|
|
|
@ -7,12 +7,7 @@
|
||||||
helpers = import ../helpers.nix {inherit lib;};
|
helpers = import ../helpers.nix {inherit lib;};
|
||||||
in
|
in
|
||||||
with lib; let
|
with lib; let
|
||||||
borderOpt = let
|
borderOpt = helpers.defaultNullOpts.mkBorder "none" "clangd-extensions" "";
|
||||||
bordersTy =
|
|
||||||
types.enum ["double" "rounded" "single" "shadow" "none"];
|
|
||||||
in
|
|
||||||
helpers.defaultNullOpts.mkNullable (types.either bordersTy (types.listOf bordersTy))
|
|
||||||
''"none"'' "";
|
|
||||||
in {
|
in {
|
||||||
options.plugins.clangd-extensions = {
|
options.plugins.clangd-extensions = {
|
||||||
enable = mkEnableOption "clangd_extensions, plugin implementing clangd LSP extensions";
|
enable = mkEnableOption "clangd_extensions, plugin implementing clangd LSP extensions";
|
||||||
|
|
|
@ -73,8 +73,7 @@ in {
|
||||||
|
|
||||||
hoverActions = helpers.mkCompositeOption "hover actions" {
|
hoverActions = helpers.mkCompositeOption "hover actions" {
|
||||||
border =
|
border =
|
||||||
helpers.defaultNullOpts.mkNullable (types.listOf (types.listOf types.str))
|
helpers.defaultNullOpts.mkBorder ''
|
||||||
''
|
|
||||||
[
|
[
|
||||||
[ "╭" "FloatBorder" ]
|
[ "╭" "FloatBorder" ]
|
||||||
[ "─" "FloatBorder" ]
|
[ "─" "FloatBorder" ]
|
||||||
|
@ -86,7 +85,7 @@ in {
|
||||||
[ "│" "FloatBorder" ]
|
[ "│" "FloatBorder" ]
|
||||||
]
|
]
|
||||||
''
|
''
|
||||||
"the border that is used for the hover window. see vim.api.nvim_open_win()";
|
"rust-tools hover window" "";
|
||||||
|
|
||||||
maxWidth =
|
maxWidth =
|
||||||
helpers.defaultNullOpts.mkNullable types.int "null"
|
helpers.defaultNullOpts.mkNullable types.int "null"
|
||||||
|
|
|
@ -118,9 +118,7 @@ in {
|
||||||
helpers.defaultNullOpts.mkStr "off"
|
helpers.defaultNullOpts.mkStr "off"
|
||||||
"Live mode toggle, see Usage - Running for more info.";
|
"Live mode toggle, see Usage - Running for more info.";
|
||||||
|
|
||||||
borders =
|
borders = helpers.defaultNullOpts.mkBorder "single" "floating windows" "";
|
||||||
helpers.defaultNullOpts.mkEnum ["none" "single" "double" "shadow"] "single"
|
|
||||||
"Display borders around floating windows.";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -23,10 +23,8 @@ in {
|
||||||
description = "Plugin to use for null-ls";
|
description = "Plugin to use for null-ls";
|
||||||
};
|
};
|
||||||
|
|
||||||
border = helpers.defaultNullOpts.mkStr "null" ''
|
border = helpers.defaultNullOpts.mkBorder "null" "`:NullLsInfo` UI window." ''
|
||||||
Defines the border to use for the `:NullLsInfo` UI window.
|
|
||||||
Uses `NullLsInfoBorder` highlight group (see [Highlight Groups](#highlight-groups)).
|
Uses `NullLsInfoBorder` highlight group (see [Highlight Groups](#highlight-groups)).
|
||||||
Accepts same border values as `nvim_open_win()`. See `:help nvim_open_win()` for more info.
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
cmd = helpers.defaultNullOpts.mkNullable (types.listOf types.str) ''["nvim"]'' ''
|
cmd = helpers.defaultNullOpts.mkNullable (types.listOf types.str) ''["nvim"]'' ''
|
||||||
|
|
|
@ -41,9 +41,7 @@ in {
|
||||||
|
|
||||||
preview = {
|
preview = {
|
||||||
winConfig = {
|
winConfig = {
|
||||||
border =
|
border = helpers.defaultNullOpts.mkBorder "rounded" "preview window" "";
|
||||||
helpers.defaultNullOpts.mkNullable (types.either types.str (types.listOf types.str)) "rounded"
|
|
||||||
"The border for preview window, `:h nvim_open_win() | call search('border:')`";
|
|
||||||
|
|
||||||
winblend = helpers.defaultNullOpts.mkInt 12 "The winblend for preview window, `:h winblend`";
|
winblend = helpers.defaultNullOpts.mkInt 12 "The winblend for preview window, `:h winblend`";
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ with lib; let
|
||||||
helpers.mkNullOrOption (with types; either int fractionType)
|
helpers.mkNullOrOption (with types; either int fractionType)
|
||||||
"Optionally define an integer/float for the exact height of the preview window.";
|
"Optionally define an integer/float for the exact height of the preview window.";
|
||||||
|
|
||||||
border = helpers.defaultNullOpts.mkStr "rounded" "";
|
border = helpers.defaultNullOpts.mkBorder "rounded" "oil" "";
|
||||||
|
|
||||||
winOptions = {
|
winOptions = {
|
||||||
winblend = helpers.defaultNullOpts.mkInt 0 "";
|
winblend = helpers.defaultNullOpts.mkInt 0 "";
|
||||||
|
@ -315,7 +315,7 @@ in {
|
||||||
|
|
||||||
maxHeight = helpers.defaultNullOpts.mkInt 0 "";
|
maxHeight = helpers.defaultNullOpts.mkInt 0 "";
|
||||||
|
|
||||||
border = helpers.defaultNullOpts.mkStr "rounded" "";
|
border = helpers.defaultNullOpts.mkBorder "rounded" "oil.open_float" "";
|
||||||
|
|
||||||
winOptions = {
|
winOptions = {
|
||||||
winblend = helpers.defaultNullOpts.mkInt 10 "";
|
winblend = helpers.defaultNullOpts.mkInt 10 "";
|
||||||
|
@ -329,7 +329,7 @@ in {
|
||||||
progress =
|
progress =
|
||||||
commonWindowOptions
|
commonWindowOptions
|
||||||
// {
|
// {
|
||||||
minimizedBorder = helpers.defaultNullOpts.mkStr "none" "";
|
minimizedBorder = helpers.defaultNullOpts.mkBorder "none" "oil floating progress window" "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -140,13 +140,12 @@ in {
|
||||||
|
|
||||||
floatOpts = {
|
floatOpts = {
|
||||||
border =
|
border =
|
||||||
helpers.defaultNullOpts.mkStr "single"
|
helpers.defaultNullOpts.mkBorder "single" "toggleterm"
|
||||||
''
|
''
|
||||||
`border` = 'single' | 'double' | 'shadow' | 'curved' | ... other options supported by
|
`border` = 'single' | 'double' | 'shadow' | 'curved' | ... other options supported by
|
||||||
`win open`.
|
`win open`.
|
||||||
The border key is *almost* the same as 'nvim_open_win'.
|
The border key is *almost* the same as 'nvim_open_win'.
|
||||||
See `:h nvim_open_win` for details on borders however the 'curved' border is a custom
|
The 'curved' border is a custom border type not natively supported but implemented in this plugin.
|
||||||
border type not natively supported but implemented in this plugin.
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
width = helpers.defaultNullOpts.mkInt 50 "";
|
width = helpers.defaultNullOpts.mkInt 50 "";
|
||||||
|
|
|
@ -81,7 +81,7 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
border = helpers.defaultNullOpts.mkEnumFirstDefault ["none" "single" "double" "shadow"] "";
|
border = helpers.defaultNullOpts.mkBorder "none" "which-key" "";
|
||||||
position = helpers.defaultNullOpts.mkEnumFirstDefault ["bottom" "top"] "";
|
position = helpers.defaultNullOpts.mkEnumFirstDefault ["bottom" "top"] "";
|
||||||
margin =
|
margin =
|
||||||
helpers.defaultNullOpts.mkNullable spacingOptions
|
helpers.defaultNullOpts.mkNullable spacingOptions
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue