2012-02-29 13 views
5

Diciamo che voglio vedere come "copia" è implementato nella classe Dizionario. Attualmente utilizzo il browser di sistema e attraverso manualmente la gerarchia di ereditarietà (dal basso verso l'alto) finché non trovo la classe che implementa il messaggio specificato. Esiste un one-liner per l'area di lavoro, che aprirebbe il browser di sistema nella posizione corretta?Pharo/Squeak - Come posso sfogliare rapidamente l'implementazione di un determinato metodo in una determinata classe?

risposta

6
(SomeClass whichClassIncludesSelector: #initialize) browse 

Questo sfoglia la classe che implementa il messaggio #inizializza.

2

(SomeClass >> # someSelector) sfogliare

opere e la mia immagine Pharo in.

funziona anche nella mia immagine Pharo. E dal momento che si vuole trovare una classe prima, si può combinare con l'esempio precedente ..

((SomeSubclass whichClassIncludesSelector: #someSelector) >> # someSelector) sfogliare

di andare direttamente al dato metodo.

6

Personalmente, digito semplicemente #selector in un'area di lavoro, evidenziarlo e premere alt + m per visualizzare tutti gli implementatori del messaggio. Molto più veloce di digitare tutto quel codice.

2

Se si utilizza OmniBrowser, è possibile utilizzare il menu contestuale Implementors in Gerarchia ... per navigare solo gli implementatori di un selettore nella gerarchia del Dictionary.

OmniBrowser fornisce anche un Elicottero . Seleziona un'implementazione di #copy e fai clic sul pulsante Inheritance nella barra degli strumenti. Ti mostrerà una vista gerarchica di tutti gli implementatori di #copy.