【问题标题】:Showing inherited methods in Squeak/Pharo Smalltalk在 Squeak/Pharo Smalltalk 中显示继承的方法
【发布时间】:2009-12-02 00:36:43
【问题描述】:

我熟悉 Smalltalk 的 VisualWorks 和 Dolphin 版本,但以前没有使用过 Squeak。我只是让自己熟悉 Pharo,它是 Squeak 的“清理”分支。

我习惯于在类浏览器中使用工具来仅显示类实现的方法或继承的方法和实现的方法。

Squeak 中是否缺少这个有用的工具,或者我只是找不到它?

【问题讨论】:

    标签: smalltalk squeak


    【解决方案1】:

    您可以双击任何类以打开该特定类的层次结构浏览器。工具栏中的层次结构按钮和菜单项浏览层次结构(Ctrl+H)打开相同的视图。

    继承浏览器向您显示当前所选方法的分层实现。单击工具栏中的继承按钮。

    此外,还有一个协议浏览器,可以同时显示一个类的所有方法和超级方法。要打开此浏览器,请在类的上下文菜单中选择浏览协议 (Ctrl+Shift+P)。

    【讨论】:

    • 只是检查我们在这里谈论的是完全相同的事情 - 我想做的是(例如在检查 ArrayedCollection 时)查看列出方法的 one 窗格例如 ArrayedCollection 中的 isSorted 以及父类 SequencableCollection 中的 allButFirst 等方法(理想情况下以灰色形式显示,以表明它未在当前类上实现)。这也是你对我所问的理解吗?
    • > 您是几年来第一个错过该功能的人。这只是显示了人们的工作方式有多么不同——对我来说,这是一个关键特性。尝试在我的个人副本中重新实现它可能对我有好处。
    • @teapot7 我想 Lukas 误解了你。他指的是在类窗格中显示层次结构,您想要在方法窗格中查看继承的方法。我也是,我很怀念。
    【解决方案2】:

    如果您想构建具有该行为的浏览器,您应该查看 Glamour 浏览器构建 DSL。

    我个人觉得不需要看ProtoObject和Object中定义的全部34页方法名,或者5页方法类别。对象方法大小打印 421。

    【讨论】:

    • 感谢 Glamour 浏览器的提示 - 巧合的是,两天前我第一次听说它,听起来很棒。至于看到在 Object 上实现的所有两种不计其数的方法 - 我似乎记得 VisualWorks(或者是 Dolphin?)允许您看到在 Object 级别低于的超类上实现的所有方法上实现的方法 - 绝对你想做的事情。更模糊的记忆告诉我,我见过一个浏览器,您可以在其中选择它开始显示祖先方法的级别,这甚至更好。
    • 好吧,听起来更实用一些
    • Visualwork 默认显示Object 下的所有内容,您可以将其更改为任何超类。我想在Object 下显示所有内容应该足够了。
    【解决方案3】:

    在 GemStoneTool 中的 AFAIK 有这样一个东西,一个 1 左右和一个 # 这似乎改变了查看类中所有可用方法的视图(无论是继承的还是类本身中的)我是和您一样惊讶的是,“标准图像”中不存在这样的东西。也许用户知道这些图书馆很长时间了,也许他们记得足够多,不会打扰。 ....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      相关资源
      最近更新 更多