Установить скрипт для OmniBrowser для Pharo 1.3?

Пожалуйста, не рекламируйте Nautilus или Glamour здесь. Я использую Pharo 1.3 (без планов перехода на Pharo 1.4 или 2.0). Кажется, существует множество версий OmniBrowser. Какой из них наиболее протестирован (в смысле охвата) или просто не содержит ошибок?

У меня есть несколько вопросов для этого:

  • Правильно ли работает с Shout?
  • Могу ли я загрузить его без AST и Refactoring Engine?
  • Могу ли я загрузить его без Morphic?
  • Это совместимо с любой версией Squeak?
  • Это загружаемое в Cuis?

Спасибо

3 ответа

Решение

Омнибраузер предустановлен в 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 и Refactoring Engine? Да. Загрузите группу #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? Весьма сомнительно.

Репозиторий http://source.wiresong.ca/ob/ является официальным репозиторием OmniBrowser для Squeak (с использованием Tool-Builder). Репозиторий http://source.lukas-renggli.ch/omnibrowser - это официальный репозиторий OmniBrowser для Pharo (с использованием Polymorph). В обоих репозиториях основные пакеты идентичны и регулярно отражаются.

Хранилище http://source.lukas-renggli.ch/ob21 устарело, оно связано с экспериментом, который я начал много лет назад. Я удалил хранилище, чтобы избежать путаницы. Все остальные репозитории (а также различные конфигурации Metacello) основаны на устаревшем и разветвленном коде. Код, который вы получаете, не имеет много улучшений и пропускает важные исправления, которые были реализованы давно.

Для Pharo 1.3, как отмечает Филипп, нужно просто подать файл https://github.com/renggli/builder/blob/master/scripts/omnibrowser.st чтобы получить стабильную установку. Shout, eCompletion, Refactoring Engine и различные другие расширения не являются обязательными. Просто удалите части, которые вам не нужны, из сценария. Технически Morphic тоже не нужен, но тогда вы не получите пользовательский интерфейс по умолчанию. Есть несколько других интерфейсов, таких как OB-Web а также OB-Mars что вы могли бы загрузить, но я не знаю, насколько хорошо они в настоящее время работают.

Этот же файл работает и в Squeak. Вам просто нужно заменить следующие пакеты:

  • Refactoring-Pharo-Platform с Refactoring-Squeak-Platform (если вы хотите рефакторинг двигателя)
  • OB-Pharo-Platform с OB-Squeak-Platform
  • OB-Polymorph с OB-ToolBuilder
  • Shout предустановлен в Squeak и не нужен
  • eCompletion не работает в Squeak (насколько я знаю)

Я не думаю, что OmniBrowser работает в Cuis. Его можно заставить работать, предоставив необходимую платформу и пакеты пользовательского интерфейса. OmniBrowser вряд ли когда-либо будет поддерживаться в Pharo 1.4 или Pharo 2.0, потому что центральные части отражающей системы (такие как MethodReference а также SystemNavigation) резко изменилось.

Я использую один из http://source.lukas-renggli.ch/omnibrowser потому что я знаю, где живет Лукас;-) Лукас поддерживает его уже несколько лет, и у меня никогда не было проблем. Сказав это, он действительно работает только в Pharo 1.3.

  • Правильно ли работает с Shout? да
  • Могу ли я загрузить его без AST и Refactoring Engine? да
  • Могу ли я загрузить его без Morphic? нет
  • Это совместимо с любой версией Squeak? Нет, только Pharo 1.3
  • Это загружаемое в Cuis? Нет, только Pharo 1.3

Я использую скрипт загрузки из https://github.com/renggli/builder/blob/master/scripts/omnibrowser.st к сожалению, нет конфигурации Metacello.

Другие вопросы по тегам