Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

ZSH Syntax Highlighting broken (envvars/expansion, string quoting issue) #133

Open

Description

@robobenklein

Prerequisites

Description

Syntax highlighting breaks with some variable expansions and string quoting.

Steps to Reproduce

Take this sample of code:

prompt_p10k_setup () {
  prompt_opts=( cr percent sp subst )
  setopt noprompt{cr,percent,sp,subst} "prompt${^prompt_opts[@]}"

  builtin autoload -Uz _p10k_tracked_autoload add-zsh-hook
  _p10k_tracked_autoload p10k_render_prompt_from_spec prompt_p10k_render_to_vars
  _p10k_tracked_autoload _p10k_define_hook _p10k_add_hook _p10k_run_hook

  # association
  typeset -gA p10k_opts _P10K_SEGMENT_DEFAULTS _P10K_ASYNC_STATII
  # array
  typeset -ga p10k_left p10k_right
}

Expected behavior: [What you expect to happen]

Syntax highlighting past ${^abc} should continue normally.

Actual behavior: [What actually happens]

Safe mode screenshot:
image

Reproduces how often: [What percentage of the time does it reproduce?]

Always.

Versions

Seems to have changed in Atom 1.32 or 1.33, didn't see a problem before that.

Additional Information

Repository with some sample code for testing the highlighting: https://github.com/robobenklein/p10k

Activity

  1. rsese commented on Dec 5, 2018

    @rsese

    Thanks for the report! Reproduced on macOS 10.12.6 with 1.35.0-nightly2.

  2. robobenklein commented on Jan 28, 2019

    @robobenklein
    Author

    Just another update for Atom 1.34.0: still broken but seemingly in a different way:

    image
    (source code still from zsh project robobenklein/p10k)

    Most of the problem appears around ZSH's variable expansion flags, so perhaps there's an indicator around where the problem lies.

    ${(t)variable} where (t) is the flag.

  3. winstliu commented on Jan 28, 2019

    @winstliu
    Contributor

    @robobenklein the variable expansion you're describing - is that a feature in regular sh/bash as well?

  4. robobenklein commented on Jan 28, 2019

    @robobenklein
    Author

    I don't think bash or sh have variable expansion flags like this.

  5. jspv commented on May 7, 2020

    @jspv

    Hello, any workaround to clue the syntax highlighter to ignore the issue? I have some large zsh scripts using variable expansion and correct highlighting would be really nice.

  6. stevekm commented on Feb 4, 2022

    @stevekm

    I see that this issue is from 2018, pretty surprised that it has not been fixed yet especially since zsh is now the default shell on macOS. I am using Atom version 1.58 on macOS and the syntax highlighting for shell scripts with zsh breaks after I use the "${(%):-%x}" command. I expected maybe there would be a separate language plugin for zsh but that does not seem to be the case either. Kinda hard to believe that all these macOS Atom users are just living with busted syntax highlighting... is there some solution that has not been mentioned?

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions