Установить скрипт для OmniBrowser для Pharo 1.3?
Пожалуйста, не рекламируйте Nautilus или Glamour здесь. Я использую Pharo 1.3 (без планов перехода на Pharo 1.4 или 2.0). Кажется, существует множество версий OmniBrowser. Какой из них наиболее протестирован (в смысле охвата) или просто не содержит ошибок?
- http://www.squeaksource.com/PharoOB
- http://source.lukas-renggli.ch/ob21
- http://source.lukas-renggli.ch/omnibrowser
- http://source.wiresong.ca/ob/
- ... и, возможно, больше
У меня есть несколько вопросов для этого:
- Правильно ли работает с 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.