Pharo / Squeak - Comment puis-je parcourir rapidement la mise en œuvre d'une méthode donnée dans une classe donnée?

StackOverflow https://stackoverflow.com/questions/9491714

Question

Disons que je veux voir comment la "copie" est mise en œuvre dans la classe de dictionnaire. Actuellement, j'utilise le navigateur système et traverse manuellement la hiérarchie d'héritage (bas en haut) jusqu'à ce que je trouve la classe qui implémente le message donné. Y a-t-il une ligne unique pour l'espace de travail, qui ouvrirait le navigateur système au bon endroit?

Était-ce utile?

La solution

( SomeClass whichClassIncludesSelector: #initialize ) browse

Cela parcourera la classe qui implémente le message #Initialize.

Autres conseils

Personnellement, je tape simplement le #Selector dans un espace de travail, le met en surbrillance et appuye sur Alt + M pour tirer tous les implémentateurs du message. Beaucoup plus rapide que de taper tout ce code.

(SomeClass >> # Someselector) Parcourir

fonctionne aussi bien dans mon image pharo.

fonctionne aussi bien dans mon image pharo. Et puisque vous voulez d'abord trouver une classe, vous pouvez le combiner avec l'exemple précédent.

((Somesubclass WhichClassincludeSelector: #Someselector) >> # Someselector) Parcourez

pour aller directement à la méthode donnée.

Si vous utilisez omnibrowser, vous pouvez utiliser le menu contextuel Implémentateurs de la hiérarchie ... pour parcourir uniquement les implémentors d'un sélecteur dans la hiérarchie du Dictionary.

Omnibrowser fournit également un Navigateur d'héritage. Sélectionnez toute implémentation de #copy et cliquez sur le Inheritance bouton dans la barre d'outils. Il vous montrera une vision hiérarchique de tous les implémentateurs de #copy.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top