2012-02-29 13 views
5

Digamos que quiero ver cómo se implementa "copiar" en la clase de diccionario. Actualmente utilizo el navegador del sistema y recorro manualmente la jerarquía de herencia (de abajo hacia arriba) hasta que encuentro la clase que implementa el mensaje dado. ¿Hay una sola línea para el área de trabajo, que abriría el navegador del sistema en el lugar correcto?Pharo/Squeak - ¿Cómo exploro rápidamente la implementación de un método determinado en una clase determinada?

Respuesta

6
(SomeClass whichClassIncludesSelector: #initialize) browse 

Eso explorará la clase que implementa el mensaje #initialize.

2

(SomeClass >> # someSelector) navegar

funciona tan bien mi imagen en Pharo.

funciona también en mi imagen de Pharo. Y ya que usted quiere encontrar una clase en primer lugar, que se puede combinar con el ejemplo anterior ..

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

para ir directamente al método dado.

6

Personalmente, simplemente escribo el #selector en un espacio de trabajo, lo realizo resaltar y pulso alt + m para extraer todos los implementadores del mensaje. Mucho más rápido que escribir todo ese código.

2

Si está utilizando OmniBrowser, puede utilizar el menú contextual implementadores en la jerarquía ... sólo navegar por los ejecutores de un selector en la jerarquía de la Dictionary.

OmniBrowser también proporciona un Herencia del explorador. Seleccione cualquier implementación de #copy y haga clic en el botón Inheritance en la barra de herramientas. Le mostrará una vista jerárquica de todos los implementadores de #copy.

Cuestiones relacionadas