nixvim/plugins/lsp/conform.nix
Lander Van den Bulcke 61feed4086
refactor: complete overhaul
Complete overhaul of repo structure based on nvix.

See https://github.com/niksingh710/nvix

Signed-off-by: Lander Van den Bulcke <landervandenbulcke@gmail.com>
2025-10-19 18:25:15 +02:00

56 lines
1.3 KiB
Nix

# formatter with lsp fallback
{ lib, pkgs, ... }:
{
plugins.conform-nvim = {
enable = true;
settings = {
default_format_opts.lsp_format = "prefer";
notify_on_error = true;
format_on_save = ''
function(bufnr)
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
return
end
if slow_format_filetypes[vim.bo[bufnr].filetype] then
return
end
local function on_format(err)
if err and err:match("timeout$") then
slow_format_filetypes[vim.bo[bufnr].filetype] = true
end
end
return { timeout_ms = 200, lsp_fallback = true }, on_format
end
'';
format_after_save = ''
function(bufnr)
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
return
end
if not slow_format_filetypes[vim.bo[bufnr].filetype] then
return
end
return { lsp_fallback = true }
end
'';
formatters_by_ft = {
"_" = [
"squeeze_blanks"
"trim_whitespace"
"trim_newlines"
];
};
formatters.squeeze_blanks.command = lib.getExe' pkgs.coreutils "cat";
};
};
}