Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Install script for OmniBrowser for Pharo 1.3?

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?

  • http://www.squeaksource.com/PharoOB
  • http://source.lukas-renggli.ch/ob21
  • http://source.lukas-renggli.ch/omnibrowser
  • http://source.wiresong.ca/ob/
  • ...and probably more

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

like image 928
Juan Aguerre Avatar asked May 09 '12 14:05

Juan Aguerre


2 Answers

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.

like image 165
Sean DeNigris Avatar answered Sep 28 '22 04:09

Sean DeNigris


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.

like image 33
Lukas Renggli Avatar answered Sep 28 '22 04:09

Lukas Renggli