HASH f55e861fddb4
DATE 2025-01-29
SUBJECT modules: vale init
FILES 6 CHANGED
HASH f55e861fddb4
DATE 2025-01-29
SUBJECT modules: vale init
FILES 6 CHANGED
┌─ modules/home/console/tools/default.nix ───────────────────────────────────┐
│ diff --git a/modules/home/console/tools/default.nix b/modules/home/console/tools/d │
│ efault.nix │
│ index 45a4b5a..d79fdcf 100644 │
│ --- a/modules/home/console/tools/default.nix │
│ +++ b/modules/home/console/tools/default.nix │
│ @@ -1,6 +1,7 @@ │
│ { │
│ imports = [ │
│ ./bat.nix │
│ + ./vale.nix │
│ ./networking.nix │
│ ./btop.nix │
│ ./git.nix │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...ome/console/tools/default.nix ───┐
│ diff --git a/modules/home/console/tools/defa │
│ ult.nix b/modules/home/console/tools/default │
│ .nix │
│ index 45a4b5a..d79fdcf 100644 │
│ --- a/modules/home/console/tools/default.nix │
│ +++ b/modules/home/console/tools/default.nix │
│ @@ -1,6 +1,7 @@ │
│ { │
│ imports = [ │
│ ./bat.nix │
│ + ./vale.nix │
│ ./networking.nix │
│ ./btop.nix │
│ ./git.nix │
└──────────────────────────────────────────────┘
┌─ modules/home/console/tools/vale.nix ──────────────────────────────────────┐
│ diff --git a/modules/home/console/tools/vale.nix b/modules/home/console/tools/vale │
│ .nix │
│ new file mode 100644 │
│ index 0000000..206ed99 │
│ --- /dev/null │
│ +++ b/modules/home/console/tools/vale.nix │
│ @@ -0,0 +1,29 @@ │
│ +{self, ...}: { │
│ + imports = [ │
│ + self.homeManagerModules.vale │
│ + ]; │
│ + programs.vale = { │
│ + enable = true; │
│ + styles = [ │
│ + "microsoft" │
│ + "write-good" │
│ + "alex" │
│ + "readability" │
│ + "proselint" │
│ + ]; │
│ + globalSettings = { │
│ + MinAlertLevel = "suggestion"; │
│ + }; │
│ + formatSettings = { │
│ + "*.{md,txt,tex}" = { │
│ + BasedOnStyles = [ │
│ + "proselint" │
│ + "alex" │
│ + "Readability" │
│ + "Microsoft" │
│ + ]; │
│ + "Microsoft.Acronyms" = "NO"; │
│ + }; │
│ + }; │
│ + }; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...s/home/console/tools/vale.nix ───┐
│ diff --git a/modules/home/console/tools/vale │
│ .nix b/modules/home/console/tools/vale.nix │
│ new file mode 100644 │
│ index 0000000..206ed99 │
│ --- /dev/null │
│ +++ b/modules/home/console/tools/vale.nix │
│ @@ -0,0 +1,29 @@ │
│ +{self, ...}: { │
│ + imports = [ │
│ + self.homeManagerModules.vale │
│ + ]; │
│ + programs.vale = { │
│ + enable = true; │
│ + styles = [ │
│ + "microsoft" │
│ + "write-good" │
│ + "alex" │
│ + "readability" │
│ + "proselint" │
│ + ]; │
│ + globalSettings = { │
│ + MinAlertLevel = "suggestion"; │
│ + }; │
│ + formatSettings = { │
│ + "*.{md,txt,tex}" = { │
│ + BasedOnStyles = [ │
│ + "proselint" │
│ + "alex" │
│ + "Readability" │
│ + "Microsoft" │
│ + ]; │
│ + "Microsoft.Acronyms" = "NO"; │
│ + }; │
│ + }; │
│ + }; │
│ +} │
└──────────────────────────────────────────────┘
┌─ outputs/default.nix ──────────────────────────────────────────────────────┐
│ diff --git a/outputs/default.nix b/outputs/default.nix │
│ index 8104347..560febe 100644 │
│ --- a/outputs/default.nix │
│ +++ b/outputs/default.nix │
│ @@ -8,5 +8,6 @@ │
│ ./images.nix │
│ ./devshells │
│ ./templates │
│ + ./modules │
│ ]; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ outputs/default.nix ────────────────┐
│ diff --git a/outputs/default.nix b/outputs/d │
│ efault.nix │
│ index 8104347..560febe 100644 │
│ --- a/outputs/default.nix │
│ +++ b/outputs/default.nix │
│ @@ -8,5 +8,6 @@ │
│ ./images.nix │
│ ./devshells │
│ ./templates │
│ + ./modules │
│ ]; │
│ } │
└──────────────────────────────────────────────┘
┌─ outputs/modules/default.nix ──────────────────────────────────────────────┐
│ diff --git a/outputs/modules/default.nix b/outputs/modules/default.nix │
│ new file mode 100644 │
│ index 0000000..73b1132 │
│ --- /dev/null │
│ +++ b/outputs/modules/default.nix │
│ @@ -0,0 +1,5 @@ │
│ +{ │
│ + imports = [ │
│ + ./home-manager │
│ + ]; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ outputs/modules/default.nix ────────┐
│ diff --git a/outputs/modules/default.nix b/o │
│ utputs/modules/default.nix │
│ new file mode 100644 │
│ index 0000000..73b1132 │
│ --- /dev/null │
│ +++ b/outputs/modules/default.nix │
│ @@ -0,0 +1,5 @@ │
│ +{ │
│ + imports = [ │
│ + ./home-manager │
│ + ]; │
│ +} │
└──────────────────────────────────────────────┘
┌─ outputs/modules/home-manager/default.nix ─────────────────────────────────┐
│ diff --git a/outputs/modules/home-manager/default.nix b/outputs/modules/home-manag │
│ er/default.nix │
│ new file mode 100644 │
│ index 0000000..4304d29 │
│ --- /dev/null │
│ +++ b/outputs/modules/home-manager/default.nix │
│ @@ -0,0 +1,5 @@ │
│ +{ │
│ + flake.homeManagerModules = { │
│ + vale = import ./vale; │
│ + }; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...ules/home-manager/default.nix ───┐
│ diff --git a/outputs/modules/home-manager/de │
│ fault.nix b/outputs/modules/home-manager/def │
│ ault.nix │
│ new file mode 100644 │
│ index 0000000..4304d29 │
│ --- /dev/null │
│ +++ b/outputs/modules/home-manager/default.n │
│ ix │
│ @@ -0,0 +1,5 @@ │
│ +{ │
│ + flake.homeManagerModules = { │
│ + vale = import ./vale; │
│ + }; │
│ +} │
└──────────────────────────────────────────────┘
┌─ outputs/modules/home-manager/vale/default.nix ────────────────────────────┐
│ diff --git a/outputs/modules/home-manager/vale/default.nix b/outputs/modules/home- │
│ manager/vale/default.nix │
│ new file mode 100644 │
│ index 0000000..8b26b1e │
│ --- /dev/null │
│ +++ b/outputs/modules/home-manager/vale/default.nix │
│ @@ -0,0 +1,119 @@ │
│ +{ │
│ + lib, │
│ + pkgs, │
│ + config, │
│ + ... │
│ +}: let │
│ + inherit (lib) filterAttrs mapAttrs mkEnableOption mkOption mkIf; │
│ + inherit (lib.generators) toINIWithGlobalSection; │
│ + inherit (lib.types) attrsOf submodule listOf str enum package nullOr; │
│ + │
│ + filterNullRec = let │
│ + # helper to check if a value should be kept │
│ + isNonNull = value: │
│ + if builtins.isAttrs value │
│ + then filterNullRec value != {} │
│ + else value != null; │
│ + in │
│ + attrs: │
│ + filterAttrs │
│ + (_: isNonNull) │
│ + (mapAttrs ( │
│ + name: value: │
│ + if builtins.isAttrs value │
│ + then filterNullRec value │
│ + else value │
│ + ) │
│ + attrs); │
│ + │
│ + listToStr = list: builtins.concatStringsSep "," list; │
│ + availableStyles = [ │
│ + "alex" │
│ + "google" │
│ + "joblint" │
│ + "proselint" │
│ + "write-good" │
│ + "readability" │
│ + "microsoft" │
│ + ]; │
│ + formatOptions = submodule { │
│ + freeformType = attrsOf str; │
│ + options = { │
│ + BasedOnStyles = mkOption { │
│ + type = nullOr (listOf str); │
│ + default = null; │
│ + apply = listToStr; │
│ + }; │
│ + BlockIgnores = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + }; │
│ + TokenIgnores = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + }; │
│ + CommentDelimiters = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + }; │
│ + Transform = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + }; │
│ + }; │
│ + }; │
│ + │
│ + cfg = config.programs.vale; │
│ +in { │
│ + options.programs.vale = { │
│ + enable = mkEnableOption "Enable vale linter"; │
│ + package = mkOption { │
│ + type = package; │
│ + default = pkgs.vale; │
│ + }; │
│ + styles = mkOption { │
│ + type = listOf (enum availableStyles); │
│ + default = []; │
│ + description = "Style packages to include."; │
│ + }; │
│ + globalSettings = { │
│ + MinAlertLevel = mkOption { │
│ + type = enum [ │
│ + "suggestion" │
│ + "warning" │
│ + "error" │
│ + ]; │
│ + default = "suggestion"; │
│ + description = "Set the minimum alert level that Vale will report."; │
│ + }; │
│ + IgnoredScopes = mkOption { │
│ + type = nullOr (listOf str); │
│ + default = null; │
│ + description = "Specifies inline-level HTML tags to ignore."; │
│ + apply = v: │
│ + if v != null │
│ + then listToStr │
│ + else null; │
│ + }; │
│ + }; │
│ + formatSettings = mkOption { │
│ + type = nullOr (attrsOf formatOptions); │
│ + default = null; │
│ + }; │
│ + }; │
│ + config = mkIf cfg.enable { │
│ + home.packages = [ │
│ + (cfg.package.withStyles ( │
│ + styles: │
│ + map (name: styles.${name}) config.programs.vale.styles │
│ + )) │
│ + ]; │
│ + xdg.configFile."vale/.vale.ini".text = toINIWithGlobalSection {} { │
│ + globalSection = filterNullRec cfg.globalSettings; │
│ + sections = │
│ + if cfg.formatSettings != null │
│ + then filterNullRec cfg.formatSettings │
│ + else {}; │
│ + }; │
│ + }; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...home-manager/vale/default.nix ───┐
│ diff --git a/outputs/modules/home-manager/va │
│ le/default.nix b/outputs/modules/home-manage │
│ r/vale/default.nix │
│ new file mode 100644 │
│ index 0000000..8b26b1e │
│ --- /dev/null │
│ +++ b/outputs/modules/home-manager/vale/defa │
│ ult.nix │
│ @@ -0,0 +1,119 @@ │
│ +{ │
│ + lib, │
│ + pkgs, │
│ + config, │
│ + ... │
│ +}: let │
│ + inherit (lib) filterAttrs mapAttrs mkEnab │
│ leOption mkOption mkIf; │
│ + inherit (lib.generators) toINIWithGlobalS │
│ ection; │
│ + inherit (lib.types) attrsOf submodule lis │
│ tOf str enum package nullOr; │
│ + │
│ + filterNullRec = let │
│ + # helper to check if a value should be │
│ kept │
│ + isNonNull = value: │
│ + if builtins.isAttrs value │
│ + then filterNullRec value != {} │
│ + else value != null; │
│ + in │
│ + attrs: │
│ + filterAttrs │
│ + (_: isNonNull) │
│ + (mapAttrs ( │
│ + name: value: │
│ + if builtins.isAttrs value │
│ + then filterNullRec value │
│ + else value │
│ + ) │
│ + attrs); │
│ + │
│ + listToStr = list: builtins.concatStringsS │
│ ep "," list; │
│ + availableStyles = [ │
│ + "alex" │
│ + "google" │
│ + "joblint" │
│ + "proselint" │
│ + "write-good" │
│ + "readability" │
│ + "microsoft" │
│ + ]; │
│ + formatOptions = submodule { │
│ + freeformType = attrsOf str; │
│ + options = { │
│ + BasedOnStyles = mkOption { │
│ + type = nullOr (listOf str); │
│ + default = null; │
│ + apply = listToStr; │
│ + }; │
│ + BlockIgnores = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + }; │
│ + TokenIgnores = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + }; │
│ + CommentDelimiters = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + }; │
│ + Transform = mkOption { │
│ + type = nullOr str; │
│ + default = null; │
│ + }; │
│ + }; │
│ + }; │
│ + │
│ + cfg = config.programs.vale; │
│ +in { │
│ + options.programs.vale = { │
│ + enable = mkEnableOption "Enable vale li │
│ nter"; │
│ + package = mkOption { │
│ + type = package; │
│ + default = pkgs.vale; │
│ + }; │
│ + styles = mkOption { │
│ + type = listOf (enum availableStyles); │
│ + default = []; │
│ + description = "Style packages to incl │
│ ude."; │
│ + }; │
│ + globalSettings = { │
│ + MinAlertLevel = mkOption { │
│ + type = enum [ │
│ + "suggestion" │
│ + "warning" │
│ + "error" │
│ + ]; │
│ + default = "suggestion"; │
│ + description = "Set the minimum aler │
│ t level that Vale will report."; │
│ + }; │
│ + IgnoredScopes = mkOption { │
│ + type = nullOr (listOf str); │
│ + default = null; │
│ + description = "Specifies inline-lev │
│ el HTML tags to ignore."; │
│ + apply = v: │
│ + if v != null │
│ + then listToStr │
│ + else null; │
│ + }; │
│ + }; │
│ + formatSettings = mkOption { │
│ + type = nullOr (attrsOf formatOptions) │
│ ; │
│ + default = null; │
│ + }; │
│ + }; │
│ + config = mkIf cfg.enable { │
│ + home.packages = [ │
│ + (cfg.package.withStyles ( │
│ + styles: │
│ + map (name: styles.${name}) config │
│ .programs.vale.styles │
│ + )) │
│ + ]; │
│ + xdg.configFile."vale/.vale.ini".text = │
│ toINIWithGlobalSection {} { │
│ + globalSection = filterNullRec cfg.glo │
│ balSettings; │
│ + sections = │
│ + if cfg.formatSettings != null │
│ + then filterNullRec cfg.formatSettin │
│ gs │
│ + else {}; │
│ + }; │
│ + }; │
│ +} │
└──────────────────────────────────────────────┘
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET