mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-24 17:58:38 +02:00
plugins: Introduce helpers.defaultNullOpts.mkLuaFn (#855)
This allows to avoid calling `mkRaw` on lua functions, as they will get applied automatically. This could also help in the future to refactor the use of Lua code to make it more user-friendly.
This commit is contained in:
parent
b38dbdb0dc
commit
1d8e7906c9
30 changed files with 140 additions and 119 deletions
|
@ -140,6 +140,33 @@ with lib; rec {
|
|||
# documentation
|
||||
mkNullableWithRaw = type: mkNullable (maybeRaw type);
|
||||
|
||||
mkLuaFn = default: desc:
|
||||
lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = let
|
||||
defaultDesc = ''
|
||||
default:
|
||||
```lua
|
||||
${default}
|
||||
```
|
||||
'';
|
||||
in
|
||||
if desc == ""
|
||||
then ''
|
||||
(lua function)
|
||||
|
||||
${defaultDesc}
|
||||
''
|
||||
else ''
|
||||
${desc}
|
||||
|
||||
(lua function)
|
||||
|
||||
${defaultDesc}
|
||||
'';
|
||||
apply = mkRaw;
|
||||
};
|
||||
mkNum = default: mkNullable (maybeRaw lib.types.number) (toString default);
|
||||
mkInt = default: mkNullable (maybeRaw lib.types.int) (toString default);
|
||||
# Positive: >0
|
||||
|
|
|
@ -59,7 +59,7 @@ in {
|
|||
'';
|
||||
|
||||
modified =
|
||||
helpers.defaultNullOpts.mkStr
|
||||
helpers.defaultNullOpts.mkLuaFn
|
||||
''
|
||||
function(bufnr)
|
||||
return vim.bo[bufnr].modified
|
||||
|
@ -75,7 +75,7 @@ in {
|
|||
'';
|
||||
|
||||
leadCustomSection =
|
||||
helpers.defaultNullOpts.mkStr
|
||||
helpers.defaultNullOpts.mkLuaFn
|
||||
''
|
||||
function()
|
||||
return " "
|
||||
|
@ -87,7 +87,7 @@ in {
|
|||
'';
|
||||
|
||||
customSection =
|
||||
helpers.defaultNullOpts.mkStr
|
||||
helpers.defaultNullOpts.mkLuaFn
|
||||
''
|
||||
function()
|
||||
return " "
|
||||
|
@ -173,10 +173,10 @@ in {
|
|||
show_dirname = showDirname;
|
||||
show_basename = showBasename;
|
||||
show_modified = showModified;
|
||||
modified = helpers.mkRaw modified;
|
||||
inherit modified;
|
||||
show_navic = showNavic;
|
||||
lead_custom_section = helpers.mkRaw leadCustomSection;
|
||||
custom_section = helpers.mkRaw customSection;
|
||||
lead_custom_section = leadCustomSection;
|
||||
custom_section = customSection;
|
||||
inherit theme;
|
||||
context_follow_icon_color = contextFollowIconColor;
|
||||
symbols = {
|
||||
|
|
|
@ -172,7 +172,7 @@ in {
|
|||
"Separator style";
|
||||
|
||||
nameFormatter =
|
||||
helpers.defaultNullOpts.mkStr "null"
|
||||
helpers.defaultNullOpts.mkLuaFn "null"
|
||||
''
|
||||
A lua function that can be used to modify the buffer's label.
|
||||
The argument 'buf' containing a name, path and bufnr is supplied.
|
||||
|
@ -191,7 +191,7 @@ in {
|
|||
showBufferCloseIcons = helpers.defaultNullOpts.mkBool true "Show buffer close icons";
|
||||
|
||||
getElementIcon =
|
||||
helpers.defaultNullOpts.mkStr "null"
|
||||
helpers.defaultNullOpts.mkLuaFn "null"
|
||||
''
|
||||
Lua function returning an element icon.
|
||||
|
||||
|
@ -231,7 +231,7 @@ in {
|
|||
(with types; either bool (enum ["nvim_lsp" "coc"])) "false" "diagnostics";
|
||||
|
||||
diagnosticsIndicator =
|
||||
helpers.defaultNullOpts.mkStr "null"
|
||||
helpers.defaultNullOpts.mkLuaFn "null"
|
||||
"Either `null` or a function that returns the diagnistics indicator.";
|
||||
|
||||
diagnosticsUpdateInInsert =
|
||||
|
@ -265,7 +265,7 @@ in {
|
|||
};
|
||||
|
||||
customFilter =
|
||||
helpers.defaultNullOpts.mkStr "null"
|
||||
helpers.defaultNullOpts.mkLuaFn "null"
|
||||
''
|
||||
```
|
||||
fun(buf: number, bufnums: number[]): boolean
|
||||
|
@ -299,14 +299,14 @@ in {
|
|||
left_trunc_marker = leftTruncMarker;
|
||||
right_trunc_marker = rightTruncMarker;
|
||||
separator_style = separatorStyle;
|
||||
name_formatter = helpers.mkRaw nameFormatter;
|
||||
name_formatter = nameFormatter;
|
||||
truncate_names = truncateNames;
|
||||
tab_size = tabSize;
|
||||
max_name_length = maxNameLength;
|
||||
color_icons = colorIcons;
|
||||
show_buffer_icons = showBufferIcons;
|
||||
show_buffer_close_icons = showBufferCloseIcons;
|
||||
get_element_icon = helpers.mkRaw getElementIcon;
|
||||
get_element_icon = getElementIcon;
|
||||
show_close_icon = showCloseIcon;
|
||||
show_tab_indicators = showTabIndicators;
|
||||
show_duplicate_prefix = showDuplicatePrefix;
|
||||
|
@ -316,7 +316,7 @@ in {
|
|||
max_prefix_length = maxPrefixLength;
|
||||
sort_by = sortBy;
|
||||
inherit diagnostics;
|
||||
diagnostics_indicator = helpers.mkRaw diagnosticsIndicator;
|
||||
diagnostics_indicator = diagnosticsIndicator;
|
||||
diagnostics_update_in_insert = diagnosticsUpdateInInsert;
|
||||
inherit offsets;
|
||||
groups = {
|
||||
|
@ -336,7 +336,7 @@ in {
|
|||
debug = {
|
||||
inherit (debug) logging;
|
||||
};
|
||||
custom_filter = helpers.mkRaw customFilter;
|
||||
custom_filter = customFilter;
|
||||
}
|
||||
// cfg.extraOptions;
|
||||
|
||||
|
|
|
@ -51,14 +51,14 @@ in {
|
|||
helpers.defaultNullOpts.mkBool false
|
||||
"When true, section headers in the lualine theme will be bold";
|
||||
onColors =
|
||||
helpers.defaultNullOpts.mkStr "function(colors) end"
|
||||
helpers.defaultNullOpts.mkLuaFn "function(colors) end"
|
||||
''
|
||||
Override specific color groups to use other groups or a hex color.
|
||||
function will be called with a ColorScheme table.
|
||||
`@param colors ColorScheme`
|
||||
'';
|
||||
onHighlights =
|
||||
helpers.defaultNullOpts.mkStr "function(highlights, colors) end"
|
||||
helpers.defaultNullOpts.mkLuaFn "function(highlights, colors) end"
|
||||
''
|
||||
Override specific highlights to use other groups or a hex color.
|
||||
function will be called with a Highlights and ColorScheme table
|
||||
|
@ -79,8 +79,8 @@ in {
|
|||
dim_inactive = dimInactive;
|
||||
lualine_bold = lualineBold;
|
||||
day_brightness = dayBrightness;
|
||||
on_colors = helpers.mkRaw onColors;
|
||||
on_highlights = helpers.mkRaw onHighlights;
|
||||
on_colors = onColors;
|
||||
on_highlights = onHighlights;
|
||||
};
|
||||
in ''
|
||||
require("tokyonight").setup(${helpers.toLuaObject setupOptions})
|
||||
|
|
|
@ -212,7 +212,7 @@ in {
|
|||
"An array of completion fields to specify their order.";
|
||||
|
||||
format =
|
||||
helpers.defaultNullOpts.mkStr
|
||||
helpers.defaultNullOpts.mkLuaFn
|
||||
''
|
||||
function(_, vim_item)
|
||||
return vim_item
|
||||
|
@ -572,8 +572,7 @@ in {
|
|||
|
||||
formatting = with formatting; {
|
||||
expandable_indicator = expandableIndicator;
|
||||
inherit fields;
|
||||
format = helpers.mkRaw format;
|
||||
inherit fields format;
|
||||
};
|
||||
|
||||
matching = with matching; {
|
||||
|
|
|
@ -26,7 +26,7 @@ in {
|
|||
|
||||
includeConfigs = helpers.defaultNullOpts.mkBool true "Add default configurations.";
|
||||
|
||||
resolvePython = helpers.mkNullOrOption types.str ''
|
||||
resolvePython = helpers.defaultNullOpts.mkLuaFn "null" ''
|
||||
Function to resolve path to python to use for program or test execution.
|
||||
By default the `VIRTUAL_ENV` and `CONDA_PREFIX` environment variables are used if present.
|
||||
'';
|
||||
|
@ -75,7 +75,7 @@ in {
|
|||
table.insert(require("dap").configurations.python, ${toLuaObject cfg.customConfigurations})
|
||||
'')
|
||||
+ (optionalString (cfg.resolvePython != null) ''
|
||||
require("dap-python").resolve_python = ${toLuaObject (mkRaw cfg.resolvePython)}
|
||||
require("dap-python").resolve_python = ${toLuaObject cfg.resolvePython}
|
||||
'')
|
||||
+ (optionalString (cfg.testRunner != null) ''
|
||||
require("dap-python").test_runner = ${toLuaObject cfg.testRunner};
|
||||
|
|
|
@ -186,7 +186,7 @@ in {
|
|||
maxValueLines = helpers.defaultNullOpts.mkInt 100 "Maximum number of lines to allow a value to fill before trimming.";
|
||||
};
|
||||
|
||||
selectWindow = helpers.mkNullOrOption types.str ''
|
||||
selectWindow = helpers.defaultNullOpts.mkLuaFn "null" ''
|
||||
A function which returns a window to be used for opening buffers such as a stack frame location.
|
||||
'';
|
||||
};
|
||||
|
@ -212,7 +212,7 @@ in {
|
|||
max_value_lines = maxValueLines;
|
||||
};
|
||||
|
||||
select_window = helpers.mkRaw selectWindow;
|
||||
select_window = selectWindow;
|
||||
}
|
||||
// cfg.extraOptions;
|
||||
in
|
||||
|
|
|
@ -36,7 +36,7 @@ in {
|
|||
|
||||
clearOnContinue = helpers.defaultNullOpts.mkBool false "Clear virtual text on `continue` (might cause flickering when stepping).";
|
||||
|
||||
displayCallback = helpers.defaultNullOpts.mkStr ''
|
||||
displayCallback = helpers.defaultNullOpts.mkLuaFn ''
|
||||
function(variable, buf, stackframe, node, options)
|
||||
if options.virt_text_pos == 'inline' then
|
||||
return ' = ' .. variable.value
|
||||
|
@ -72,7 +72,7 @@ in {
|
|||
only_first_definition = onlyFirstDefinition;
|
||||
all_references = allReferences;
|
||||
clear_on_continue = clearOnContinue;
|
||||
display_callback = helpers.mkRaw displayCallback;
|
||||
display_callback = displayCallback;
|
||||
virt_text_pos = virtTextPos;
|
||||
all_frames = allFrames;
|
||||
virt_lines = virtLines;
|
||||
|
|
|
@ -153,7 +153,7 @@ in {
|
|||
"Used when sorting files and directories in the tree";
|
||||
|
||||
sortFunction =
|
||||
helpers.defaultNullOpts.mkStr "nil"
|
||||
helpers.defaultNullOpts.mkLuaFn "nil"
|
||||
"Uses a custom function for sorting files and directories in the tree";
|
||||
|
||||
usePopupsForInput =
|
||||
|
@ -1041,7 +1041,7 @@ in {
|
|||
popup_border_style = popupBorderStyle;
|
||||
resize_timer_interval = resizeTimerInterval;
|
||||
sort_case_insensitive = sortCaseInsensitive;
|
||||
sort_function = mkRaw sortFunction;
|
||||
sort_function = sortFunction;
|
||||
use_popups_for_input = usePopupsForInput;
|
||||
use_default_mappings = useDefaultMappings;
|
||||
source_selector = with sourceSelector; {
|
||||
|
|
|
@ -187,7 +187,7 @@ in {
|
|||
|
||||
height = helpers.defaultNullOpts.mkPositiveInt 5 "Height of the window.";
|
||||
|
||||
onLines = helpers.mkNullOrOption types.str ''
|
||||
onLines = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
A callback which will be called with (multi-line) stderr output.
|
||||
|
||||
e.g., use:
|
||||
|
@ -302,7 +302,7 @@ in {
|
|||
enable
|
||||
height
|
||||
;
|
||||
on_lines = helpers.mkRaw onLines;
|
||||
on_lines = onLines;
|
||||
};
|
||||
inherit lsp3;
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ in {
|
|||
"how to execute terminal commands";
|
||||
|
||||
onInitialized =
|
||||
helpers.defaultNullOpts.mkStr "null"
|
||||
helpers.defaultNullOpts.mkLuaFn "null"
|
||||
''
|
||||
Callback to execute once rust-analyzer is done initializing the workspace
|
||||
The callback receives one parameter indicating the `health` of the server:
|
||||
|
@ -143,7 +143,7 @@ in {
|
|||
helpers.ifNonNull' cfg.executor
|
||||
(helpers.mkRaw "require(${rust-tools.executors}).${cfg.executor}");
|
||||
|
||||
on_initialized = helpers.mkRaw cfg.onInitialized;
|
||||
on_initialized = cfg.onInitialized;
|
||||
|
||||
reload_workspace_from_cargo_toml = cfg.reloadWorkspaceFromCargoToml;
|
||||
inlay_hints = with cfg.inlayHints; {
|
||||
|
|
|
@ -50,7 +50,7 @@ in {
|
|||
The Z-index of the context window.
|
||||
'';
|
||||
|
||||
onAttach = helpers.mkNullOrOption types.str ''
|
||||
onAttach = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
The implementation of a lua function which takes an integer `buf` as parameter and returns a
|
||||
boolean.
|
||||
Return `false` to disable attaching.
|
||||
|
@ -70,7 +70,7 @@ in {
|
|||
separator
|
||||
zindex
|
||||
;
|
||||
on_attach = helpers.mkRaw onAttach;
|
||||
on_attach = onAttach;
|
||||
}
|
||||
// cfg.extraOptions;
|
||||
in
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
`:LspStart` (|lspconfig-commands|).
|
||||
'';
|
||||
|
||||
rootDir = helpers.mkNullOrOption types.str ''
|
||||
rootDir = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
A function (or function handle) which returns the root of the project used to
|
||||
determine if lspconfig should launch a new language server, or attach a previously
|
||||
launched server when you open a new buffer matching the filetype of the server.
|
||||
|
@ -110,7 +110,7 @@
|
|||
extraOptions =
|
||||
{
|
||||
inherit (cfg) cmd filetypes autostart;
|
||||
root_dir = helpers.mkRaw cfg.rootDir;
|
||||
root_dir = cfg.rootDir;
|
||||
on_attach =
|
||||
helpers.ifNonNull' cfg.onAttach
|
||||
(
|
||||
|
|
|
@ -30,7 +30,7 @@ with lib; {
|
|||
the type of the external input buffer to use
|
||||
'';
|
||||
|
||||
postHook = helpers.defaultNullOpts.mkNullable types.str "null" ''
|
||||
postHook = helpers.defaultNullOpts.mkLuaFn "null" ''
|
||||
callback to run after renaming, receives the result table (from LSP handler) as an argument
|
||||
'';
|
||||
};
|
||||
|
@ -43,7 +43,7 @@ with lib; {
|
|||
preview_empty_name = cfg.previewEmptyName;
|
||||
show_message = cfg.showMessage;
|
||||
input_buffer_type = cfg.inputBufferType;
|
||||
post_hook = helpers.mkRaw cfg.postHook;
|
||||
post_hook = cfg.postHook;
|
||||
};
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
|
|
|
@ -72,9 +72,9 @@ in {
|
|||
"Default search engine.";
|
||||
|
||||
hooks = {
|
||||
requestStarted = helpers.mkNullOrOption types.str "Callback for request start.";
|
||||
requestStarted = helpers.defaultNullOpts.mkLuaFn "nil" "Callback for request start.";
|
||||
|
||||
requestFinished = helpers.mkNullOrOption types.str "Callback for request finished.";
|
||||
requestFinished = helpers.defaultNullOpts.mkLuaFn "nil" "Callback for request finished.";
|
||||
};
|
||||
|
||||
winhighlight = helpers.defaultNullOpts.mkStr "Normal:Normal,FloatBorder:FloatBorder" ''
|
||||
|
@ -96,8 +96,8 @@ in {
|
|||
additional_instructions = additionalInstructions;
|
||||
search_engine = searchEngine;
|
||||
hooks = {
|
||||
request_started = helpers.mkRaw hooks.requestStarted;
|
||||
request_finished = helpers.mkRaw hooks.requestFinished;
|
||||
request_started = hooks.requestStarted;
|
||||
request_finished = hooks.requestFinished;
|
||||
};
|
||||
inherit winhighlight;
|
||||
}
|
||||
|
|
|
@ -137,17 +137,17 @@ in {
|
|||
custom callback for null-ls, or leave this undefined.
|
||||
'';
|
||||
|
||||
onInit = helpers.defaultNullOpts.mkStr "null" ''
|
||||
onInit = helpers.defaultNullOpts.mkLuaFn "null" ''
|
||||
Defines an `on_init` callback to run when null-ls initializes. From here, you
|
||||
can make changes to the client (the first argument) or `initialize_result` (the
|
||||
second argument, which as of now is not used).
|
||||
'';
|
||||
|
||||
onExit = helpers.defaultNullOpts.mkStr "null" ''
|
||||
onExit = helpers.defaultNullOpts.mkLuaFn "null" ''
|
||||
Defines an `on_exit` callback to run when the null-ls client exits.
|
||||
'';
|
||||
|
||||
rootDir = helpers.defaultNullOpts.mkStr "null" ''
|
||||
rootDir = helpers.defaultNullOpts.mkLuaFn "null" ''
|
||||
Determines the root of the null-ls server. On startup, null-ls will call
|
||||
`root_dir` with the full path to the first file that null-ls attaches to.
|
||||
|
||||
|
@ -161,7 +161,7 @@ in {
|
|||
directory.
|
||||
'';
|
||||
|
||||
shouldAttach = helpers.defaultNullOpts.mkStr "null" ''
|
||||
shouldAttach = helpers.defaultNullOpts.mkLuaFn "null" ''
|
||||
A user-defined function that controls whether to enable null-ls for a given
|
||||
buffer. Receives `bufnr` as its first argument.
|
||||
|
||||
|
@ -257,10 +257,10 @@ in {
|
|||
log_level = logLevel;
|
||||
notify_format = notifyFormat;
|
||||
on_attach = helpers.mkRaw onAttach';
|
||||
on_init = helpers.mkRaw onInit;
|
||||
on_exit = helpers.mkRaw onExit;
|
||||
root_dir = helpers.mkRaw rootDir;
|
||||
should_attach = helpers.mkRaw shouldAttach;
|
||||
on_init = onInit;
|
||||
on_exit = onExit;
|
||||
root_dir = rootDir;
|
||||
should_attach = shouldAttach;
|
||||
temp_dir = tempDir;
|
||||
update_in_insert = updateInInsert;
|
||||
|
||||
|
|
|
@ -29,9 +29,9 @@ in {
|
|||
helpers.mkNullOrOption str
|
||||
"Specifies an alias under which to install the plugin";
|
||||
|
||||
installer = helpers.mkNullOrOption str "A custom installer";
|
||||
installer = helpers.defaultNullOpts.mkLuaFn "nil" "A custom installer";
|
||||
|
||||
updater = helpers.mkNullOrOption str "A custom updater";
|
||||
updater = helpers.defaultNullOpts.mkLuaFn "nil" "A custom updater";
|
||||
|
||||
after =
|
||||
helpers.mkNullOrOption (either str (listOf str))
|
||||
|
@ -157,14 +157,12 @@ in {
|
|||
then {
|
||||
"__unkeyed" = plugin.name;
|
||||
|
||||
inherit (plugin) disable as;
|
||||
|
||||
installer = helpers.mkRaw plugin.installer;
|
||||
|
||||
updater = helpers.mkRaw plugin.updater;
|
||||
|
||||
inherit
|
||||
(plugin)
|
||||
disable
|
||||
as
|
||||
installer
|
||||
updater
|
||||
after
|
||||
rtp
|
||||
opt
|
||||
|
|
|
@ -78,11 +78,11 @@ in {
|
|||
Induces slow-down w/ plenary finder (true if `fd` available).
|
||||
'';
|
||||
|
||||
browseFiles = helpers.defaultNullOpts.mkStr "fb_finders.browse_files" ''
|
||||
browseFiles = helpers.defaultNullOpts.mkLuaFn "fb_finders.browse_files" ''
|
||||
A custom lua function to override for the file browser.
|
||||
'';
|
||||
|
||||
browseFolders = helpers.defaultNullOpts.mkStr "fb_finders.browse_folders" ''
|
||||
browseFolders = helpers.defaultNullOpts.mkLuaFn "fb_finders.browse_folders" ''
|
||||
A custom lua function to override for the folder browser.
|
||||
'';
|
||||
|
||||
|
@ -151,8 +151,8 @@ in {
|
|||
;
|
||||
add_dirs = addDirs;
|
||||
auto_depth = autoDepth;
|
||||
browse_files = helpers.mkRaw browseFiles;
|
||||
browse_folders = helpers.mkRaw browseFolders;
|
||||
browse_files = browseFiles;
|
||||
browse_folders = browseFolders;
|
||||
collapse_dirs = collapseDirs;
|
||||
cwd_to_path = cwdToPath;
|
||||
dir_icon = dirIcon;
|
||||
|
|
|
@ -69,7 +69,7 @@ in {
|
|||
'';
|
||||
|
||||
condition =
|
||||
helpers.defaultNullOpts.mkStr
|
||||
helpers.defaultNullOpts.mkLuaFn
|
||||
''
|
||||
function(buf)
|
||||
local fn = vim.fn
|
||||
|
@ -120,7 +120,7 @@ in {
|
|||
cleaning_interval = cleaningInterval;
|
||||
};
|
||||
trigger_events = cfg.triggerEvents;
|
||||
condition = helpers.mkRaw cfg.condition;
|
||||
inherit (cfg) condition;
|
||||
write_all_buffers = cfg.writeAllBuffers;
|
||||
debounce_delay = cfg.debounceDelay;
|
||||
callbacks = with cfg.callbacks;
|
||||
|
|
|
@ -81,12 +81,12 @@ in {
|
|||
Restore session for upcoming cwd on cwd change.
|
||||
'';
|
||||
|
||||
preCwdChangedHook = helpers.mkNullOrOption types.str ''
|
||||
preCwdChangedHook = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
lua function hook.
|
||||
This is called after auto_session code runs for the `DirChangedPre` autocmd.
|
||||
'';
|
||||
|
||||
postCwdChangedHook = helpers.mkNullOrOption types.str ''
|
||||
postCwdChangedHook = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
lua function hook.
|
||||
This is called after auto_session code runs for the `DirChanged` autocmd.
|
||||
'';
|
||||
|
@ -160,8 +160,8 @@ in {
|
|||
then
|
||||
with cfg.cwdChangeHandling; {
|
||||
restore_upcoming_session = restoreUpcomingSession;
|
||||
pre_cwd_changed_hook = helpers.mkRaw preCwdChangedHook;
|
||||
post_cwd_changed_hook = helpers.mkRaw postCwdChangedHook;
|
||||
pre_cwd_changed_hook = preCwdChangedHook;
|
||||
post_cwd_changed_hook = postCwdChangedHook;
|
||||
}
|
||||
else cfg.cwdChangeHandling;
|
||||
bypass_session_save_file_types = cfg.bypassSessionSaveFileTypes;
|
||||
|
|
|
@ -140,7 +140,7 @@ in {
|
|||
"Fail text highlight group of the summary pop-up.";
|
||||
};
|
||||
|
||||
loadCoverageCb = helpers.mkNullOrOption types.str ''
|
||||
loadCoverageCb = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
A lua function that will be called when a coverage file is loaded.
|
||||
|
||||
Example:
|
||||
|
@ -278,7 +278,7 @@ in {
|
|||
summary_pass = summaryPass;
|
||||
summary_fail = summaryFail;
|
||||
};
|
||||
load_coverage_cb = helpers.mkRaw loadCoverageCb;
|
||||
load_coverage_cb = loadCoverageCb;
|
||||
inherit signs;
|
||||
sign_group = signGroup;
|
||||
summary = with summary; {
|
||||
|
|
|
@ -155,7 +155,7 @@ in {
|
|||
};
|
||||
|
||||
format =
|
||||
helpers.defaultNullOpts.mkStr ''
|
||||
helpers.defaultNullOpts.mkLuaFn ''
|
||||
format = function(opts)
|
||||
return { { opts.match.label, opts.hl_group } }
|
||||
end
|
||||
|
@ -186,7 +186,7 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
action = helpers.mkNullOrOption types.str ''
|
||||
action = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
action to perform when picking a label.
|
||||
defaults to the jumping logic depending on the mode.
|
||||
@type fun(match:Flash.Match, state:Flash.State)
|
||||
|
@ -198,7 +198,7 @@ in {
|
|||
When `true`, flash will try to continue the last search
|
||||
'';
|
||||
|
||||
config = helpers.mkNullOrOption types.str ''
|
||||
config = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Set config to a function to dynamically change the config
|
||||
@type fun(opts:Flash.Config)
|
||||
'';
|
||||
|
@ -298,7 +298,7 @@ in {
|
|||
'';
|
||||
|
||||
charActions =
|
||||
helpers.defaultNullOpts.mkStr ''
|
||||
helpers.defaultNullOpts.mkLuaFn ''
|
||||
function(motion)
|
||||
return {
|
||||
[";"] = "next", -- set to right to always go right
|
||||
|
@ -406,14 +406,12 @@ in {
|
|||
rainbow = {
|
||||
inherit (c.label.rainbow) enabled shade;
|
||||
};
|
||||
format = helpers.mkRaw c.label.format;
|
||||
inherit (c.label) format;
|
||||
};
|
||||
highlight = {
|
||||
inherit (c.highlight) backdrop matches priority groups;
|
||||
};
|
||||
action = helpers.mkRaw c.action;
|
||||
inherit (c) pattern continue;
|
||||
config = helpers.mkRaw c.config;
|
||||
inherit (c) action pattern continue config;
|
||||
prompt = {
|
||||
inherit (c.prompt) enabled prefix;
|
||||
win_config = c.prompt.winConfig;
|
||||
|
@ -443,8 +441,7 @@ in {
|
|||
inherit (c) enabled autohide;
|
||||
jump_labels = c.jumpLabels;
|
||||
multi_line = c.multiLine;
|
||||
inherit (c) keys;
|
||||
char_actions = helpers.mkRaw c.charActions;
|
||||
inherit (c) keys charActions;
|
||||
});
|
||||
treesitter = mkModeConfig cfg.modes.treesitter (c: {});
|
||||
treesitter_search = mkModeConfig cfg.modes.treesitterSearch (c: {});
|
||||
|
|
|
@ -71,11 +71,11 @@ in {
|
|||
trace = "✎";
|
||||
};
|
||||
|
||||
onOpen = helpers.mkNullOrOption types.str ''
|
||||
onOpen = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Function called when a new window is opened, use for changing win settings/config.
|
||||
'';
|
||||
|
||||
onClose = helpers.mkNullOrOption types.str ''
|
||||
onClose = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Function called when a new window is closed.
|
||||
'';
|
||||
|
||||
|
@ -130,8 +130,8 @@ in {
|
|||
}
|
||||
)
|
||||
icons;
|
||||
on_open = helpers.mkRaw onOpen;
|
||||
on_close = helpers.mkRaw onClose;
|
||||
on_open = onOpen;
|
||||
on_close = onClose;
|
||||
inherit render;
|
||||
minimum_width = minimumWidth;
|
||||
inherit fps;
|
||||
|
|
|
@ -70,7 +70,7 @@ in {
|
|||
Add label of current item buffer at the end of the item line.
|
||||
'';
|
||||
|
||||
shouldPreviewCb = helpers.mkNullOrOption types.str ''
|
||||
shouldPreviewCb = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
A callback function to decide whether to preview while switching buffer, with
|
||||
(bufnr: number, qwinid: number) parameters.
|
||||
'';
|
||||
|
@ -135,7 +135,7 @@ in {
|
|||
win_vheight = winVheight;
|
||||
inherit wrap;
|
||||
buf_label = bufLabel;
|
||||
should_preview_cb = helpers.mkRaw shouldPreviewCb;
|
||||
should_preview_cb = shouldPreviewCb;
|
||||
};
|
||||
func_map = cfg.funcMap;
|
||||
filter = {
|
||||
|
|
|
@ -20,7 +20,7 @@ in {
|
|||
while opening the folded line, `0` value will disable the highlight
|
||||
'';
|
||||
|
||||
providerSelector = helpers.defaultNullOpts.mkStr "null" ''
|
||||
providerSelector = helpers.defaultNullOpts.mkLuaFn "null" ''
|
||||
A lua function as a selector for fold providers.
|
||||
'';
|
||||
|
||||
|
@ -31,7 +31,7 @@ in {
|
|||
run `UfoInspect` for details if your provider has extended the kinds.
|
||||
'';
|
||||
|
||||
foldVirtTextHandler = helpers.defaultNullOpts.mkStr "null" "A lua function to customize fold virtual text";
|
||||
foldVirtTextHandler = helpers.defaultNullOpts.mkLuaFn "null" "A lua function to customize fold virtual text";
|
||||
|
||||
enableGetFoldVirtText = helpers.defaultNullOpts.mkBool false ''
|
||||
Enable a function with `lnum` as a parameter to capture the virtual text
|
||||
|
@ -58,9 +58,9 @@ in {
|
|||
options = with cfg;
|
||||
{
|
||||
open_fold_hl_timeout = openFoldHlTimeout;
|
||||
provider_selector = helpers.mkRaw providerSelector;
|
||||
provider_selector = providerSelector;
|
||||
close_fold_kinds = closeFoldKinds;
|
||||
fold_virt_text_handler = helpers.mkRaw foldVirtTextHandler;
|
||||
fold_virt_text_handler = foldVirtTextHandler;
|
||||
enable_get_fold_virt_text = enableGetFoldVirtText;
|
||||
|
||||
preview = with preview; {
|
||||
|
|
|
@ -289,7 +289,7 @@ in {
|
|||
'';
|
||||
|
||||
isHiddenFile =
|
||||
helpers.defaultNullOpts.mkStr
|
||||
helpers.defaultNullOpts.mkLuaFn
|
||||
''
|
||||
function(name, bufnr)
|
||||
return vim.startswith(name, ".")
|
||||
|
@ -298,7 +298,7 @@ in {
|
|||
"This function defines what is considered a 'hidden' file.";
|
||||
|
||||
isAlwaysHidden =
|
||||
helpers.defaultNullOpts.mkStr
|
||||
helpers.defaultNullOpts.mkLuaFn
|
||||
''
|
||||
function(name, bufnr)
|
||||
return false
|
||||
|
@ -381,8 +381,8 @@ in {
|
|||
use_default_keymaps = cfg.useDefaultKeymaps;
|
||||
view_options = with cfg.viewOptions; {
|
||||
show_hidden = showHidden;
|
||||
is_hidden_file = helpers.mkRaw isHiddenFile;
|
||||
is_always_hidden = helpers.mkRaw isAlwaysHidden;
|
||||
is_hidden_file = isHiddenFile;
|
||||
is_always_hidden = isAlwaysHidden;
|
||||
};
|
||||
float = with cfg.float; {
|
||||
inherit padding;
|
||||
|
|
|
@ -41,7 +41,7 @@ with lib; {
|
|||
helpers.defaultNullOpts.mkNullable (with types; listOf (enum sessionOpts))
|
||||
''["buffers" "curdir" "tabpages" "winsize" "skiprtp"]'' "sessionoptions used for saving";
|
||||
|
||||
preSave = helpers.mkNullOrOption types.str "a function to call before saving the session";
|
||||
preSave = helpers.defaultNullOpts.mkLuaFn "nil" "a function to call before saving the session";
|
||||
|
||||
saveEmpty = helpers.defaultNullOpts.mkBool false ''
|
||||
don't save if there are no open file buffers
|
||||
|
@ -57,7 +57,7 @@ with lib; {
|
|||
extraConfigLua = let
|
||||
opts = {
|
||||
inherit (cfg) dir options;
|
||||
pre_save = helpers.mkRaw cfg.preSave;
|
||||
pre_save = cfg.preSave;
|
||||
save_empty = cfg.saveEmpty;
|
||||
};
|
||||
in ''
|
||||
|
|
|
@ -191,7 +191,7 @@ in {
|
|||
- if > 1 numbers of column
|
||||
'';
|
||||
|
||||
after = helpers.mkNullOrOption types.str ''
|
||||
after = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
A function that gets executed at the end.
|
||||
'';
|
||||
|
||||
|
@ -312,7 +312,7 @@ in {
|
|||
{
|
||||
mapping_keys = mappingKeys;
|
||||
cursor_column = cursorColumn;
|
||||
after = helpers.mkRaw after;
|
||||
inherit after;
|
||||
empty_lines_between_mappings = emptyLinesBetweenMappings;
|
||||
disable_statuslines = disableStatuslines;
|
||||
inherit paddings;
|
||||
|
|
|
@ -39,27 +39,27 @@ in {
|
|||
normal mode.
|
||||
'';
|
||||
|
||||
onCreate = helpers.mkNullOrOption types.str ''
|
||||
onCreate = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Function to run when the terminal is first created.
|
||||
'';
|
||||
|
||||
onOpen = helpers.mkNullOrOption types.str ''
|
||||
onOpen = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Function to run when the terminal opens.
|
||||
'';
|
||||
|
||||
onClose = helpers.mkNullOrOption types.str ''
|
||||
onClose = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Function to run when the terminal closes.
|
||||
'';
|
||||
|
||||
onStdout = helpers.mkNullOrOption types.str ''
|
||||
onStdout = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Callback for processing output on stdout.
|
||||
'';
|
||||
|
||||
onStderr = helpers.mkNullOrOption types.str ''
|
||||
onStderr = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Callback for processing output on stderr.
|
||||
'';
|
||||
|
||||
onExit = helpers.mkNullOrOption types.str ''
|
||||
onExit = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Function to run when terminal process exits.
|
||||
'';
|
||||
|
||||
|
@ -160,7 +160,7 @@ in {
|
|||
enabled = helpers.defaultNullOpts.mkBool false "";
|
||||
|
||||
nameFormatter =
|
||||
helpers.defaultNullOpts.mkStr
|
||||
helpers.defaultNullOpts.mkLuaFn
|
||||
''
|
||||
function(term)
|
||||
return term.name
|
||||
|
@ -177,12 +177,12 @@ in {
|
|||
else helpers.mkRaw size
|
||||
);
|
||||
open_mapping = helpers.ifNonNull' openMapping (helpers.mkRaw "[[${openMapping}]]");
|
||||
on_create = helpers.mkRaw onCreate;
|
||||
on_open = helpers.mkRaw onOpen;
|
||||
on_close = helpers.mkRaw onClose;
|
||||
on_stdout = helpers.mkRaw onStdout;
|
||||
on_stderr = helpers.mkRaw onStderr;
|
||||
on_exit = helpers.mkRaw onExit;
|
||||
on_create = onCreate;
|
||||
on_open = onOpen;
|
||||
on_close = onClose;
|
||||
on_stdout = onStdout;
|
||||
on_stderr = onStderr;
|
||||
on_exit = onExit;
|
||||
hide_numbers = hideNumbers;
|
||||
shade_filetypes = shadeFiletypes;
|
||||
shade_terminals = shadeTerminals;
|
||||
|
@ -197,7 +197,7 @@ in {
|
|||
float_opts = floatOpts;
|
||||
winbar = with winbar; {
|
||||
inherit enabled;
|
||||
name_formatter = helpers.mkRaw nameFormatter;
|
||||
name_formatter = nameFormatter;
|
||||
};
|
||||
};
|
||||
in
|
||||
|
|
|
@ -175,7 +175,7 @@ in {
|
|||
```
|
||||
'';
|
||||
|
||||
renderer = helpers.mkNullOrOption types.str ''
|
||||
renderer = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
Sets the renderer to used to display the completions.
|
||||
See `|wilder-renderer|`.
|
||||
|
||||
|
@ -190,7 +190,7 @@ in {
|
|||
```
|
||||
'';
|
||||
|
||||
preHook = helpers.mkNullOrOption types.str ''
|
||||
preHook = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
A function which takes a `ctx`.
|
||||
This function is called when wilder starts, or when wilder becomes unhidden.
|
||||
See `|wilder-hidden|`.
|
||||
|
@ -198,7 +198,7 @@ in {
|
|||
`ctx` contains no keys.
|
||||
'';
|
||||
|
||||
postHook = helpers.mkNullOrOption types.str ''
|
||||
postHook = helpers.defaultNullOpts.mkLuaFn "nil" ''
|
||||
A function which takes a `ctx`.
|
||||
This function is called when wilder stops, or when wilder becomes hidden.
|
||||
See `|wilder-hidden|`.
|
||||
|
@ -237,9 +237,9 @@ in {
|
|||
pipeline =
|
||||
helpers.ifNonNull' pipeline
|
||||
(map helpers.mkRaw pipeline);
|
||||
renderer = helpers.mkRaw renderer;
|
||||
preHook = helpers.mkRaw preHook;
|
||||
postHook = helpers.mkRaw postHook;
|
||||
inherit renderer;
|
||||
pre_hook = preHook;
|
||||
post_hook = postHook;
|
||||
}
|
||||
// cfg.extraOptions;
|
||||
in
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue