Pharo: #подкласс: переменные экземпляра … персонализированное сообщение

#metaprogramming #pharo

#метапрограммирование #pharo

Вопрос:

Я борюсь с объектом message #subclass:переменные экземпляра:classVariableNames:poolDictionaries:category, чтобы манипулировать подклассами определенного класса. У меня есть редкий класс с методом класса #подкласс: coposes…и т.д. И хотите сделать:

 RareClass
 subclass: #RareSubclass
 composes: #SomeMagic
 instanceVariableNames: ''
 classVariableNames: ''
  

в браузере.
должен ли этот метод возвращать класс (и я думаю, что это так), он вообще не работает, я получаю ошибки синтаксического анализа при попытке «сохранить»…

Ответ №1:

Я предполагаю, что вы используете OmniBrowser с загруженным механизмом рефакторинга?

Механизм рефакторинга применяет стандартные шаблоны классов, чтобы разрешить отмену любого действия, выполняемого в браузере. Очевидно, что это не может работать с определениями пользовательских классов.

В качестве обходного пути вы можете выполнить одно из следующих действий:

  • Используйте традиционный браузер, который не имеет функции отмены (оценить Browser open ),
  • Избавьтесь от функциональности рефакторинга в OmniBrowser, выгрузив пакет «OB-Reactory», или
  • Обновите код в RBAddClassChange , чтобы поддерживать ваш вариант использования.