Files
nixos-config/modules/home-manager/nixvim/plugins/fmt.nix
T

54 lines
1.3 KiB
Nix

{ pkgs, ... }:
{
home.packages = with pkgs; [
stylua
nixfmt-rfc-style
];
programs.nixvim = {
opts.formatexpr = "v:lua.require'conform'.formatexpr()";
plugins.conform-nvim = {
enable = true;
lazyLoad.enable = true;
lazyLoad.settings = {
event = "BufWritePre";
cmd = "ConformInfo";
keys = [
{
__unkeyed-1 = "<leader>f";
__unkeyed-2.__raw = ''
function() require 'conform'.format { async = true } end
'';
desc = "Format Buffer";
}
];
};
settings = {
default_format_opts.lsp_format = "fallback";
format_on_save = ''
function(bufnr)
local disable_filetypes = { c = true, cpp = true }
local lsp_format_opt
if disable_filetypes[vim.bo[bufnr].filetype] then
lsp_format_opt = 'never'
else
lsp_format_opt = 'fallback'
end
return {
timeout_ms = 500,
lsp_format = lsp_format_opt,
}
end
'';
formatters_by_ft = {
lua = [ "stylua" ];
python = [ "black" ];
nix = [ "nixfmt" ];
};
};
};
};
}