Add ability to use contextual queries to find references when already on a reference

Offen Anfängerfreundlich
#592 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
68/100
Issue-Typ
Feature
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
typescript
Bereich
devtools

Rechercherichtung

Beginne in extensions/ql-vscode/src/contextual/templateProvider.ts bei Zeile 70, wo die Ergebnisse anhand der ausgewählten Position gefiltert werden. Verfolge, wie die Ergebnisse von contextual find-references für Deklarationen und Referenzen erzeugt werden. Als abgeschlossen gilt die Änderung, wenn durch die Auswahl einer Referenz in einer Java-Quelldatei dieselben Referenzen gefunden werden wie durch die Auswahl ihrer Deklaration, während das Verhalten für Deklarationen intakt bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug enhancement VSCode

I'm not exactly sure whether this is a feature request or a bug report. Regardless, this is behaviour that is not implemented, but I would expect it to be.

When running the find references contextual query, on a token in a database source file, no references will be found if the token represents a reference itself. References will only be found if the selected token is a declaration. For instance:

int /* 1 */ myMethod() {
  /* 2 */ myMethod();
  /* 3 */ myMethod();
}

If you place the caret at 2 or 3, no references will be found. If you place the caret at 1 References will be found at 2 and 3. Most other language servers will find references for 2 and 3 regardless of which reference is selected.

The problem is not related to the queries themselves. Rather, it happens here:
https://github.com/aeisenberg/vscode-codeql/blob/353a87de12ca818293aeb3199d057a23a24cc403/extensions/ql-vscode/src/contextual/templateProvider.ts#L70-L70

This function will take all possible results and filter out results that do not contain the selected position. This makes sense when the selected position is the declaration, but it does not make sense if the position is a reference.

Vorherrschende Sprache
TypeScript
Sterne
539
Forks
240
Ø Merge
2 T. 6 Std.
Gemergte PRs (30 T.)
29

Beitragsleitfaden

Beitragsleitfaden öffnen

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 github/vscode-codeql

Alle Issues in github/vscode-codeql

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

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