On 07/03/2013 10:43 PM, Marcus Denker wrote:
On Jul 4, 2013, at 12:04 AM, Paul DeBruicker <pdebruic@gmail.com> wrote:Is there any documentation on the changes between 1.4 and 2 for the
refactoring tools? Or how to use them effectively to refactor code?
I'm familiar with Lukas Renggli's writing on them and used them
regularly in 1.4.
I'm just trying to use the RBParseTreeRewriter from within a workspace
but with it limited to a package or class hierarchy.
There should be no changes on that level. The difference just is that we use
another UI.
Marcus
Camillo and I deteremined that its probably a Nautilus bug that prevents
the "Code Rewriting" tools from working in Pharo 2 (I'm using 20606)
from within the browser (see
http://forum.world.st/how-to-use-RBClassRegexRefactoring-in-Pharo-2-td4695780.html).
But in 1.4 you could use Omnibrowser & the Code rewriting tools.
Since writing the original email in this thread I figured out that in a
Workspace you could do this:
environment := RBBrowserEnvironment new forClasses: Collection
withAllSubclasses.
rule := RBTransformationRule new.
rule rewriteRule replace: '`@object isEmpty' with: '`@object isNotEmpty'.
RBSmalllintChecker runRule: rule onEnvironment: environment.
change := RBCompositeRefactoryChange new.
change changes: rule changes.
change execute
to rewrite code.