Merge pull request #26229 from Ma27/refactor/use-attr-set-for-syntax-highlighting-patterns
programs.zsh.syntaxHighlighting: refactor to use attr sets rather than recursive lists for patterns
This commit is contained in:
commit
d07ad26bfd
@ -8,13 +8,7 @@ in
|
|||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
programs.zsh.syntaxHighlighting = {
|
programs.zsh.syntaxHighlighting = {
|
||||||
enable = mkOption {
|
enable = mkEnableOption "zsh-syntax-highlighting";
|
||||||
default = false;
|
|
||||||
type = types.bool;
|
|
||||||
description = ''
|
|
||||||
Enable zsh-syntax-highlighting.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
highlighters = mkOption {
|
highlighters = mkOption {
|
||||||
default = [ "main" ];
|
default = [ "main" ];
|
||||||
@ -39,12 +33,12 @@ in
|
|||||||
|
|
||||||
patterns = mkOption {
|
patterns = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf(types.listOf(types.string));
|
type = types.attrsOf types.string;
|
||||||
|
|
||||||
example = literalExample ''
|
example = literalExample ''
|
||||||
[
|
{
|
||||||
["rm -rf *" "fg=white,bold,bg=red"]
|
"rm -rf *" = "fg=white,bold,bg=red";
|
||||||
]
|
}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
description = ''
|
description = ''
|
||||||
@ -67,14 +61,17 @@ in
|
|||||||
"ZSH_HIGHLIGHT_HIGHLIGHTERS=(${concatStringsSep " " cfg.highlighters})"
|
"ZSH_HIGHLIGHT_HIGHLIGHTERS=(${concatStringsSep " " cfg.highlighters})"
|
||||||
}
|
}
|
||||||
|
|
||||||
${optionalString (length(cfg.patterns) > 0)
|
${let
|
||||||
(assert(elem "pattern" cfg.highlighters); (foldl (
|
n = attrNames cfg.patterns;
|
||||||
a: b:
|
in
|
||||||
assert(length(b) == 2); ''
|
optionalString (length(n) > 0)
|
||||||
${a}
|
(assert(elem "pattern" cfg.highlighters); (foldl (
|
||||||
ZSH_HIGHLIGHT_PATTERNS+=('${elemAt b 0}' '${elemAt b 1}')
|
a: b:
|
||||||
''
|
''
|
||||||
) "") cfg.patterns)
|
${a}
|
||||||
|
ZSH_HIGHLIGHT_PATTERNS+=('${b}' '${attrByPath [b] "" cfg.patterns}')
|
||||||
|
''
|
||||||
|
) "") n)
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user