nixvim/config/lsp/conform.nix

46 lines
1,006 B
Nix

{ helpers, pkgs, ... }:
{
plugins.conform-nvim = {
enable = true;
settings = {
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 = {
python = [ "black" ];
c = [ "clang-format" ];
cpp = [ "clang-format" ];
cmake = [ "cmake_format" ];
nix = [ "nixfmt" ];
# Standalone scalafmt is too slow, so we use it as a fallback
scala = helpers.mkRaw ''
{ scalafmt, lsp_format = "prefer" }
'';
toml = [ "taplo" ];
yaml = [ "yq" ];
json = [ "jq" ];
};
};
};
extraPackages = with pkgs; [
black
clang-tools
cmake-format
jq
nixfmt-rfc-style
scalafmt
taplo
yq
];
}