zsh: allow enabling syntax highlighters (#4360)
This commit is contained in:
parent
9a4725afa6
commit
993fb02d20
|
@ -226,9 +226,20 @@ let
|
||||||
|
|
||||||
package = mkPackageOption pkgs "zsh-syntax-highlighting" { };
|
package = mkPackageOption pkgs "zsh-syntax-highlighting" { };
|
||||||
|
|
||||||
|
highlighters = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [ ];
|
||||||
|
example = [ "brackets" ];
|
||||||
|
description = ''
|
||||||
|
Highlighters to enable
|
||||||
|
See the list of highlighters: <https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
styles = mkOption {
|
styles = mkOption {
|
||||||
type = types.attrsOf types.str;
|
type = types.attrsOf types.str;
|
||||||
default = {};
|
default = {};
|
||||||
|
example = { comment = "fg=black,bold"; };
|
||||||
description = ''
|
description = ''
|
||||||
Custom styles for syntax highlighting.
|
Custom styles for syntax highlighting.
|
||||||
See each highlighter's options: <https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md>
|
See each highlighter's options: <https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md>
|
||||||
|
@ -624,6 +635,7 @@ in
|
||||||
# https://github.com/zsh-users/zsh-syntax-highlighting#faq
|
# https://github.com/zsh-users/zsh-syntax-highlighting#faq
|
||||||
''
|
''
|
||||||
source ${cfg.syntaxHighlighting.package}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
source ${cfg.syntaxHighlighting.package}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||||
|
ZSH_HIGHLIGHT_HIGHLIGHTERS+=(${lib.concatStringsSep " " (map lib.escapeShellArg cfg.syntaxHighlighting.highlighters)})
|
||||||
${lib.concatStringsSep "\n" (
|
${lib.concatStringsSep "\n" (
|
||||||
lib.mapAttrsToList
|
lib.mapAttrsToList
|
||||||
(name: value: "ZSH_HIGHLIGHT_STYLES+=(${lib.escapeShellArg name} ${lib.escapeShellArg value})")
|
(name: value: "ZSH_HIGHLIGHT_STYLES+=(${lib.escapeShellArg name} ${lib.escapeShellArg value})")
|
||||||
|
|
|
@ -9,6 +9,7 @@ with lib;
|
||||||
syntaxHighlighting = {
|
syntaxHighlighting = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.hello;
|
package = pkgs.hello;
|
||||||
|
highlighters = [ "brackets" "pattern" "cursor" ];
|
||||||
styles.comment = "fg=#6c6c6c";
|
styles.comment = "fg=#6c6c6c";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -17,6 +18,7 @@ with lib;
|
||||||
|
|
||||||
nmt.script = ''
|
nmt.script = ''
|
||||||
assertFileContains home-files/.zshrc "source ${pkgs.hello}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
assertFileContains home-files/.zshrc "source ${pkgs.hello}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
||||||
|
assertFileContains home-files/.zshrc "ZSH_HIGHLIGHT_HIGHLIGHTERS+=('brackets' 'pattern' 'cursor')"
|
||||||
assertFileContains home-files/.zshrc "ZSH_HIGHLIGHT_STYLES+=('comment' 'fg=#6c6c6c')"
|
assertFileContains home-files/.zshrc "ZSH_HIGHLIGHT_STYLES+=('comment' 'fg=#6c6c6c')"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue