mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-28 14:45:26 +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
|
@ -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