{ helpers, pkgs, ... }: { plugins.conform-nvim = { enable = true; formatAfterSave = '' { format_after_save = { lsp_format = "fallback", }, } ''; formattersByFt = { python = [ "black" ]; c = [ "clang-format" ]; cpp = [ "clang-format" ]; cmake = [ "cmake_format" ]; nix = [ "nixfmt" ]; # Standalone scalafmt is too slow, so we use it as a fallback scala = helpers.mkRaw '' { scalafmt, lsp_format = "prefer" } ''; toml = [ "taplo" ]; yaml = [ "yq" ]; json = [ "jq" ]; }; }; extraPackages = with pkgs; [ black clang-tools cmake-format jq nixfmt-rfc-style scalafmt taplo yq ]; }