neovim-flake/config/plugins/formatters.nix

52 lines
965 B
Nix

# 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"];
};
};
};
}