Complete overhaul of repo structure based on nvix. See https://github.com/niksingh710/nvix Signed-off-by: Lander Van den Bulcke <landervandenbulcke@gmail.com>
56 lines
1.3 KiB
Nix
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";
|
|
};
|
|
};
|
|
}
|