Incorrect bracket matching when JavaScript identifier contains $

Offen
#2,236 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
65/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
javascript
Bereich
devtools

Rechercherichtung

Look at the bracket matching logic in the JavaScript editor, likely in a language server or syntax highlighting component. Start by searching for files handling bracket matching or tokenization for JavaScript. Reproduce the issue locally with the provided test case to confirm the bug. Check how '$' is being interpreted in identifiers and adjust the matching rules to treat it as part of an identifier, not a bracket.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

In the JavaScript editor, bracket matching incorrectly associates an opening { with a $ character instead of the corresponding closing }.

This is reproducible in a completely new, empty .js file, so it does not appear to be related to the project, existing source code, or workspace configuration.

Steps to reproduce
  1. Create a new empty JavaScript file, for example test.js.
  2. Enter the following code:
function test() {
    const $this = $(this);
}
  1. Place the cursor on the opening { after function test().
Actual result

The $ character in $this / $(this) is highlighted as the matching character.

For example:

function test() {
    const $this = $(this);
          ^

The $ is highlighted instead of the closing }.

Expected result

The corresponding closing brace should be highlighted:

function test() {
    const $this = $(this);         
}
^
                                  

The $ character is valid in JavaScript identifiers and should not be treated as a bracket or matching character.

Additional information

The problem is reproducible with a completely new JavaScript file containing only the above code.

Try removing the $s from the file and I see that NO } is highlighted

Environment
  • Eclipse IDE: 4.41
  • Eclipse Wild Web Developer: 1.4.1.202608181434
  • Feature: org.eclipse.wildwebdeveloper.feature.feature.group
  • Operating system: Windows
  • Language: JavaScript
Notes

The issue also occurs in existing JavaScript source code, including code using jQuery, but jQuery itself does not appear to be relevant because the minimal example above reproduces the problem.

The problem affects only the visual bracket matching/highlighting; the JavaScript code itself is valid.

Vorherrschende Sprache
Java
Sterne
203
Forks
76
Ø Merge
1 T. 5 Std.
Gemergte PRs (30 T.)
30

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus eclipse-wildwebdeveloper/wildwebdeveloper

Alle Issues in eclipse-wildwebdeveloper/wildwebdeveloper

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.