diff --git a/plugins/ui/image.nix b/plugins/ui/image.nix index 3195ea3e..d5cd54a8 100644 --- a/plugins/ui/image.nix +++ b/plugins/ui/image.nix @@ -56,9 +56,12 @@ in }; in mapAttrs mkIntegrationOptions { - markdown = ''["markdown" "vimwiki"]''; - neorg = ''["norg"]''; - syslang = ''["syslang"]''; + markdown = [ + "markdown" + "vimwiki" + ]; + neorg = [ "norg" ]; + syslang = [ "syslang" ]; }; maxWidth = helpers.mkNullOrOption types.ints.unsigned "Image maximum width."; @@ -78,7 +81,12 @@ in ''; windowOverlapClearFtIgnore = - helpers.defaultNullOpts.mkListOf types.str ''["cmp_menu" "cmp_docs" ""]'' + helpers.defaultNullOpts.mkListOf types.str + [ + "cmp_menu" + "cmp_docs" + "" + ] '' Toggles images when windows are overlapped. ''; @@ -92,7 +100,14 @@ in ''; hijackFilePatterns = - helpers.defaultNullOpts.mkListOf types.str ''["*.png" "*.jpg" "*.jpeg" "*.gif" "*.webp"]'' + helpers.defaultNullOpts.mkListOf types.str + [ + "*.png" + "*.jpg" + "*.jpeg" + "*.gif" + "*.webp" + ] '' Render image files as images when opened. ''; diff --git a/plugins/ui/neoscroll.nix b/plugins/ui/neoscroll.nix index 0a34d9a7..9afdd16f 100644 --- a/plugins/ui/neoscroll.nix +++ b/plugins/ui/neoscroll.nix @@ -16,19 +16,17 @@ helpers.neovim-plugin.mkNeovimPlugin config { settingsOptions = { mappings = helpers.defaultNullOpts.mkListOf types.str - '' - [ - "" - "" - "" - "" - "" - "" - "zt" - "zz" - "zb" - ] - '' + [ + "" + "" + "" + "" + "" + "" + "zt" + "zz" + "zb" + ] '' All the keys defined in this option will be mapped to their corresponding default scrolling animation. To no map any key pass an empty table: diff --git a/plugins/ui/noice.nix b/plugins/ui/noice.nix index 939493d6..fad9c0f2 100644 --- a/plugins/ui/noice.nix +++ b/plugins/ui/noice.nix @@ -22,20 +22,43 @@ with lib; cmdline = { enabled = helpers.defaultNullOpts.mkBool true "enables Noice cmdline UI"; view = helpers.defaultNullOpts.mkStr "cmdline_popup" ""; - opts = helpers.defaultNullOpts.mkNullable types.anything "{}" ""; + opts = helpers.defaultNullOpts.mkAttrsOf types.anything { } ""; format = - helpers.defaultNullOpts.mkNullable (types.attrsOf types.anything) - '' - { - cmdline = {pattern = "^:"; icon = ""; lang = "vim";}; - search_down = {kind = "search"; pattern = "^/"; icon = " "; lang = "regex";}; - search_up = {kind = "search"; pattern = "?%?"; icon = " "; lang = "regex";}; - filter = {pattern = "^:%s*!"; icon = "$"; lang = "bash";}; - lua = {pattern = "^:%s*lua%s+"; icon = ""; lang = "lua";}; - help = {pattern = "^:%s*he?l?p?%s+"; icon = "";}; - input = {}; - } - '' + helpers.defaultNullOpts.mkAttrsOf types.anything + { + cmdline = { + pattern = "^:"; + icon = ""; + lang = "vim"; + }; + search_down = { + kind = "search"; + pattern = "^/"; + icon = " "; + lang = "regex"; + }; + search_up = { + kind = "search"; + pattern = "?%?"; + icon = " "; + lang = "regex"; + }; + filter = { + pattern = "^:%s*!"; + icon = "$"; + lang = "bash"; + }; + lua = { + pattern = "^:%s*lua%s+"; + icon = ""; + lang = "lua"; + }; + help = { + pattern = "^:%s*he?l?p?%s+"; + icon = ""; + }; + input = { }; + } '' conceal: (default=true) This will hide the text in the cmdline that matches the pattern. view: (default is cmdline view) @@ -64,55 +87,80 @@ with lib; "nui" "cmp" ] ""; - kindIcons = helpers.defaultNullOpts.mkNullable (types.either types.bool ( - types.attrsOf types.anything - )) "{}" "Icons for completion item kinds. set to `false` to disable icons"; + kindIcons = helpers.defaultNullOpts.mkNullable ( + with types; either bool (attrsOf anything) + ) { } "Icons for completion item kinds. set to `false` to disable icons"; }; - redirect = helpers.defaultNullOpts.mkNullable (types.attrsOf types.anything) '' - { - view = "popup"; - filter = {event = "msg_show";}; - } - '' "default options for require('noice').redirect"; + redirect = helpers.defaultNullOpts.mkAttrsOf types.anything { + view = "popup"; + filter = { + event = "msg_show"; + }; + } "default options for require('noice').redirect"; - commands = helpers.defaultNullOpts.mkNullable (types.attrsOf types.anything) '' - { - history = { - view = "split"; - opts = {enter = true; format = "details";}; - filter = { - any = [ - {event = "notify";} - {error = true;} - {warning = true;} - {event = "msg_show"; kind = [""];} - {event = "lsp"; kind = "message";} - ]; - }; + commands = helpers.defaultNullOpts.mkAttrsOf types.anything { + history = { + view = "split"; + opts = { + enter = true; + format = "details"; }; - last = { - view = "popup"; - opts = {enter = true; format = "details";}; - filter = { - any = [ - {event = "notify";} - {error = true;} - {warning = true;} - {event = "msg_show"; kind = [""];} - {event = "lsp"; kind = "message";} - ]; - }; - filter_opts = {count = 1;}; + filter = { + any = [ + { event = "notify"; } + { error = true; } + { warning = true; } + { + event = "msg_show"; + kind = [ "" ]; + } + { + event = "lsp"; + kind = "message"; + } + ]; }; - errors = { - view = "popup"; - opts = {enter = true; format = "details";}; - filter = {error = true;}; - filter_opts = {reverse = true;}; + }; + last = { + view = "popup"; + opts = { + enter = true; + format = "details"; }; - } - '' "You can add any custom commands that will be available with `:Noice command`"; + filter = { + any = [ + { event = "notify"; } + { error = true; } + { warning = true; } + { + event = "msg_show"; + kind = [ "" ]; + } + { + event = "lsp"; + kind = "message"; + } + ]; + }; + filter_opts = { + count = 1; + }; + }; + errors = { + view = "popup"; + opts = { + enter = true; + format = "details"; + }; + filter = { + error = true; + }; + filter_opts = { + reverse = true; + }; + }; + } "You can add any custom commands that will be available with `:Noice command`"; notify = { enabled = helpers.defaultNullOpts.mkBool true '' @@ -131,35 +179,27 @@ with lib; progress = { enabled = helpers.defaultNullOpts.mkBool true "enable LSP progress"; - format = - helpers.defaultNullOpts.mkNullable (types.either types.str types.anything) ''"lsp_progress"'' - '' - Lsp Progress is formatted using the builtins for lsp_progress - ''; - formatDone = - helpers.defaultNullOpts.mkNullable (types.either types.str types.anything) ''"lsp_progress"'' - ""; + format = helpers.defaultNullOpts.mkNullable (with types; either str anything) "lsp_progress" '' + Lsp Progress is formatted using the builtins for lsp_progress + ''; + formatDone = helpers.defaultNullOpts.mkNullable (with types; either str anything) "lsp_progress" ""; - throttle = helpers.defaultNullOpts.mkNum "1000 / 30" "frequency to update lsp progress message"; + throttle = helpers.defaultNullOpts.mkNum (literalExpression "1000 / 30") "frequency to update lsp progress message"; view = helpers.defaultNullOpts.mkStr "mini" ""; }; - override = helpers.defaultNullOpts.mkNullable (types.attrsOf types.bool) '' - { - "vim.lsp.util.convert_input_to_markdown_lines" = false; - "vim.lsp.util.stylize_markdown" = false; - "cmp.entry.get_documentation" = false; - } - '' ""; + override = helpers.defaultNullOpts.mkAttrsOf types.bool { + "vim.lsp.util.convert_input_to_markdown_lines" = false; + "vim.lsp.util.stylize_markdown" = false; + "cmp.entry.get_documentation" = false; + } ""; hover = { enabled = helpers.defaultNullOpts.mkBool true "enable hover UI"; - view = - helpers.defaultNullOpts.mkNullable types.str null - "when null, use defaults from documentation"; + view = helpers.defaultNullOpts.mkStr (literalMD "use defaults from documentation") ""; # TODO: description opts = - helpers.defaultNullOpts.mkNullable types.anything "{}" + helpers.defaultNullOpts.mkAttrsOf types.anything { } "merged with defaults from documentation"; }; @@ -175,11 +215,9 @@ with lib; ''; }; - view = - helpers.defaultNullOpts.mkNullable types.str null - "when null, use defaults from documentation"; + view = helpers.defaultNullOpts.mkStr null "when null, use defaults from documentation"; opts = - helpers.defaultNullOpts.mkNullable types.anything "{}" + helpers.defaultNullOpts.mkAttrsOf types.anything { } "merged with defaults from documentation"; }; @@ -187,42 +225,39 @@ with lib; enabled = helpers.defaultNullOpts.mkBool true "enable display of messages"; view = helpers.defaultNullOpts.mkStr "notify" ""; - opts = helpers.defaultNullOpts.mkNullable types.anything "{}" ""; + opts = helpers.defaultNullOpts.mkAttrsOf types.anything { } ""; }; documentation = { view = helpers.defaultNullOpts.mkStr "hover" ""; - opts = helpers.defaultNullOpts.mkNullable types.anything '' - { - lang = "markdown"; - replace = true; - render = "plain"; - format = ["{message}"]; - win_options = { concealcursor = "n"; conceallevel = 3; }; - } - '' ""; + opts = helpers.defaultNullOpts.mkAttrsOf types.anything { + lang = "markdown"; + replace = true; + render = "plain"; + format = [ "{message}" ]; + win_options = { + concealcursor = "n"; + conceallevel = 3; + }; + } ""; }; }; markdown = { - hover = helpers.defaultNullOpts.mkNullable (types.attrsOf types.str) '' - { - "|(%S-)|" = helpers.mkRaw "vim.cmd.help"; // vim help links - "%[.-%]%((%S-)%)" = helpers.mkRaw "require("noice.util").open"; // markdown links - } - '' "set handlers for hover (lua code)"; + hover = helpers.defaultNullOpts.mkAttrsOf types.str { + "|(%S-)|".__raw = "vim.cmd.help"; # vim help links + "%[.-%]%((%S-)%)".__raw = "require('noice.util').open"; # markdown links + } "set handlers for hover (lua code)"; - highlights = helpers.defaultNullOpts.mkNullable (types.attrsOf types.str) '' - { - "|%S-|" = "@text.reference"; - "@%S+" = "@parameter"; - "^%s*(Parameters:)" = "@text.title"; - "^%s*(Return:)" = "@text.title"; - "^%s*(See also:)" = "@text.title"; - "{%S-}" = "@parameter"; - } - '' "set highlight groups"; + highlights = helpers.defaultNullOpts.mkAttrsOf types.str { + "|%S-|" = "@text.reference"; + "@%S+" = "@parameter"; + "^%s*(Parameters:)" = "@text.title"; + "^%s*(Return:)" = "@text.title"; + "^%s*(See also:)" = "@text.title"; + "{%S-}" = "@parameter"; + } "set highlight groups"; }; health = { @@ -235,37 +270,40 @@ with lib; You can disable this behaviour here ''; excludedFiletypes = - helpers.defaultNullOpts.mkNullable (types.listOf types.str) ''[ "cmp_menu" "cmp_docs" "notify"]'' + helpers.defaultNullOpts.mkListOf types.str + [ + "cmp_menu" + "cmp_docs" + "notify" + ] '' add any filetypes here, that shouldn't trigger smart move ''; }; presets = - helpers.defaultNullOpts.mkNullable (types.either types.bool types.anything) - '' - { - bottom_search = false; - command_palette = false; - long_message_to_split = false; - inc_rename = false; - lsp_doc_border = false; - } - '' + helpers.defaultNullOpts.mkNullable (with types; either bool anything) + { + bottom_search = false; + command_palette = false; + long_message_to_split = false; + inc_rename = false; + lsp_doc_border = false; + } " you can enable a preset by setting it to true, or a table that will override the preset config. you can also add custom presets that you can enable/disable with enabled=true "; - throttle = helpers.defaultNullOpts.mkNum "1000 / 30" '' + throttle = helpers.defaultNullOpts.mkNum (literalExpression "1000 / 30") '' how frequently does Noice need to check for ui updates? This has no effect when in blocking mode ''; - views = helpers.defaultNullOpts.mkNullable (types.attrsOf types.anything) "{}" ""; - routes = helpers.defaultNullOpts.mkNullable (types.listOf (types.attrsOf types.anything)) "[]" ""; - status = helpers.defaultNullOpts.mkNullable (types.attrsOf types.anything) "{}" ""; - format = helpers.defaultNullOpts.mkNullable (types.attrsOf types.anything) "{}" ""; + views = helpers.defaultNullOpts.mkAttrsOf types.anything { } ""; + routes = helpers.defaultNullOpts.mkListOf (types.attrsOf types.anything) [ ] ""; + status = helpers.defaultNullOpts.mkAttrsOf types.anything { } ""; + format = helpers.defaultNullOpts.mkAttrsOf types.anything { } ""; }; config = diff --git a/plugins/ui/statuscol.nix b/plugins/ui/statuscol.nix index c00e17f2..ba03da5c 100644 --- a/plugins/ui/statuscol.nix +++ b/plugins/ui/statuscol.nix @@ -21,7 +21,7 @@ helpers.neovim-plugin.mkNeovimPlugin config { benefit from the performance optimizations in this plugin. ''; - thousands = helpers.defaultNullOpts.mkNullable (with types; either str (enum [ false ])) "false" '' + thousands = helpers.defaultNullOpts.mkNullable (with types; either str (enum [ false ])) false '' `false` or line number thousands separator string ("." / ","). ''; @@ -62,15 +62,15 @@ helpers.neovim-plugin.mkNeovimPlugin config { ) "Table of booleans or functions returning a boolean."; sign = { - name = helpers.defaultNullOpts.mkListOf types.str "[]" '' + name = helpers.defaultNullOpts.mkListOf types.str [ ] '' List of lua patterns to match the sign name against. ''; - text = helpers.defaultNullOpts.mkListOf types.str "[]" '' + text = helpers.defaultNullOpts.mkListOf types.str [ ] '' List of lua patterns to match the extmark sign text against. ''; - namespace = helpers.defaultNullOpts.mkListOf types.str "[]" '' + namespace = helpers.defaultNullOpts.mkListOf types.str [ ] '' List of lua patterns to match the extmark sign namespace against. ''; @@ -98,29 +98,27 @@ helpers.neovim-plugin.mkNeovimPlugin config { }; }; in - helpers.defaultNullOpts.mkListOf segmentType '' - [ - { - text = ["%C"]; - click = "v:lua.ScFa"; - } - { - text = ["%s"]; - click = "v:lua.ScSa"; - } - { - text = [ - {__raw = "require('statuscol.builtin').lnumfunc";} - " " - ]; - condition = [ - true - {__raw = "require('statuscol.builtin').not_empty";} - ]; - click = "v:lua.ScLa"; - } - ] - '' "The statuscolumn can be customized through the `segments` option."; + helpers.defaultNullOpts.mkListOf segmentType [ + { + text = [ "%C" ]; + click = "v:lua.ScFa"; + } + { + text = [ "%s" ]; + click = "v:lua.ScSa"; + } + { + text = [ + { __raw = "require('statuscol.builtin').lnumfunc"; } + " " + ]; + condition = [ + true + { __raw = "require('statuscol.builtin').not_empty"; } + ]; + click = "v:lua.ScLa"; + } + ] "The statuscolumn can be customized through the `segments` option."; clickmod = helpers.defaultNullOpts.mkStr "c" '' Modifier used for certain actions in the builtin clickhandlers: diff --git a/plugins/ui/transparent.nix b/plugins/ui/transparent.nix index 5b8f7d64..2b3a3dcf 100644 --- a/plugins/ui/transparent.nix +++ b/plugins/ui/transparent.nix @@ -16,44 +16,42 @@ helpers.neovim-plugin.mkNeovimPlugin config { settingsOptions = { groups = helpers.defaultNullOpts.mkListOf types.str - '' - [ - "Normal" - "NormalNC" - "Comment" - "Constant" - "Special" - "Identifier" - "Statement" - "PreProc" - "Type" - "Underlined" - "Todo" - "String" - "Function" - "Conditional" - "Repeat" - "Operator" - "Structure" - "LineNr" - "NonText" - "SignColumn" - "CursorLine" - "CursorLineNr" - "StatusLine" - "StatusLineNC" - "EndOfBuffer" - ] - '' + [ + "Normal" + "NormalNC" + "Comment" + "Constant" + "Special" + "Identifier" + "Statement" + "PreProc" + "Type" + "Underlined" + "Todo" + "String" + "Function" + "Conditional" + "Repeat" + "Operator" + "Structure" + "LineNr" + "NonText" + "SignColumn" + "CursorLine" + "CursorLineNr" + "StatusLine" + "StatusLineNC" + "EndOfBuffer" + ] '' The list of transparent groups. ''; - extra_groups = helpers.defaultNullOpts.mkListOf types.str "[]" '' + extra_groups = helpers.defaultNullOpts.mkListOf types.str [ ] '' Additional groups that should be cleared. ''; - exclude_groups = helpers.defaultNullOpts.mkListOf types.str "[]" '' + exclude_groups = helpers.defaultNullOpts.mkListOf types.str [ ] '' Groups that you don't want to clear. ''; }; diff --git a/plugins/ui/twilight.nix b/plugins/ui/twilight.nix index bf5a7f05..fa6f253a 100644 --- a/plugins/ui/twilight.nix +++ b/plugins/ui/twilight.nix @@ -15,13 +15,19 @@ helpers.neovim-plugin.mkNeovimPlugin config { settingsOptions = { dimming = { - alpha = helpers.defaultNullOpts.mkNullable (types.numbers.between 0.0 1.0) "0.25" '' + alpha = helpers.defaultNullOpts.mkNullable (types.numbers.between 0.0 1.0) 0.25 '' Amount of dimming. ''; - color = helpers.defaultNullOpts.mkListOf types.str ''["Normal" "#ffffff"]'' '' - Highlight groups / colors to use. - ''; + color = + helpers.defaultNullOpts.mkListOf types.str + [ + "Normal" + "#ffffff" + ] + '' + Highlight groups / colors to use. + ''; term_bg = helpers.defaultNullOpts.mkStr "#000000" '' If `guibg=NONE`, this will be used to calculate text color. @@ -42,16 +48,14 @@ helpers.neovim-plugin.mkNeovimPlugin config { the types of nodes that should always be fully expanded. ''; - expand = helpers.defaultNullOpts.mkListOf types.str '' - [ - "function" - "method" - "table" - "if_statement" - ] - '' "For treesitter, we will always try to expand to the top-most ancestor with these types."; + expand = helpers.defaultNullOpts.mkListOf types.str [ + "function" + "method" + "table" + "if_statement" + ] "For treesitter, we will always try to expand to the top-most ancestor with these types."; - exclude = helpers.defaultNullOpts.mkListOf types.str "[]" '' + exclude = helpers.defaultNullOpts.mkListOf types.str [ ] '' Exclude these filetypes. ''; }; diff --git a/plugins/ui/virt-column.nix b/plugins/ui/virt-column.nix index 1149bd5a..648ef9b9 100644 --- a/plugins/ui/virt-column.nix +++ b/plugins/ui/virt-column.nix @@ -18,7 +18,7 @@ helpers.neovim-plugin.mkNeovimPlugin config { Enables or disables virt-column. ''; - char = helpers.defaultNullOpts.mkNullable (with types; either str (listOf str)) ''["┃"]'' '' + char = helpers.defaultNullOpts.mkNullable (with types; either str (listOf str)) [ "┃" ] '' Character, or list of characters, that get used to display the virtual column. Each character has to have a display width of 0 or 1. ''; @@ -32,26 +32,22 @@ helpers.neovim-plugin.mkNeovimPlugin config { ''; exclude = { - filetypes = helpers.defaultNullOpts.mkListOf types.str '' - [ - "lspinfo" - "packer" - "checkhealth" - "help" - "man" - "TelescopePrompt" - "TelescopeResults" - ] - '' "List of `filetype`s for which virt-column is disabled."; + filetypes = helpers.defaultNullOpts.mkListOf types.str [ + "lspinfo" + "packer" + "checkhealth" + "help" + "man" + "TelescopePrompt" + "TelescopeResults" + ] "List of `filetype`s for which virt-column is disabled."; - buftypes = helpers.defaultNullOpts.mkListOf types.str '' - [ - "nofile" - "quickfix" - "terminal" - "prompt" - ] - '' "List of `buftype`s for which virt-column is disabled."; + buftypes = helpers.defaultNullOpts.mkListOf types.str [ + "nofile" + "quickfix" + "terminal" + "prompt" + ] "List of `buftype`s for which virt-column is disabled."; }; }; diff --git a/plugins/ui/zen-mode.nix b/plugins/ui/zen-mode.nix index 622ea0b7..199375cf 100644 --- a/plugins/ui/zen-mode.nix +++ b/plugins/ui/zen-mode.nix @@ -16,7 +16,7 @@ helpers.neovim-plugin.mkNeovimPlugin config { # Optionally, explicitly declare some options. You don't have to. settingsOptions = { window = { - backdrop = helpers.defaultNullOpts.mkNullable (types.numbers.between 0.0 1.0) "0.95" '' + backdrop = helpers.defaultNullOpts.mkNullable (types.numbers.between 0.0 1.0) 0.95 '' Shade the backdrop of the Zen window. Set to 1 to keep the same as Normal. ''; @@ -31,7 +31,7 @@ helpers.neovim-plugin.mkNeovimPlugin config { rawLua ] ) - "120" + 120 '' Width of the zen window. @@ -51,7 +51,7 @@ helpers.neovim-plugin.mkNeovimPlugin config { rawLua ] ) - "1" + 1 '' Height of the Zen window. @@ -61,7 +61,7 @@ helpers.neovim-plugin.mkNeovimPlugin config { - a function that returns the width or the height ''; - options = helpers.defaultNullOpts.mkAttrsOf types.anything "{}" '' + options = helpers.defaultNullOpts.mkAttrsOf types.anything { } '' By default, no options are changed for the Zen window. You can set any `vim.wo` option here. @@ -82,14 +82,12 @@ helpers.neovim-plugin.mkNeovimPlugin config { plugins = { options = helpers.defaultNullOpts.mkAttrsOf types.anything - '' - { - enabled = true; - ruler = false; - showcmd = false; - laststatus = 0; - } - '' + { + enabled = true; + ruler = false; + showcmd = false; + laststatus = 0; + } '' Disable some global vim options (`vim.o`...). '';