For me it is too intelligent now because it is tried to create new
version of accessors instead of existing one.
But simple logic should just analyze method name and if accessor
already exists it should skip it
That isn’t a refactoring. The existing methods aren’t accessors. The
refactoring will find accessors for the variables if they exist (even if
they have a different names).
We all know what is refactoring. Usually we don't care about safe aspect
of it (and we have tests). We just want simple code transformation. I
think it is exactly such case.
+ 1
Often I get a popup telling me something that I do not understand and I
ended doing all the changes.
So if the situation is
refactoring or doit by hand
I prefer automatic transformations under my responsibilities because
else I have to do it by hand.
I like the idea of the radio buttons to control the behavior.
Also after applying override browser shows it with special icon. And
user could see it.
New accessors can’t override an existing method, for example #name,
since that would change the behavior of the #name method for that
object. If you are suggesting not creating the accessor >>method for
the “myInstVar ^myInstVar ifNil: [#someValue]” method, then you’ll need
to change the abstract variable refactorings so that they no longer use
the modified create accessors >>refactoring.
We could make it configurable. "Manually" accessors will be generated in
simplified mode and related refactorings will use intelligent mode
--
Using Opera's mail client: http://www.opera.com/mail/