Gibt es eine Möglichkeit, die Strg-Klick-Funktion "Peek" in Visual Studio Code zu deaktivieren? Idealerweise möchte ich bei gedrückter Strg-Taste die Datei mit der Definition in einer neuen Registerkarte öffnen.
Bearbeiten : Ich habe ein Problem eingereicht , um es zumindest weniger verwirrend zu machen. Anscheinend ist meine Terminologie etwas falsch.
Zur Verdeutlichung gibt es zwei Aktionen:
- Klicken Sie mit der rechten Maustaste -> Peek Definition
- Rechtsklick -> Gehe zu Definition (gebunden an Strg-Klick)
Ihr Verhalten ist wie folgt:
- PD, Einzeldefinition
- Öffnet die Inline-Oberfläche mit der Definition.
PD, mehrere Definitionen
- Öffnet die Inline-Oberfläche mit Definitionen.
GtD, Einzeldefinition
- Öffnen Sie die Datei mit der Definition.
- GtD, mehrere Definitionen
- Wählen Sie eine der Definitionen nach dem Zufallsprinzip aus, öffnen Sie diese Datei und eine Inline-Oberfläche mit allen Definitionen.
Alle außer dem letzten sind in Ordnung. Beides führt zu einer wirklich redundanten und verwirrenden Benutzeroberfläche wie dieser:
Es sollte einen Weg geben, eines dieser Verhaltensweisen zu haben:
- Wählen Sie eine der Definitionen nach dem Zufallsprinzip aus und öffnen Sie diese Datei.
Oder:
- Öffnen Sie die Inline-Oberfläche mit allen Definitionen ( in der aktuellen Datei ).
visual-studio-code
Timmmm
quelle
quelle
Antworten:
Ich habe eine Pull - Anforderung gemacht , dies zu beheben https://github.com/Microsoft/vscode/pull/68023 , aber bis dahin ist hier eine temporäre Update, das die VSCode Installationsdateien Patches. Sie müssen jedes Update erneut anwenden.
BEARBEITEN: Der Fix wurde in vscode zusammengeführt. Es sollte in späteren Versionen sein.
Mit diesem Fix wird Strg + Klick:
Finden Sie heraus, wie die zu patchende Funktion aussieht. Die Methode ist
DefinitionAction.prototype._onResult(editorService, editor, model)
Wechseln Sie in das VSCode-Installationsverzeichnis.
%LocalAppData%\Programs\Microsoft VS Code
Klicken Sie mit der rechten Maustaste und öffnen Sie das Verzeichnis in VSCode, damit wir die Suchfunktion von VSCode verwenden können, um in jeder Datei nach Text zu suchen.Suchen
_onResult
und bewerten Sie jedes Ergebnis und prüfen Sie, ob die Signatur und der Text mit den Erwartungen übereinstimmen, die wir an die Funktion in Schritt 1 gestellt haben._openReference
in der Nähe ist. Verwenden Sie dies, um die Suche einzugrenzen.workbench.main.js
Schlange2454
. Verwenden Sie die Klammeranpassung, um das Ende zu finden, oder wissen Sie, dass es unmittelbar vorher endett.prototype._openReference
Die formatierte Funktion lautet wie folgt (asynchrone Funktion wird bis zur Statemachine kompiliert, daher sieht sie nicht wie das Quell-Typoskript aus):
Ersetzen Sie die Funktion durch die folgende (wenn Sie dieselbe Version verwenden) oder formatieren Sie sie und bearbeiten Sie die Funktion, die diesem Beispiel ähnlich ist. Beachten Sie, dass die
o
Variable das globale \ window-Objekt ist und Änderungen unterliegen kann.Starten Sie VSCode. Du wirst eine bekommen
Your Code installation appears to be corrupt. Please reinstall
. Drücken Sie einfach das Zahnradsymbol und klicken Sie aufDon't Show Again.
quelle
Dies scheint in einer neueren Version behoben worden zu sein. Wenn ich jetzt schwebt über
FOO
infoo.cpp
, sehe ich den normalen Tooltip#define FOO 2
. Wenn ich Strg drücke, wird die Meldung erweitert und der Text "Klicken, um 2 Definitionen anzuzeigen" hinzugefügt. Wenn ich bei gedrückter Strg-Taste klicke, wird das angezeigte Peek-Fenster angezeigt.quelle
Ich habe versucht, eine Problemumgehung zu finden, die das Verhalten von CMD+ Click ändert , um zur Implementierung zu gelangen. Es scheint jedoch, dass es noch keine Lösung gibt.
In der VSCode-Dokumentation wird standardmäßig festgelegt, dass zur Definition gewechselt werden soll, ohne dass eine Änderung möglich ist: https://code.visualstudio.com/docs/editor/editingevolved
Wenn ich auf meinem Computer (Mac) CMD+ Klick oder F12eine Methode drücke , werde ich zur Peek-Ansicht der Definition weitergeleitet, CMD+ F12jedoch zur Implementierung, ohne dass der Peek angezeigt wird.
quelle