diff --git a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix index fde241ca3ce3..e5246bb4260a 100644 --- a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix +++ b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix @@ -36,6 +36,24 @@ in https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md ''; }; + + patterns = mkOption { + default = []; + type = types.listOf(types.listOf(types.string)); + + example = literalExample '' + [ + ["rm -rf *" "fg=white,bold,bg=red"] + ] + ''; + + description = '' + Specifies custom patterns to be highlighted by zsh-syntax-highlighting. + + Please refer to the docs for more information about the usage: + https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/pattern.md + ''; + }; }; }; @@ -48,6 +66,16 @@ in ${optionalString (length(cfg.highlighters) > 0) "ZSH_HIGHLIGHT_HIGHLIGHTERS=(${concatStringsSep " " cfg.highlighters})" } + + ${optionalString (length(cfg.patterns) > 0) + (assert(elem "pattern" cfg.highlighters); (foldl ( + a: b: + assert(length(b) == 2); '' + ${a} + ZSH_HIGHLIGHT_PATTERNS+=('${elemAt b 0}' '${elemAt b 1}') + '' + ) "") cfg.patterns) + } ''; }; }