$PSVersionTable: Name Value
---- -----
PSVersion 5.1.14393.206
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14393.206
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
I am experiencing a problem with syntax highlighting inside a ValidatePattern attribute on a parameter.
The highlighting seems to break if I make use of a closing round bracket ) inside the validation pattern.
In that part of the pattern, I want the URL to optionally have videos/ in it.
Here is the code from the screenshots, to save from having to type it out when reproducing:
$ErrorActionPreference = "Stop"
Set-StrictMode -Version Latest
function Convert-UrlForApi {
param(
[Parameter(Mandatory=$true)]
[ValidatePattern('^http:\/\/www.giantbomb.com\/(videos\/)?[a-z0-9\-]+\/[0-9]+-')]
[ValidateScript({[Uri]::IsWellFormedUriString($($_), [UriKind]::Absolute)})]
[String]$Url
)
if ($Url -match "\/3030\-[0-9]+\/$") {
return "http://www.giantbomb.com/api/game$($Matches[0])"
} elseif ($Url -match "\/2300\-[0-9]+\/$") {
return "http://www.giantbomb.com/api/video$($Matches[0])"
} else {
return $null
}
}
Please see the screenshots below.
The function itself executes fine and works absolutely as expected and desired with the round bracket in place, so it's just the syntax highlighter getting confused about the round bracket inside the pattern string.


I've also noticed this issue.
Using:
Validate pattern am using: [ValidatePattern("^([0-9a-fA-F]{2}[:-]{0,1}){5}[0-9a-fA-F]{2}$")]
Appears to happen in ValidateScript also
System Details
Operating system name and version: Windows 10 Pro 10.0.10586.0
VS Code version: 1.19.3
PowerShell extension version: 1.6.0
Output from $PSVersionTable:
Name Value
---- -----
PSVersion 5.0.10586.1295
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.1295
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

Syntax highlighting is being managed out of the https://GitHub.com/powershell/editorsyntax project. @tylerl0706 Can you move this issue over to that repo?
This is still an issue in VS code 1.21.1 with PowerShell plugin 1.60.
Doesn't appear on any other IDE we have tested.
This issue was moved to PowerShell/EditorSyntax#74