diff --git a/config/languages/conform.nix b/config/languages/conform.nix index 094faf3..51ba516 100755 --- a/config/languages/conform.nix +++ b/config/languages/conform.nix @@ -1,4 +1,6 @@ -{ +{lib, ...}: let + inherit (lib.nixvim.utils) listToUnkeyedAttrs; +in { keymaps = [ { mode = "n"; @@ -29,47 +31,23 @@ lsp_format = "fallback"; }; - formatters_by_ft = { - astro = { - __unkeyed-1 = "prettierd"; - __unkeyed-2 = "prettier"; - stop_after_first = true; - }; - cabal = { - __unkeyed-1 = "ormolu"; - }; - haskell = { - __unkeyed-1 = "ormolu"; - }; - javascript = { - __unkeyed-1 = "prettierd"; - __unkeyed-2 = "prettier"; - stop_after_first = true; - }; - javascriptreact = { - __unkeyed-1 = "prettierd"; - __unkeyed-2 = "prettier"; - stop_after_first = true; - }; - typescript = { - __unkeyed-1 = "prettierd"; - __unkeyed-2 = "prettier"; - stop_after_first = true; - }; - typescriptreact = { - __unkeyed-1 = "prettierd"; - __unkeyed-2 = "prettier"; - stop_after_first = true; - }; - lua = { - __unkeyed-1 = "stylua"; - }; - nix = { - __unkeyed-1 = "alejandra"; - }; - racket = { - __unkeyed-1 = "raco_fmt"; - }; + formatters_by_ft = let + withNixFmt = formatters: + listToUnkeyedAttrs (["nix_fmt"] ++ formatters) + // { + stop_after_first = true; + }; + in { + astro = withNixFmt ["prettierd" "prettier"]; + cabal = withNixFmt ["ormolu"]; + haskell = withNixFmt ["ormolu"]; + javascript = withNixFmt ["prettierd" "prettier"]; + javascriptreact = withNixFmt ["prettierd" "prettier"]; + lua = withNixFmt ["stylua"]; + nix = withNixFmt ["alejandra"]; + racket = withNixFmt ["raco_fmt"]; + typescript = withNixFmt ["prettierd" "prettier"]; + typescriptreact = withNixFmt ["prettierd" "prettier"]; }; formatters = { @@ -77,6 +55,10 @@ command = "raco"; args = ["fmt"]; }; + nix_fmt = { + command = "nix"; + args = ["fmt"]; + }; }; }; };