diff --git a/modules/home-manager/nixvim/plugins/conform.nix b/modules/home-manager/nixvim/plugins/conform.nix new file mode 100644 index 0000000..7dbca91 --- /dev/null +++ b/modules/home-manager/nixvim/plugins/conform.nix @@ -0,0 +1,42 @@ +{ ... }: + +{ + programs.nixvim = { + extraPackages = with pkgs; [ + stylua + ]; + + plugins.conform-nvim = { + enable = true; + notifyOnError = false; + formatOnSave = '' + function(bufnr) + local disable_filetypes = { c = true, cpp = true } + return { + timeout_ms = 500 + lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype] + } + end + ''; + + formattersByFt = { + lua = ["stylua"]; + }; + }; + + keymaps = [ + { + mode = ""; + key = "f"; + action.__raw = '' + function() + require('conform').format { async = true, lsp_fallback = true } + end + ''; + options = { + desc = "[F]ormat buffer"; + }; + } + ]; + }; +}