Hashtable BareWord key highlighting changes with presence of inline comment

Open
#219 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
powershell
Domain
tooling

Research direction

Reproduce the issue in the PowerShell EditorSyntax repository using the provided hashtable and inline-comment example, comparing highlighting before and after saving. No source file or test is named in the report, so first locate the grammar or highlighting rules responsible for PowerShell hashtable keys and comments. Done means the key is highlighted consistently in both unsaved and saved editors.

Written by the indexing model from the issue text.

Description

Issue-Bug
Prerequisites
  • I have written a descriptive issue title.
  • I have searched all open and closed issues to ensure it has not already been reported.
  • I have read the troubleshooting guide.
  • I am sure this issue is with the extension itself and does not reproduce in a standalone PowerShell instance.
  • I have verified that I am using the latest version of Visual Studio Code and the PowerShell extension.
  • If this is a security issue, I have read the security issue reporting guidance.
Summary

The syntax highlighting of a BareWord key that is followed by an inline comment in a Hashtable is different in a new unsaved editor vs when it is saved.

Before the file is saved:

Image

After the file is saved:

Image

Removing the inline comment (re-adding the inline comment goes back to how it is above):

Image

I would expect the keys to be consistently highlighted, regardless of a following inline comment or not.

I'm using the Default Dark Modern theme - in case that's relevant.

Edit: I noticed while filling in this issue template, that GitHub's syntax highlighting also does the same thing!

Image

The two key's are subtly different colours

PowerShell Version
Name                           Value
----                           -----
PSVersion                      7.4.12
PSEdition                      Core
GitCommitId                    7.4.12
OS                             Microsoft Windows 10.0.22631
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0


Name             : Visual Studio Code Host
Version          : 2025.2.0
InstanceId       : 703b8fce-f163-4396-8543-54cfa0a5ba7c
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-GB
CurrentUICulture : en-GB
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace
Visual Studio Code Version
1.104.2
e3a5acfb517a443235981655413d566533107e92
x64
Extension Version
ms-vscode.powershell@2025.2.0
Steps to Reproduce

Open a new file and paste in:

@{
    Key1 <#Sneakycomment#> = "Value1"
    Key2 = "Value2"
}

Note the highlighting.

Save the file.

Note the highlighting changes.

Remove the inline comment.

Visuals

No response

Logs

No response

Dominant language
PowerShell
Stars
151
Forks
55
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from PowerShell/EditorSyntax

All issues in PowerShell/EditorSyntax

Similar issues

More DevTools issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.