6

请不要在这里宣传 Nautilus 或 Glamour。我正在使用 Pharo 1.3(没有迁移到 Pharo 1.4 或 2.0 的计划)。那里似乎有很多版本的 OmniBrowser。哪一个是经过最多测试的(在覆盖范围内)或只是没有错误?

我有一些问题:

  • 它与 Shout 一起使用是否正确?
  • 我可以在没有 AST 和重构引擎的情况下加载它吗?
  • 我可以在没有 Morphic 的情况下加载它吗?
  • 它与任何版本的 Squeak 兼容吗?
  • 它可以在 Cuis 中加载吗?

谢谢

4

3 回答 3

6

Omnibrowser 预装在 Pharo 1.3 中。

如果您要在 1.3 核心中安装它,请使用:

Gofer new
    squeaksource: 'MetacelloRepository';
    package: 'ConfigurationOfOmniBrowser';
    load.
((Smalltalk at: #ConfigurationOfOmniBrowser) project perform: #version: with: '1.3') load: #( Dev ).

至于你的其他问题......它是否正确地与 Shout 一起使用?是的。

我可以在没有 AST 和重构引擎的情况下加载它吗?是的。加载#Core 组而不是#Dev。

我可以在没有 Morphic 的情况下加载它吗?不。

它与任何版本的 Squeak 兼容吗?是的。您可以使用以下命令将其加载到 Squeak 4.2 和 4.3 中:

Installer ss
    project: 'MetacelloRepository';
    install: #ConfigurationOfOmniBrowser.
((Smalltalk at: #ConfigurationOfOmniBrowser) project perform: #stableVersion) load: #( Dev ). 

虽然它似乎有一些问题。例如,似乎不需要重构,当出现错误时,我不得不将一些#createCompletionController 方法更改为:

createCompletionController
    ^ OController model: self

它可以在 Cuis 中加载吗?高度怀疑。

于 2012-05-09T14:39:39.577 回答
5

存储库http://source.wiresong.ca/ob/是 Squeak 的官方 OmniBrowser 存储库(使用 Tool-Builder)。存储库http://source.lukas-renggli.ch/omnibrowser是 Pharo 的官方 OmniBrowser 存储库(使用 Polymorph)。在两个存储库中,核心包是相同的并且定期镜像。

存储库http://source.lukas-renggli.ch/ob21已经过时,它源于我多年前开始的一个实验。我暂时删除了存储库以避免进一步混淆。所有其他存储库(以及各种 Metacello 配置)都基于过时的分叉代码。您获得的代码缺乏许多改进,并且错过了很久以前实施的重要修复。

对于 Pharo 1.3,正如 Philippe 指出的那样,您只需提交https://github.com/renggli/builder/blob/master/scripts/omnibrowser.st即可获得稳定的安装。Shout、eCompletion、重构引擎和其他各种扩展都是可选的。只需从脚本中删除不需要的部分。从技术上讲,也不需要 Morphic,但是您不会获得默认的用户界面。还有其他几个类似的界面OB-WebOB-Mars您可以加载它们,但我不知道它们目前的工作情况如何。

相同的文件输入也适用于 Squeak。您只需更换以下软件包:

  • Refactoring-Pharo-Platformwith Refactoring-Squeak-Platform(如果你想要重构引擎)
  • OB-Pharo-PlatformOB-Squeak-Platform
  • OB-PolymorphOB-ToolBuilder
  • Shout已预装在 Squeak 中且不需要
  • eCompletion在 Squeak 中不起作用(据我所知)

我不认为 OmniBrowser 在 Cuis 中工作。它可以通过提供必要的平台和 UI 包来工作。Pharo 1.4 或 Pharo 2.0 不太可能支持 OmniBrowser,因为反射系统的中心部分(例如MethodReferenceSystemNavigation)发生了巨大变化。

于 2012-05-09T21:03:59.857 回答
2

我使用来自http://source.lukas-renggli.ch/omnibrowser的那个,因为我知道 Lukas 住在哪里 ;-) Lukas 已经维护它好几年了,我从来没有遇到过任何问题。话虽如此,它只在 Pharo 1.3 中真正有效。

  • 它与 Shout 一起使用是否正确?是的
  • 我可以在没有 AST 和重构引擎的情况下加载它吗?是的
  • 我可以在没有 Morphic 的情况下加载它吗?
  • 它与任何版本的 Squeak 兼容吗?,只有 Pharo 1.3
  • 它可以在 Cuis 中加载吗?,只有 Pharo 1.3

我使用来自https://github.com/renggli/builder/blob/master/scripts/omnibrowser.st的加载脚本, 不幸的是没有 Metacello 配置。

于 2012-05-09T18:30:47.520 回答