Skip to content

Control statements in assignment RHS #231

Description

@stevepositiv

Hi!

I noticed that syntax highlighting does not work properly for control statements used on the right-hand side of assignments.
I tried a small fix and for now it seems to work fine without unexpected side-effects.

$x = if ($a) { 1 } else { 2 }
$x = switch ($v) { 1 { 'one' } default { 'other' } }
$x = foreach ($i in 1..3) { $i * 2 }
$x = try { Get-Thing } catch { $null } 
Syntax Highlighting Example Before Change Syntax Highlighting Example After Change

My testing is limited, so I can't say anything definitive about edge cases or possible performance implications.

Here's my change:

--- PowerShell.sublime-syntax
+++ PowerShell.sublime-syntax
@@ -948,8 +948,11 @@
 
   in-assignment:
     - include: pop-end-of-command
     # INFO: Someday maybe we can nix the workflow stuff
     - include: workflow-execution-contexts
+    - include: conditionals
+    - include: loops
+    - include: exceptions
     - include: expressions
 
   redirection:

I'm not opening this as a PR because I don't know how to write syntax tests, and I'm unsure if this needs to be implemented differently as a proper fix.

Thanks for your work!

Best Regards
Steve

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

    Issue actions