Skrót klawiaturowy JetBrains / IntelliJ, aby zwinąć wszystkie metody

226

Pracuję nad jakimś starszym kodem, który ma klasę zawierającą ponad 10 000 linii kodu i setki metod. Czy istnieje skrót dla dowolnego IDE JetBrain (ponieważ skrót prawdopodobnie byłby wspólny dla wszystkich), aby zwinąć wszystkie metody / funkcje, tak aby wyświetlane były tylko podpisy metod?

Coś takiego:

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

public String mySecondMethod(String arg1, int arg2){...}
Ćwiek
źródło
12
Możesz spojrzeć na skróty do składania kodu Intellijskiego . Myślę, że Ctrl + Shift + Minus jest tym, czego potrzebujesz.
lifus
YEAHHHH. Nie wiedziałem, że nazywa się to składaniem kodu, więc nie mogłem go znaleźć. Dzięki!
Brad
3
Kusiłbym, by przegłosować, z wyjątkiem tego, że prawie płakałem, kiedy powiedziałeś „klasa, która ma ponad 10 000 linii kodu i ma około 100 metod”, więc +1 za próbę.
Peter Lawrey
ha. też byłbym, ale to nie moja wina. Odziedziczyłem to
Brad
4
Zdaję sobie sprawę, że to nie odpowiada na zadane pytanie, ale Ctrl-F12otworzy nawigator do przeskakiwania między metodami itp. (Możesz zawęzić listę metod, wpisując również ten Widok Struktury .) Panel Struktury ( Alt-7) dodaje więcej opcje Może to być bardziej skuteczny sposób eksploracji plików przy użyciu dużej liczby metod, dlatego zostawiam tutaj sugestię dla przyszłych pracowników Google.
kghastie

Odpowiedzi:

432

Możesz spojrzeć na skróty do składania kodu Intellijskiego .

W systemie Windows / Linux: Ctrl+ Shift+-

W systemie Mac użyj Command+ Shift+-

Aby rozwinąć ponownie, wykonaj Ctrl+ Shift+ +lub Command+ Shift+ +szacunek.

lifus
źródło
10
Polecenie, które również nie rekurencyjnie zwija wszystko w metodach, byłoby przyjemne.
trinity420,
1
Ctrl + -: zwiń bieżącą metodę
Ali_dev
Odpowiedź poniżej jest znacznie lepsza, ponieważ ma całą ziarnistość, której szukałem!
Angelos Pikoulas
@Ali_dev czy istnieje sposób, aby zrobić to samo dla wszystkich metod?
shashwat
@shashwat nie do końca. możesz użyć Ctrl + Shift + Minus, aby zwinąć wszystkie, a następnie użyć Ctrl + Alt + Plus, aby otworzyć jedną z nich rekurencyjnie.
Ali_dev
86

Powyższa sugestia kodu Ctrl+ Shift+ -składa rekurencyjnie wszystkie bloki kodu. Chciałem tylko złożyć metody na moje zajęcia.

Code> Folding> Expand all to level>1

Udało mi się to osiągnąć za pomocą opcji menu Code > Folding > Expand all to level > 1.

Ponownie przypisałem go do Ctrl+, NumPad-1co pozwala mi szybko zwinąć moje klasy według ich metod.

Działa to na „poziomie bloku” pliku i zakłada, że ​​masz klasy zdefiniowane na najwyższym poziomie pliku, który działa dla kodu takiego jak PHP, ale nie dla JavaScript (zagnieżdżone zamknięcia itp.)

Precastic
źródło
4
To powinna być zaakceptowana odpowiedź IMO. Rozwiązuje problem w 1 kroku i rozwiązuje go dokładnie tak, jak pytano. Jeśli zamiast tego zrobisz zaakceptowaną odpowiedź, będziesz składać wszystko, co można złożyć, a następnie rozkładać, aby zobaczyć swoje metody. Robiłem to drugie i nie jest to tak czasochłonne, ale miło jest wiedzieć, że mogę pominąć kilka kroków z tym pierwszym z tego postu. Dzięki!
John Pancoast,
1
Fajnie, to wystarcza. Jedynym problemem, z jakim się teraz spotykam, jest to, że nie mogę tego zrobić, naciskając przyciski klawiatury, ponieważ mam MacBookPro bez numpad. Przypuszczam, że będę musiał Google przydzielić niestandardowe klucze. Westchnienie.
CodeGodie
IntelliJ ma do tego domyślną mapę klawiszy: Ctrl+ NumPad-*następnie żądany poziom składania, wprowadzony na NumPad.
Matt C
Zawala bloki wewnątrz metod! Czy nie ma żadnego fałdu poziomu 0 ?
Amir Fo
22

przejdź do opcji menu Kod> Składanie, aby uzyskać dostęp do wszystkich opcji związanych ze składaniem kodu i ich skrótów.

Rahul Tiwari
źródło
1
Jest to szczególnie przydatne, jeśli używasz innej mapy klawiszy (takiej jak mapa klawiszy zaćmienia).
Magnilex,
Niestety skróty „drugiego uderzenia” nie wyświetlają poprawnie skrótu w menu. Zobacz odpowiedź przemyślenia.
Antymon
7

@ powyższa odpowiedź precastic jest, imo, właściwym pomysłem.

Warto zauważyć, że w IDEA 2018.2 (i na pewno w innych pobliskich wersjach) dostępne są domyślne skróty klawiaturowe: (pokazuje Mac, zobacz Kod> Składanie> Rozwiń wszystko do poziomu dla twojego systemu):

Cmd+ Option+ Keypad *, 1- rozwiń wszystko do poziomu 1
Cmd+ Option+ Keypad *, 2- rozwiń wszystko do poziomu 2
...
Cmd+ Option+ Keypad *, 5- rozwiń wszystko do poziomu 5

Uwaga: są to skróty „drugiego uderzenia”. Najpierw naciśnij Cmd+ Option+ *, następnie zwolnij, a następnie naciśnij żądany numer.

przemyśleć
źródło
1
Dla wszystkich nieCmdCtrlOptionShift
Macowych
Dobrze wiedzieć o skrótach drugiego skoku.
Varun Sharma
2

Możesz przejść do ustawienia> edytor> ogólne> zwijanie kodu i zaznacz „pokaż kontur zwijania kodu”.

Meysam Jafari
źródło
1

W Rider będzie to Ctrl+ Shift+ Keypad *,2

Ale ! , nie można użyć cyfry 2 na klawiaturze , działałaby tylko cyfra 2 w górnym rzędzie klawiatury.

Rosdi Kasim
źródło
2
Numer na klawiaturze numerycznej działa, ale najpierw musisz zwolnić Ctrl + Shift + * przed naciśnięciem klawisza numerycznego 2.
Northnroro