flakelight/builtinModules/builtinFormatters.nix
Archit Gupta db9da2b1f7 Use mkDefault for default formatters
This enables easier overriding of formatting defaults.
2024-02-19 00:12:26 -08:00

34 lines
896 B
Nix

# flakelight -- Framework for simplifying flake setup
# Copyright (C) 2023 Archit Gupta <archit@accelbread.com>
# SPDX-License-Identifier: MIT
{ config, lib, ... }:
let
inherit (lib) mkDefault mkEnableOption mkIf;
in
{
options.flakelight.builtinFormatters =
mkEnableOption "default formatters" //
{ default = config.formatter == null; };
config = mkIf config.flakelight.builtinFormatters {
devShell.packages = pkgs: [
pkgs.nixpkgs-fmt
pkgs.nodePackages.prettier
];
formatters = pkgs:
let
nixpkgs-fmt = "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt";
prettier = "${pkgs.nodePackages.prettier}/bin/prettier --write";
in
{
"*.nix" = mkDefault nixpkgs-fmt;
"*.md" = mkDefault prettier;
"*.json" = mkDefault prettier;
"*.yaml" = mkDefault prettier;
"*.yml" = mkDefault prettier;
};
};
}