{ flake-parts-lib, lib, ... }: { imports = [ ../en-us ]; options.perSystem = flake-parts-lib.mkPerSystemOption ( { config, pkgs, ... }: { options.languages.yaml.enable = lib.mkEnableOption "YAML"; config = { editors.helix.languages = { language = [ { name = "yaml"; language-servers = [ "yaml-language-server" ] ++ (lib.optionals config.languages.en-us.enable [ "harper-ls" "typos" ]); formatter = { command = "${config.treefmt.build.wrapper}/bin/treefmt"; args = [ "--stdin" ".yaml" "--quiet" ]; }; auto-format = true; } ]; language-server.yaml-language-server.command = "${pkgs.yaml-language-server}/bin/yaml-language-server"; }; treefmt.programs.dprint = { enable = true; settings.plugins = ( pkgs.dprint-plugins.getPluginList (plugins: with plugins; [ g-plane-pretty_yaml ]) ); includes = [ "*.yaml" "*.yml" ]; }; pre-commit.settings.hooks = { check-yaml.enable = true; sort-simple-yaml.enable = true; }; }; } ); }