Tasto di scelta rapida JetBrains / IntelliJ per comprimere tutti i metodi


226

Sto lavorando su un codice legacy che ha una classe di oltre 10.000 righe di codice e ha centinaia di metodi. Esiste un collegamento per qualsiasi IDE JetBrains (poiché il collegamento sarebbe probabilmente condiviso tra tutti loro) per comprimere tutti i metodi / funzioni in modo che vengano mostrate solo le firme dei metodi?

Qualcosa come questo:

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

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

12
Puoi dare un'occhiata alle scorciatoie da tastiera del codice intellij . Immagino che Ctrl + Maiusc + Meno sia ciò di cui hai bisogno.
lifus,

Yeahhhh. Non sapevo che si chiamasse codice pieghevole quindi non riuscivo a trovarlo. Grazie!
Brad,

3
Sarei tentato di sottovalutare, tranne per il fatto che ho quasi pianto quando hai detto "una classe che comprende oltre 10.000 righe di codice e ha circa 100 metodi", quindi +1 per provare.
Peter Lawrey,

ha. lo sarei anche io, ma non è colpa mia. Ho ereditato questo
Brad

4
Mi rendo conto che questo non risponde alla domanda come richiesto, ma Ctrl-F12aprirà un navigatore per passare da un metodo all'altro, ecc. (Puoi restringere l'elenco dei metodi digitando anche in questa vista struttura .) Il riquadro struttura ( Alt-7) aggiunge altro opzioni. Questo potrebbe essere un modo più efficace di esplorare i file con un gran numero di metodi, quindi lascio qui il suggerimento per futuri googler.
kghastie,

Risposte:


432

Puoi dare un'occhiata alle scorciatoie da tastiera del codice intellij .

Per Windows / Linux fai: Ctrl+ Shift+-

Per mac usa Command+ Shift+-

Per spiegarlo di nuovo, fai Ctrl+ Shift+ +o Command+ Shift+ +rispettivamente.


10
Un comando che non comprime in modo ricorsivo anche tutto all'interno dei metodi sarebbe carino.
trinity420,

1
Ctrl + -: comprime il metodo corrente
Ali_dev

La risposta qui sotto è molto migliore, perché ha tutta la granularità che stavo cercando!
Angelos Pikoulas,

@Ali_dev c'è un modo per fare lo stesso con tutti i metodi?
Shashwat,

@shashwat non esattamente. puoi usare Ctrl + Maiusc + Meno per comprimerli tutti e quindi usare Ctrl + Alt + Plus per aprirne uno ricorsivamente.
Ali_dev

86

Il suggerimento sopra di Ctrl+ Shift+ -code piega ricorsivamente tutti i blocchi di codice. Volevo solo piegare i metodi per le mie lezioni.

Code> Folding> Expand all to level>1

Sono riuscito a raggiungere questo obiettivo utilizzando l'opzione di menu Code > Folding > Expand all to level > 1.

L'ho assegnato nuovamente a Ctrl+ NumPad-1che mi dà un modo rapido per comprimere le mie classi fino ai loro metodi.

Funziona a "livello di blocco" del file e presuppone che tu abbia classi definite al livello più alto del tuo file, che funziona per codice come PHP ma non per JavaScript (chiusure nidificate ecc.)


4
Questa dovrebbe essere la risposta accettata IMO. Risolve il problema in 1 passaggio e risolve esattamente come richiesto. Se invece tu fai la risposta accettata, piegherai tutto ciò che può essere piegato e poi spieghi per vedere i tuoi metodi. Ho fatto questi ultimi e non è che richiede tempo, ma è bello sapere che posso saltare alcuni passaggi con l'ex da questo post. Grazie!
John Pancoast,

1
Bello, lo fa. L'unico problema che sto affrontando ora è che non posso farlo premendo i pulsanti della tastiera in quanto ho un MacbookPro senza numpad. Dovrò Google su come assegnare le chiavi personalizzate suppongo. Sospiro.
CodeGodie,

IntelliJ ha una mappa di tasti predefinita per questo: Ctrl+ NumPad-*seguito dal livello di piegatura desiderato, inserito nel NumPad.
Matt C

Crolla i blocchi all'interno dei metodi! Non c'è un livello 0 volte ?
Amir Fo

22

vai all'opzione di menu Codice> Piegatura per accedere a tutte le opzioni relative alla piegatura del codice e alle relative scorciatoie.


1
Ciò è particolarmente utile se si utilizza un'altra keymap (come la keymap eclipse).
Magnilex,

Sfortunatamente, le scorciatoie "seconda battuta" non visualizzano correttamente la scorciatoia nel menu. Vedi la risposta del pensiero eccessivo.
Antimonio

7

La risposta di @ precastic sopra è, imo, l'idea giusta.

Vale la pena notare che in IDEA 2018.2 (e sicuramente altre versioni vicine) ci sono scorciatoie da tastiera predefinite per questo: (mostrando Mac, vedi Codice> Pieghevole> Espandi tutto a livello per il tuo sistema):

Cmd+ Option+ Keypad *, 1- espandi tutto al livello 1
Cmd+ Option+ Keypad *, 2- espandi tutto al livello 2
...
Cmd+ Option+ Keypad *, 5- espandi tutto al livello 5

Nota: si tratta di scorciatoie "seconda battuta". Premi prima Cmd+ Option+ *, quindi rilascia, quindi premi il numero desiderato.


1
Per tutte le persone non mac Cmdè Ctrled OptionèShift
desertSniper87

Buono a sapersi sulle scorciatoie del secondo colpo.
Varun Sharma,

2

Puoi andare su impostazione> editor> generale> piegatura del codice e seleziona "mostra profilo piegatura codice".


1

In Rider, questo sarebbe Ctrl+ Shift+ Keypad *,2

Ma !, non puoi usare il numero 2 sulla tastiera , funzionerebbe solo il numero 2 sulla riga superiore della tastiera.


2
Il numero sul tastierino numerico funziona, ma è necessario rilasciare Ctrl + Maiusc + * prima di premere il tastierino numerico 2.
Northnroro
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.