PowerShell / EditorSyntax

PowerShell syntax highlighting for editors (VS Code, Atom, SublimeText, TextMate, etc.) and GitHub!
MIT License
133 stars 45 forks source link

VSCode editor syntax not catching up #153

Open rifaterdemsahin opened 5 years ago

rifaterdemsahin commented 5 years ago

Issue on the break https://github.com/PowerShell/EditorSyntax/blob/master/PowerShellSyntax.tmLanguage#L259-L264 image

Detailed Reddit Thread https://www.reddit.com/r/PowerShell/comments/aavh8v/a_better_editor_for_powershell/

msftrncs commented 5 years ago

I think you will find that this is ultimately the same as #151/#152, the fundamental problem is that the syntax, like so many others, is really about highlighting keywords, and leaving the rest to the lint, but linting cannot catch the above, because break is a valid unquoted literal/text at that location, but its also a keyword, just not there.

The problem is, with syntax highlighting taken to the extreme, is if you only wanted to highlight a small excerpt out of something larger, without knowing the enclosing scope, the highlighter may not highlight some keywords that have limited use, for example, in or else, but not break as break is a valid keyword as long as its the first token on a statement.

So, while I am trying to work (an experiment) on a version of the PowerShell syntax that is more closely resembling what the tokenizer actually does, I expect that it will cause some problems that are unexpected.

msftrncs commented 5 years ago

@rifaterdemsahin, FYI, I've posted a PR (a while ago now) of the expirement I have been doing in a full statement syntaxing approach. PR #156. It would resolve this issue. From your example (with variations):

image

The PR is still a WIP, but you could sample it if you want. You can get a VS Code ready JSON version of the syntax file here (rename the original VS Code file, and put this one in its place.)