# Code formatters {pkgs, ...}: { extraPackages = with pkgs; [ # TS/JS, Markdown, TOML, JSON, etc nodePackages.prettier # Rust rustfmt # Nix nixfmt-rfc-style # Python black # Lua stylua # Haskell haskellPackages.fourmolu # Misc # codespell ]; plugins.conform-nvim = { enable = true; settings = { format_on_save = { timeoutMs = 500; lspFallback = true; }; formatters_by_ft = { lua = ["stylua"]; python = ["black"]; nix = ["nixfmt"]; svelte = ["prettier"]; rust = ["rustfmt"]; haskell = ["fourmolu"]; toml = ["prettier"]; json = ["prettier"]; markdown = ["prettier"]; yaml = ["prettier"]; html = ["prettier"]; javascript = ["prettier"]; typescript = ["prettier"]; # "*" = ["codespell"]; "_" = ["trim_whitespace"]; }; }; }; }