Skip to content

Convert ZSH_HIGHLIGHT_STYLES to zstyle #332

Open
@danielshahaf

Description

@danielshahaf

Idea: instead of assigning to a global parameter (ZSH_HIGHLIGHT_STYLES[myhighlighter:aurora]=fg=green), set a zstyle; e.g.:

# :<fixed string>:<format number>:<colors>:<highlighter name>:<colorstyle (key)>
zstyle :z-sy-h:0.5:${terminfo[colors]:-unknown}:myhighlighter:aurora color fg=green

Benefits:

  • Can easily set the same colorstyle (aurora in this example) for multiple highlighters

    [an aurora colorstyle might exist in multiple highlighters; that's why colorstyles are namespaced (0ff354b)]
  • Can use zstyle -e to set colors dynamically (based on $HOSTNAME, date and time, or even retrieved from a cloud service)
  • Can easily write a theme that works in multiple settings (light/dark terminal background, 88/256/more colors, etc)

The styles would be set by themes or by the user in zshrc, and read in the highlighters as they populate $region_highlight.

As to the themes branch (#241) : perhaps the theme should be part of the context? Then, highlighters could look up color values in the context :z-sy-h:…:${ZSH_HIGHLIGHT_THEME}:…, and users could change the active a theme simply by assigning to $ZSH_HIGHLIGHT_THEME.

(Terminology note: I'm going to call aurora a "colorstyle" and the color a "zstyle"

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @danielshahaf

        Issue actions

          Convert ZSH_HIGHLIGHT_STYLES to zstyle · Issue #332 · zsh-users/zsh-syntax-highlighting