On 6 August 2010 13:04, Tim Mackinnon <[email protected]> wrote:
> Hmmm - (again if you can please be patient with me)... I really am missing
> something big here?
>
> So in my example class X and Y are subclasses of WAComponent - which has
> tons of subclasses (it could be even worse, they could subclass Object?). So
> does this mean that I should create my superclass A first?
>
> E.g. I create a new subclass of WAComponent, called A. I then make X and Y
> subclass A. Now I can do the "Refactor Class | Create Subclass" refactoring,
> and so I have to call it A2 (ultimately I only want A - but if needs must).
> Then I do get the prompt that you are referring to and can select both X and
> Y. Finally it just offers to make me class A2 but unlike what I was trying
> below it doesn't offer to move up any methods or instance variables????
>
> So this doesn't work? And furthermore it seem much more convoluted than it
> should be?

I don't know.

Keep in mind that nobody really cares about OmniBrowser, the
Refactoring Engine, and all the other development tools. A few years
ago they were just rotting along, most tests were broken and the
refactoring code base was on outdated code from the last century. I am
maintaining these tools because they make me more productive, not
because it is fun.

I would love to use something as sophisticated as Eclipse, but I don't
have interest to do that myself. So I just continue to fix and enhance
what works for me. If somebody else provides something better, I am
happy to give it a try.

Lukas

> I don't understand why Refactor Class | Create Superclass doesn't prompt me
> for other peer classes (this is what I want - in fact what I really, really
> want is to select 2 classes in the first place).
>
> Maybe I'm being really stupid, or does no-one use this refactoring in Pharo?
> It would seem that my scenario is a very common one - so I'm struggling with
> this. And frustratingly it seems that all the horsepower to do this, is
> built into the tools but they just don't use them in an intuitive way?
>
> Tim
>
>
> On 6 Aug 2010, at 11:18, Lukas Renggli wrote:
>
>> Select the superclass of your classes X and Y and perform the 'create
>> subclass' refactoring. A dialog asks you to choose the subclasses of
>> your new class.
>>
>> This old website describes most of the refactorings:
>> http://st-www.cs.illinois.edu/users/brant/Refactory/Refactorings.html.
>> There is also a description in the tooltips of the menu actions.
>>
>> Lukas
>>
>> On 6 August 2010 11:47, Tim Mackinnon <[email protected]> wrote:
>>>
>>> Hi Lukas - sorry to keep this thread going,  but I don't quite understand
>>> what you mean? Partly I think the issue is that over the years I've
>>> become
>>> very familiar with the Eclipse/IntelliJ refactorings (and how they
>>> approach
>>> things) and I've slowly forgotten how they work in smalltalk (although -
>>> in
>>> Dolphin they seem to more closely match Eclipse/IntelliJ - adding to my
>>> confusion in Pharo).
>>>
>>> To give some context, I had a class X, then I copied it to create class Y
>>> -
>>> made some changes and got something useful working. However X and Y are
>>> mostly the same - so deserve a superclass. This sounds to me like
>>> standard
>>> Refactor Class | Create Superclass refactoring (available in the context
>>> menu). Is this what you are referring to? (And this is a seaside30.rc
>>> image). Is this the create class refactoring you are referring to? It
>>> doesn't sound like it?
>>>
>>> The one I am referring to just asks me for a name of a superclass and
>>> shows
>>> me the method changes it will make (and I can remove those which I don't
>>> deem common) - but they only apply to the single class I ran the
>>> refactoring
>>> for - say X. This then leaves me with Y which still needs work.  I was
>>> expecting somewhere where it would ask me if there are any other classes
>>> to
>>> consider for the refactoring (or better still - let me multi-select
>>> several
>>> classes before I do the "create superclass" in the first place - which
>>> apparently is very hard in Pharo for some reason?).
>>>
>>> So is there some other browser, or menu option that I am missing?
>>>
>>> Tim
>>>
>>> On 6 Aug 2010, at 00:31, Lukas Renggli wrote:
>>>
>>>>>> Good point. I've been struggling with multiple selection too e.g. when
>>>>>> setting the refactoring scope. There's an entry called "selection..."
>>>>>> but
>>>>>> since I've never been able to select more than one item from a list,
>>>>>> selecting "selection..." has the same effect as “category" (when in a
>>>>>> category list of course).
>>>>>
>>>>> So is there some way of applying a refactoring to more than one class?
>>>>> What
>>>>> is that refactoring scope menu item - is there some way to specify 2 or
>>>>> more
>>>>> classes in there? Why is this so hard?
>>>>
>>>> The refactoring scope is something completely different. It selects
>>>> the part of the system that is considered by a refactoring.
>>>>
>>>> Did you ever try to go through the whole create-class refactoring? I
>>>> get a dialog that offers me to select multiple classes.
>>>>
>>>> Lukas
>>>>
>>>> --
>>>> Lukas Renggli
>>>> www.lukas-renggli.ch
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [email protected]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>>
>>
>> --
>> Lukas Renggli
>> www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



-- 
Lukas Renggli
www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to