Question

Please do not promote Nautilus or Glamour here. I'm using Pharo 1.3 (without plans to migrate to Pharo 1.4 or 2.0). It seems to be many version of OmniBrowser out there. Which one is the most tested (in the sense of coverage) or just buggy-free?

I have some questions for it:

  • Does it work with Shout correctly?
  • Can I load it without the AST and Refactoring Engine?
  • Can I load it without Morphic?
  • It is compatible with any version of Squeak?
  • It is loadable in Cuis?

Thanks

Was it helpful?

Solution

Omnibrowser is pre-installed in Pharo 1.3.

If you're talking about installing it in 1.3 core, use:

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

As to your other questions... Does it work with Shout correctly? Yes.

Can I load it without the AST and Refactoring Engine? Yes. Load the #Core group instead of #Dev.

Can I load it without Morphic? No.

It is compatible with any version of Squeak? Yes. You can load it into Squeak 4.2 and 4.3 with:

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

Although there seem to be some problems with it. For instance, refactorings didn't seem to take, and I had to change a few #createCompletionController methods, as errors came up, to:

createCompletionController
    ^ OController model: self

It is loadable in Cuis? Highly doubtful.

OTHER TIPS

The repository http://source.wiresong.ca/ob/ is the official OmniBrowser repository for Squeak (using Tool-Builder). The repository http://source.lukas-renggli.ch/omnibrowser is the official OmniBrowser repository for Pharo (using Polymorph). In both repositories the core packages are identical and mirrored regularly.

The repository http://source.lukas-renggli.ch/ob21 is outdated, it stems from an experiment that I started many years ago. I removed the repository for now to avoid further confusion. All other repositories (as well as the various Metacello configurations) are based on outdated and forked code. The code you get there lacks many improvements and misses important fixes that had been implemented a long time ago.

For Pharo 1.3, as Philippe points out, you have to merely file-in https://github.com/renggli/builder/blob/master/scripts/omnibrowser.st to get a stable installation. Shout, eCompletion, the Refactoring Engine, and various other extensions are optional. Just remove the parts you don't need from the script. Technically Morphic is not needed either, but then you don't get a default user-interface. There are several other interfaces like OB-Web and OB-Mars that you could load, but I don't know how well they currently work.

The same file-in also works in Squeak. You just have to replace the following packages:

  • Refactoring-Pharo-Platform with Refactoring-Squeak-Platform (if you want the refactoring engine)
  • OB-Pharo-Platform with OB-Squeak-Platform
  • OB-Polymorph with OB-ToolBuilder
  • Shout is preinstalled in Squeak and not needed
  • eCompletion does not work in Squeak (as far as I know)

I don't think OmniBrowser works in Cuis. It could be made to work by providing the necessary platform and UI packages. OmniBrowser is unlikely to ever be supported in Pharo 1.4 or Pharo 2.0, because central parts of the reflective system (such as MethodReference and SystemNavigation) changed drastically.

I use the one from http://source.lukas-renggli.ch/omnibrowser because I know where Lukas lives ;-) Lukas has been maintaining it for several years now and I've never had any issues. Having that said it only really works in Pharo 1.3.

  • Does it work with Shout correctly? Yes
  • Can I load it without the AST and Refactoring Engine? Yes
  • Can I load it without Morphic? No
  • It is compatible with any version of Squeak? No, only Pharo 1.3
  • It is loadable in Cuis? No, only Pharo 1.3

I use the load script from https://github.com/renggli/builder/blob/master/scripts/omnibrowser.st unfortunately there is no Metacello configuration.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top