{ flake-parts-lib, lib, ... }: { imports = [ ../en-us ]; options.perSystem = flake-parts-lib.mkPerSystemOption ( { config, pkgs, ... }: { options.languages.markdown.enable = lib.mkEnableOption "Markdown"; config = { editors.helix.languages = { language = [ { name = "markdown"; language-servers = [ "marksman" "ltex-ls-plus" "vale-ls" "typos" ]; formatter = { command = "${config.treefmt.build.wrapper}/bin/treefmt"; args = [ "--stdin" ".md" "--quiet" ]; }; auto-format = true; } ]; language-server.marksman.command = "${pkgs.marksman}/bin/marksman"; }; treefmt.programs.dprint = { enable = true; settings = { plugins = (pkgs.dprint-plugins.getPluginList (plugins: with plugins; [ dprint-plugin-markdown ])); markdown = { lineWidth = 80; textWrap = "always"; }; }; includes = [ "*.md" ]; }; pre-commit.settings.hooks.markdownlint.enable = true; }; } ); }