JetBrains / IntelliJ-Tastenkombination zum Reduzieren aller Methoden

226

Ich arbeite an einem Legacy-Code mit einer Klasse von mehr als 10.000 Codezeilen und Hunderten von Methoden. Gibt es eine Verknüpfung für eine JetBrains-IDE (da die Verknüpfung wahrscheinlich für alle gemeinsam genutzt wird), um alle Methoden / Funktionen zu reduzieren, sodass nur die Methodensignaturen angezeigt werden?

Etwas wie das:

public String myMethod(String arg1, int arg2){...}

public String mySecondMethod(String arg1, int arg2){...}
Brad
quelle
12
Sie können sich die Verknüpfungen zum Falten von Intellij-Code ansehen . Ich denke, dass Strg + Umschalt + Minus genau das ist, was Sie brauchen.
Lifus
JAHHHH. Ich wusste nicht, dass es Code Folding heißt, also konnte ich es nicht finden. Vielen Dank!
Brad
3
Ich wäre versucht, abzustimmen, außer ich hätte fast geweint, als Sie sagten "eine Klasse mit mehr als 10.000 Codezeilen und ungefähr 100 Methoden", also +1 für den Versuch.
Peter Lawrey
Ha. Ich wäre es auch, aber es ist nicht meine Schuld. Ich habe das geerbt
Brad
4
Mir ist klar, dass dies die gestellte Frage nicht beantwortet, sondern Ctrl-F12einen Navigator öffnet, um zwischen Methoden usw. zu wechseln. (Sie können die Liste der Methoden eingrenzen, indem Sie auch diese Strukturansicht eingeben .) Der Strukturbereich ( Alt-7) fügt weitere hinzu Optionen. Dies könnte eine effektivere Methode sein, um Dateien mit einer großen Anzahl von Methoden zu untersuchen. Daher überlasse ich den Vorschlag hier zukünftigen Googlern.
kghastie

Antworten:

432

Sie können sich die Verknüpfungen zum Falten von Intellij-Code ansehen .

Für Windows / Linux: Ctrl+ Shift+-

Für Mac Command+ Shift++ verwenden-

Um sich wieder zu entfalten, machen Sie Ctrl+ Shift+ +oder Command+ Shift+ +Respekt.

Lifus
quelle
10
Ein Befehl, der nicht alles innerhalb der Methoden rekursiv zusammenbricht, wäre schön.
Trinity420
1
Strg + -: aktuelle Methode
reduzieren
Die Antwort unten ist viel besser, weil sie die Granularität hat, nach der ich gesucht habe!
Angelos Pikoulas
@Ali_dev gibt es eine Möglichkeit, mit allen Methoden dasselbe zu tun?
Shashwat
@shashwat nicht genau. Sie können Strg + Umschalt + Minus verwenden, um alle zu reduzieren, und dann Strg + Alt + Plus verwenden, um eines davon rekursiv zu öffnen.
Ali_dev
86

Der obige Vorschlag von Ctrl+ Shift+ -Code faltet alle Codeblöcke rekursiv. Ich wollte nur die Methoden für meine Klassen falten.

Code> Folding> Expand all to level>1

Dies habe ich über die Menüoption erreicht Code > Folding > Expand all to level > 1.

Ich habe es Ctrl+ neu zugewiesen, NumPad-1was mir eine schnelle Möglichkeit gibt, meine Klassen auf ihre Methoden zu reduzieren.

Dies funktioniert auf der Blockebene der Datei und setzt voraus, dass auf der obersten Ebene Ihrer Datei Klassen definiert sind, die für Code wie PHP, jedoch nicht für JavaScript (verschachtelte Abschlüsse usw.) funktionieren.

Präkastisch
quelle
4
Dies sollte die akzeptierte Antwort IMO sein. Es löst das Problem in einem Schritt und löst es genau wie gewünscht. Wenn Sie stattdessen die akzeptierte Antwort tun, werden Sie alles falten, was gefaltet werden kann, und dann entfalten, um Ihre Methoden zu sehen. Ich habe das letztere gemacht und es ist nicht so zeitaufwändig, aber es ist schön zu wissen, dass ich einige Schritte mit dem ersteren aus diesem Beitrag überspringen kann. Vielen Dank!
John Pancoast
1
Schön, das macht es. Das einzige Problem, mit dem ich jetzt konfrontiert bin, ist, dass ich es nicht durch Drücken der Tastaturtasten tun kann, da ich ein MacbookPro ohne habe numpad. Ich nehme an, ich muss bei Google festlegen, wie benutzerdefinierte Schlüssel zugewiesen werden sollen. Seufzer.
CodeGodie
IntelliJ hat hierfür eine Standard-Keymap: Ctrl+ NumPad-*gefolgt von der gewünschten Faltstufe , die auf dem NumPad eingegeben wurde.
Matt C
Es kollabiert die Blöcke innerhalb von Methoden! Gibt es kein Level 0-Fold ?
Amir Fo
22

Gehen Sie zur Menüoption Code> Falten, um auf alle Optionen zum Falten von Code und deren Verknüpfungen zuzugreifen.

Rahul Tiwari
quelle
1
Dies ist besonders nützlich, wenn Sie eine andere Keymap verwenden (z. B. die Eclipse-Keymap).
Magnilex
Leider wird bei Verknüpfungen mit dem zweiten Strich die Verknüpfung im Menü nicht richtig angezeigt. Siehe die Antwort von overthink.
Antimon
7

Die Antwort von @ precastic oben ist imo die richtige Idee.

Es ist erwähnenswert, dass es in IDEA 2018.2 (und sicherlich auch in anderen Versionen in der Nähe) Standardtastenkürzel gibt: (Mac wird angezeigt, siehe Code> Falten> Alle auf Ebene erweitern für Ihr System):

Cmd+ Option+ Keypad *, 1- alle auf Stufe 1 erweitern
Cmd+ Option+ Keypad *, 2- alle auf Stufe 2 erweitern
...
Cmd+ Option+ Keypad *, 5- alle auf Stufe 5 erweitern

Hinweis: Dies sind Verknüpfungen für den zweiten Strich. Drücken Sie zuerst Cmd+ Option+ *, lassen Sie dann los und drücken Sie dann die gewünschte Nummer.

überdenken
quelle
1
Für alle Nicht-Mac-Leute Cmdist Ctrlund OptionistShift
desertSniper87
Gut zu wissen über Abkürzungen für den zweiten Strich.
Varun Sharma
2

Sie können zu Einstellung> Editor> Allgemein> Code-Faltung gehen und "Code-Faltkontur anzeigen" aktivieren.

Meysam Jafari
quelle
1

In Rider wäre dies Ctrl+ Shift+ Keypad *,2

Aber!, Sie können die Nummer 2 nicht auf der Tastatur verwenden , nur die Nummer 2 in der oberen Reihe der Tastatur würde funktionieren.

Rosdi Kasim
quelle
2
Die Nummer auf dem Nummernblock funktioniert, aber Sie müssen zuerst Strg + Umschalt + * loslassen, bevor Sie den Nummernblock 2 drücken.
Northnroro