On Wed, May 3, 2017 at 5:22 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote:

2017-04-26 11:19 GMT+02:00 Peter Uhnak <i.uhnak@gmail.com>:
Hi,

I'm under the impression that Epicea is supposed to replace RB refactorings at some point.

I think it was never the goal and not supposed to happen. Epicea is only changes logger. Maybe Martin will correct me.��

Yes, Epicea uses RB refactorings and doesn't pretend replacing it.
��
��

If that is true, is it currently possible to build refactorings by hand?

For example in RB I often do:

```
model := RBNamespace new.

model defineClass: ('<1s> subclass: #<2s><n><t>instanceVariableNames: <3p><n><t>classVariableNames: ''''<n><t>poolDictionaries: ''''<n><t>category: <4p>' expandMacrosWith: 'Object' with: 'MySomething' with: 'var1 var2' with: 'MyPackage').
cls := model classNamed: #MySomething.
cls compile: 'var1
�� �� �� �� ^ var1' classified: 'accessing'.

(ChangesBrowser changes: model changes changes) open
```

or

(removing a method from a class)
```
model := RBNamespace new.
model removeMethod: #testTrimRight from: StringTest.
(ChangesBrowser changes: model changes changes) open

I use directly RBRefactoring subclasses:

ref := RBRemoveMethodRefactoring removeMethods: #(testTrimRight) from: StringTest.
ref execute."perform complete changes without preview"
ref primitiveExecute. "for preview"
(ChangesBrowser changes: {ref}) open.