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