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:
traxys 2023-12-29 15:24:42 +01:00 committed by GitHub
parent b38dbdb0dc
commit 1d8e7906c9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 140 additions and 119 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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; {

View file

@ -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: {});

View file

@ -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;

View file

@ -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 = {

View file

@ -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; {

View file

@ -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;

View file

@ -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 ''

View file

@ -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;

View file

@ -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

View file

@ -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