plugins/conform: add str type for formatAfterSave

This commit is contained in:
jonboh 2024-03-06 22:14:52 +01:00 committed by Gaétan Lepage
parent ace360b5de
commit e9564ac336
2 changed files with 51 additions and 14 deletions

View file

@ -40,9 +40,9 @@ in {
formatOnSave =
helpers.defaultNullOpts.mkNullable
(
with types;
with helpers.nixvimTypes;
either
str
strLuaFn
(
submodule {
options = {
@ -69,7 +69,13 @@ in {
'';
formatAfterSave =
helpers.defaultNullOpts.mkNullable (types.submodule {
helpers.defaultNullOpts.mkNullable
(
with helpers.nixvimTypes;
either
strLuaFn
(
submodule {
options = {
lspFallback = mkOption {
type = types.bool;
@ -77,7 +83,9 @@ in {
description = "See :help conform.format for details.";
};
};
})
}
)
)
"see documentation"
''
If this is set, Conform will run the formatter asynchronously after save.
@ -110,9 +118,12 @@ in {
timeout_ms = formatOnSave.timeoutMs;
}
else helpers.mkRaw formatOnSave;
format_after_save = helpers.ifNonNull' formatAfterSave {
lsp_fallback = formatAfterSave.lspFallback;
};
format_after_save =
if builtins.isAttrs formatAfterSave
then {
lsp_fallback = formatOnSave.lspFallback;
}
else helpers.mkRaw formatAfterSave;
log_level = logLevel;
notify_on_error = notifyOnError;
inherit formatters;

View file

@ -94,4 +94,30 @@
'';
};
};
custom_format_after_save_function = {
plugins.conform-nvim = {
enable = true;
formattersByFt = {
lua = ["stylua"];
python = ["isort" "black"];
javascript = [["prettierd" "prettier"]];
"*" = ["codespell"];
"_" = ["trimWhitespace"];
};
formatAfterSave = ''
function(bufnr)
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
return
end
if not _conform_slow_format_filetypes[vim.bo[bufnr].filetype] then
return
end
return { lsp_fallback = true }
end
'';
};
};
}