Pharo/Squeak - 如何快速浏览给定类中给定方法的实现?

问题描述:

比方说,我想看看如何在Dictionary类中实现“复制”。目前我使用系统浏览器并手动遍历继承层次结构(自下而上),直到找到实现给定消息的类。是否有工作空间的单行程序,可以在正确的位置打开系统浏览器?Pharo/Squeak - 如何快速浏览给定类中给定方法的实现?

(SomeClass whichClassIncludesSelector: #initialize) browse 

这将浏览实现消息#initialize的类。

(SomeClass的>>#someSelector)浏览

作品以及我的菲罗图像。

适用于我的Pharo图像。 既然你想先找到一个类,你可以用前面的例子结合起来..

((SomeSubclass whichClassIncludesSelector:#someSelector)>>#someSelector)浏览

直接去给定的方法。

就我个人而言,我只需在工作区中键入#selector,将其突出显示,然后按alt + m来提取消息的所有实现者。比键入所有代码要快得多。

如果您正在使用OmniBrowser,您可以使用上下文菜单实现者的层次...只浏览一个选择的实现者在Dictionary的层次结构。

OmniBrowser还提供了一个继承浏览器。选择#copy的任何实现并单击工具栏中的Inheritance按钮。它将向您展示#copy的所有实现者的分层视图。