Skip to content

Closing round bracket breaks syntax highlighting on ValidatePattern parameter attribute #357

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jlucktay opened this issue Dec 4, 2016 · 5 comments
Labels
Issue-Bug A bug to squash.

Comments

@jlucktay
Copy link

jlucktay commented Dec 4, 2016

System Details

  • Operating system name and version: Windows 10 Pro, version 1607, build 14393.447
  • VS Code version: 1.7.2
  • PowerShell extension version: 0.7.2
  • Output from $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

Issue Description

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.

Attached Logs

OK without the round bracket

image

Not OK with the round bracket

image

@tonylea
Copy link

tonylea commented Feb 21, 2017

I've also noticed this issue.

Using:

  • Windows 10 Pro
  • VS Code version: 1.9.1
  • PowerShell extension version: 0.9.0

Validate pattern am using: [ValidatePattern("^([0-9a-fA-F]{2}[:-]{0,1}){5}[0-9a-fA-F]{2}$")]

@daviwil daviwil added the Issue-Bug A bug to squash. label Feb 21, 2017
@jcantrell-HCA
Copy link

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

image

@rkeithhill
Copy link
Contributor

Syntax highlighting is being managed out of the https://GitHub.com/powershell/editorsyntax project. @tylerl0706 Can you move this issue over to that repo?

@gazm81
Copy link

gazm81 commented Apr 6, 2018

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.

@TylerLeonhardt
Copy link
Member

This issue was moved to PowerShell/EditorSyntax#74

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Bug A bug to squash.
Projects
None yet
Development

No branches or pull requests

7 participants