Weird behavior in Nautilus when doing a method rename

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
35 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Weird behavior in Nautilus when doing a method rename

philippeback
I was doing a Refactoring>rename of the initialize method in Nautilus
for the ClassMethodBrowser and then the changes browser proposed me to
change all classes with initialize. WTF?

Phil

Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

Camillo Bruni-3
there is 1 certain bug, that is that you cannot see the changes of the refactoring:

https://code.google.com/p/pharo/issues/detail?id=7547

the rest I would consider a bug as well. But in the terms of refactoring it might
be "valid". It does preserve behavior by renaming also all implementors.

How about this reasoning:

Rename method
=> rename all senders (since you refactor)
=> you have to rename all implementors as well since you renamed all send sites
   otherwise you'll run for sure into a DNU

I think I just convinced myself :D

On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
> I was doing a Refactoring>rename of the initialize method in Nautilus
> for the ClassMethodBrowser and then the changes browser proposed me to
> change all classes with initialize. WTF?
>
> Phil
>


Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

philippeback
2013/2/20 Camillo Bruni <[hidden email]>:

> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>
> https://code.google.com/p/pharo/issues/detail?id=7547
>
> the rest I would consider a bug as well. But in the terms of refactoring it might
> be "valid". It does preserve behavior by renaming also all implementors.
>
> How about this reasoning:
>
> Rename method
> => rename all senders (since you refactor)
> => you have to rename all implementors as well since you renamed all send sites
>    otherwise you'll run for sure into a DNU
>
> I think I just convinced myself :D
>
> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>> I was doing a Refactoring>rename of the initialize method in Nautilus
>> for the ClassMethodBrowser and then the changes browser proposed me to
>> change all classes with initialize. WTF?
>>
>> Phil
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

philippeback
In reply to this post by Camillo Bruni-3
Well, look at the screenshot then tell me that this is what I want.

It is definitively *not* what I want. Especially unchecking that
endless list of methods.

Adding a "Uncheck all" "Check all" button to the Changes Browser list
would help...

Regards
Phil

2013/2/20 Camillo Bruni <[hidden email]>:

> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>
> https://code.google.com/p/pharo/issues/detail?id=7547
>
> the rest I would consider a bug as well. But in the terms of refactoring it might
> be "valid". It does preserve behavior by renaming also all implementors.
>
> How about this reasoning:
>
> Rename method
> => rename all senders (since you refactor)
> => you have to rename all implementors as well since you renamed all send sites
>    otherwise you'll run for sure into a DNU
>
> I think I just convinced myself :D
>
> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>> I was doing a Refactoring>rename of the initialize method in Nautilus
>> for the ClassMethodBrowser and then the changes browser proposed me to
>> change all classes with initialize. WTF?
>>
>> Phil
>>
>
>

PharoScreenshot.3.png (328K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

EstebanLM
hi,

yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.  

cheers,
Esteban

On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:

> Well, look at the screenshot then tell me that this is what I want.
>
> It is definitively *not* what I want. Especially unchecking that
> endless list of methods.
>
> Adding a "Uncheck all" "Check all" button to the Changes Browser list
> would help...
>
> Regards
> Phil
>
> 2013/2/20 Camillo Bruni <[hidden email]>:
>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>
>> https://code.google.com/p/pharo/issues/detail?id=7547
>>
>> the rest I would consider a bug as well. But in the terms of refactoring it might
>> be "valid". It does preserve behavior by renaming also all implementors.
>>
>> How about this reasoning:
>>
>> Rename method
>> => rename all senders (since you refactor)
>> => you have to rename all implementors as well since you renamed all send sites
>>   otherwise you'll run for sure into a DNU
>>
>> I think I just convinced myself :D
>>
>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>> change all classes with initialize. WTF?
>>>
>>> Phil
>>>
>>
>>
> <PharoScreenshot.3.png>


Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

philippeback
Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
is pretty common.

What will happen is that people will remove the method and recreate a new one.
Version history will then go away.

Or is the system smart enough to find out about these things?

Phil

2013/2/20 Esteban Lorenzano <[hidden email]>:

> hi,
>
> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>
> cheers,
> Esteban
>
> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>
>> Well, look at the screenshot then tell me that this is what I want.
>>
>> It is definitively *not* what I want. Especially unchecking that
>> endless list of methods.
>>
>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>> would help...
>>
>> Regards
>> Phil
>>
>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>
>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>
>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>
>>> How about this reasoning:
>>>
>>> Rename method
>>> => rename all senders (since you refactor)
>>> => you have to rename all implementors as well since you renamed all send sites
>>>   otherwise you'll run for sure into a DNU
>>>
>>> I think I just convinced myself :D
>>>
>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>> change all classes with initialize. WTF?
>>>>
>>>> Phil
>>>>
>>>
>>>
>> <PharoScreenshot.3.png>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

Marcus Denker-4

On Feb 20, 2013, at 10:53 AM, "[hidden email]" <[hidden email]> wrote:

> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
> is pretty common.
>
Yes, and a release is only once a year..

If we want to fix everything on that level, we will *never* release anything.
The release is defined as something not completely unusable of the stuff we
*did do*. It is not defined as "that what I would like to have".

> What will happen is that people will remove the method and recreate a new one.
> Version history will then go away.
>
Are you sure the version history is kept when you do a refactoring?


> Or is the system smart enough to find out about these things?
>

No. But that is *not* a show stopper for 2.0

If you want to improve the system in these directions, you should join 3.0 development early.

> Phil
>
> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>> hi,
>>
>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>
>> cheers,
>> Esteban
>>
>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>
>>> Well, look at the screenshot then tell me that this is what I want.
>>>
>>> It is definitively *not* what I want. Especially unchecking that
>>> endless list of methods.
>>>
>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>> would help...
>>>
>>> Regards
>>> Phil
>>>
>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>
>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>
>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>
>>>> How about this reasoning:
>>>>
>>>> Rename method
>>>> => rename all senders (since you refactor)
>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>  otherwise you'll run for sure into a DNU
>>>>
>>>> I think I just convinced myself :D
>>>>
>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>> change all classes with initialize. WTF?
>>>>>
>>>>> Phil
>>>>>
>>>>
>>>>
>>> <PharoScreenshot.3.png>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

EstebanLM
In reply to this post by philippeback
and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
It is a small step, but is something... and well... we can improve in next releases, one step at a time :)

Esteban

On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:

> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
> is pretty common.
>
> What will happen is that people will remove the method and recreate a new one.
> Version history will then go away.
>
> Or is the system smart enough to find out about these things?
>
> Phil
>
> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>> hi,
>>
>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>
>> cheers,
>> Esteban
>>
>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>
>>> Well, look at the screenshot then tell me that this is what I want.
>>>
>>> It is definitively *not* what I want. Especially unchecking that
>>> endless list of methods.
>>>
>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>> would help...
>>>
>>> Regards
>>> Phil
>>>
>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>
>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>
>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>
>>>> How about this reasoning:
>>>>
>>>> Rename method
>>>> => rename all senders (since you refactor)
>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>  otherwise you'll run for sure into a DNU
>>>>
>>>> I think I just convinced myself :D
>>>>
>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>> change all classes with initialize. WTF?
>>>>>
>>>>> Phil
>>>>>
>>>>
>>>>
>>> <PharoScreenshot.3.png>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

Fernando olivero-2
In reply to this post by philippeback
Hi, i had the same misconception once, but i recall Lukas pointed out
that the refactoring engine is built on the original refactoring's
from Fowler's book, and implemented in Smalltalk by Roberts and
Johnson [1].

So the semantics of the refactoring are preserved in the implementation.

If you just want a method rename, not a method refactoring rename,
maybe is best have an option for that in the menu [2].


Fernando

[1] http://st-www.cs.illinois.edu/users/droberts/tapos.pdf
[2] or use a better widget for editing methods, than a simple code
editor within the pane of the browser, as in Gaucho..which i'm working
on.

On Wed, Feb 20, 2013 at 11:03 AM, Esteban Lorenzano <[hidden email]> wrote:

> and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
> It is a small step, but is something... and well... we can improve in next releases, one step at a time :)
>
> Esteban
>
> On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:
>
>> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
>> is pretty common.
>>
>> What will happen is that people will remove the method and recreate a new one.
>> Version history will then go away.
>>
>> Or is the system smart enough to find out about these things?
>>
>> Phil
>>
>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>> hi,
>>>
>>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>>
>>> cheers,
>>> Esteban
>>>
>>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>>
>>>> Well, look at the screenshot then tell me that this is what I want.
>>>>
>>>> It is definitively *not* what I want. Especially unchecking that
>>>> endless list of methods.
>>>>
>>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>>> would help...
>>>>
>>>> Regards
>>>> Phil
>>>>
>>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>>
>>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>>
>>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>>
>>>>> How about this reasoning:
>>>>>
>>>>> Rename method
>>>>> => rename all senders (since you refactor)
>>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>>  otherwise you'll run for sure into a DNU
>>>>>
>>>>> I think I just convinced myself :D
>>>>>
>>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>>> change all classes with initialize. WTF?
>>>>>>
>>>>>> Phil
>>>>>>
>>>>>
>>>>>
>>>> <PharoScreenshot.3.png>
>>>
>>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

philippeback
In reply to this post by Marcus Denker-4
Relax. Onboarding 3.0.

2013/2/20 Marcus Denker <[hidden email]>:

>
> On Feb 20, 2013, at 10:53 AM, "[hidden email]" <[hidden email]> wrote:
>
>> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
>> is pretty common.
>>
> Yes, and a release is only once a year..
>
> If we want to fix everything on that level, we will *never* release anything.
> The release is defined as something not completely unusable of the stuff we
> *did do*. It is not defined as "that what I would like to have".
>
>> What will happen is that people will remove the method and recreate a new one.
>> Version history will then go away.
>>
> Are you sure the version history is kept when you do a refactoring?
>
>
>> Or is the system smart enough to find out about these things?
>>
>
> No. But that is *not* a show stopper for 2.0
>
> If you want to improve the system in these directions, you should join 3.0 development early.
>
>> Phil
>>
>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>> hi,
>>>
>>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>>
>>> cheers,
>>> Esteban
>>>
>>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>>
>>>> Well, look at the screenshot then tell me that this is what I want.
>>>>
>>>> It is definitively *not* what I want. Especially unchecking that
>>>> endless list of methods.
>>>>
>>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>>> would help...
>>>>
>>>> Regards
>>>> Phil
>>>>
>>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>>
>>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>>
>>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>>
>>>>> How about this reasoning:
>>>>>
>>>>> Rename method
>>>>> => rename all senders (since you refactor)
>>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>>  otherwise you'll run for sure into a DNU
>>>>>
>>>>> I think I just convinced myself :D
>>>>>
>>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>>> change all classes with initialize. WTF?
>>>>>>
>>>>>> Phil
>>>>>>
>>>>>
>>>>>
>>>> <PharoScreenshot.3.png>
>>>
>>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

EstebanLM
In reply to this post by Fernando olivero-2
he... yeah, probably there are a lot of theory that says that you should have them in separated places or whatever.
But in practice, people does refactors all the time and they need to have them close to their use, not lost in some paper-defined place :)

Esteban

On Feb 20, 2013, at 11:06 AM, Fernando Olivero <[hidden email]> wrote:

> Hi, i had the same misconception once, but i recall Lukas pointed out
> that the refactoring engine is built on the original refactoring's
> from Fowler's book, and implemented in Smalltalk by Roberts and
> Johnson [1].
>
> So the semantics of the refactoring are preserved in the implementation.
>
> If you just want a method rename, not a method refactoring rename,
> maybe is best have an option for that in the menu [2].
>
>
> Fernando
>
> [1] http://st-www.cs.illinois.edu/users/droberts/tapos.pdf
> [2] or use a better widget for editing methods, than a simple code
> editor within the pane of the browser, as in Gaucho..which i'm working
> on.
>
> On Wed, Feb 20, 2013 at 11:03 AM, Esteban Lorenzano <[hidden email]> wrote:
>> and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
>> It is a small step, but is something... and well... we can improve in next releases, one step at a time :)
>>
>> Esteban
>>
>> On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:
>>
>>> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
>>> is pretty common.
>>>
>>> What will happen is that people will remove the method and recreate a new one.
>>> Version history will then go away.
>>>
>>> Or is the system smart enough to find out about these things?
>>>
>>> Phil
>>>
>>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>>> hi,
>>>>
>>>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>>>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>>>
>>>> cheers,
>>>> Esteban
>>>>
>>>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>>>
>>>>> Well, look at the screenshot then tell me that this is what I want.
>>>>>
>>>>> It is definitively *not* what I want. Especially unchecking that
>>>>> endless list of methods.
>>>>>
>>>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>>>> would help...
>>>>>
>>>>> Regards
>>>>> Phil
>>>>>
>>>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>>>
>>>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>>>
>>>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>>>
>>>>>> How about this reasoning:
>>>>>>
>>>>>> Rename method
>>>>>> => rename all senders (since you refactor)
>>>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>>> otherwise you'll run for sure into a DNU
>>>>>>
>>>>>> I think I just convinced myself :D
>>>>>>
>>>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>>>> change all classes with initialize. WTF?
>>>>>>>
>>>>>>> Phil
>>>>>>>
>>>>>>
>>>>>>
>>>>> <PharoScreenshot.3.png>
>>>>
>>>>
>>>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

philippeback
In reply to this post by EstebanLM
I used it with OB and indeed, it helps a lot working in one's projet indeed.

Phil

2013/2/20 Esteban Lorenzano <[hidden email]>:

> and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
> It is a small step, but is something... and well... we can improve in next releases, one step at a time :)
>
> Esteban
>
> On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:
>
>> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
>> is pretty common.
>>
>> What will happen is that people will remove the method and recreate a new one.
>> Version history will then go away.
>>
>> Or is the system smart enough to find out about these things?
>>
>> Phil
>>
>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>> hi,
>>>
>>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>>
>>> cheers,
>>> Esteban
>>>
>>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>>
>>>> Well, look at the screenshot then tell me that this is what I want.
>>>>
>>>> It is definitively *not* what I want. Especially unchecking that
>>>> endless list of methods.
>>>>
>>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>>> would help...
>>>>
>>>> Regards
>>>> Phil
>>>>
>>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>>
>>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>>
>>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>>
>>>>> How about this reasoning:
>>>>>
>>>>> Rename method
>>>>> => rename all senders (since you refactor)
>>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>>  otherwise you'll run for sure into a DNU
>>>>>
>>>>> I think I just convinced myself :D
>>>>>
>>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>>> change all classes with initialize. WTF?
>>>>>>
>>>>>> Phil
>>>>>>
>>>>>
>>>>>
>>>> <PharoScreenshot.3.png>
>>>
>>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

philippeback
In reply to this post by Fernando olivero-2
Yes, but the rename is *not* in the refactoring menu. It is *below*
the refactoring menu.
So, it is an unexpected refactoring in disguise...

There was a simple rename in 1.4 I think. Maybe can we get that one
back (in 3.0 of course...)

Phil

2013/2/20 Fernando Olivero <[hidden email]>:

> Hi, i had the same misconception once, but i recall Lukas pointed out
> that the refactoring engine is built on the original refactoring's
> from Fowler's book, and implemented in Smalltalk by Roberts and
> Johnson [1].
>
> So the semantics of the refactoring are preserved in the implementation.
>
> If you just want a method rename, not a method refactoring rename,
> maybe is best have an option for that in the menu [2].
>
>
> Fernando
>
> [1] http://st-www.cs.illinois.edu/users/droberts/tapos.pdf
> [2] or use a better widget for editing methods, than a simple code
> editor within the pane of the browser, as in Gaucho..which i'm working
> on.
>
> On Wed, Feb 20, 2013 at 11:03 AM, Esteban Lorenzano <[hidden email]> wrote:
>> and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
>> It is a small step, but is something... and well... we can improve in next releases, one step at a time :)
>>
>> Esteban
>>
>> On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:
>>
>>> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
>>> is pretty common.
>>>
>>> What will happen is that people will remove the method and recreate a new one.
>>> Version history will then go away.
>>>
>>> Or is the system smart enough to find out about these things?
>>>
>>> Phil
>>>
>>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>>> hi,
>>>>
>>>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>>>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>>>
>>>> cheers,
>>>> Esteban
>>>>
>>>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>>>
>>>>> Well, look at the screenshot then tell me that this is what I want.
>>>>>
>>>>> It is definitively *not* what I want. Especially unchecking that
>>>>> endless list of methods.
>>>>>
>>>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>>>> would help...
>>>>>
>>>>> Regards
>>>>> Phil
>>>>>
>>>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>>>
>>>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>>>
>>>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>>>
>>>>>> How about this reasoning:
>>>>>>
>>>>>> Rename method
>>>>>> => rename all senders (since you refactor)
>>>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>>>  otherwise you'll run for sure into a DNU
>>>>>>
>>>>>> I think I just convinced myself :D
>>>>>>
>>>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>>>> change all classes with initialize. WTF?
>>>>>>>
>>>>>>> Phil
>>>>>>>
>>>>>>
>>>>>>
>>>>> <PharoScreenshot.3.png>
>>>>
>>>>
>>>
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

EstebanLM
yes, but the debate is interesting, because is about usability... and we certainly need to improve a lot in that area.
I think that currently, when people performs an operation like rename, they are waiting for a refactor, not for the clean rename (if you look at eclipse, for instance, that's what you have when you rename a method or a class)... what has become quite uncommon is to perform the "non-refactored operation".
Of course we could have a place for that operation too, but since the "refactored one" is what people expects/uses, that has to be the one that will be easier to fetch.

Esteban

On Feb 20, 2013, at 11:25 AM, "[hidden email]" <[hidden email]> wrote:

> Yes, but the rename is *not* in the refactoring menu. It is *below*
> the refactoring menu.
> So, it is an unexpected refactoring in disguise...
>
> There was a simple rename in 1.4 I think. Maybe can we get that one
> back (in 3.0 of course...)
>
> Phil
>
> 2013/2/20 Fernando Olivero <[hidden email]>:
>> Hi, i had the same misconception once, but i recall Lukas pointed out
>> that the refactoring engine is built on the original refactoring's
>> from Fowler's book, and implemented in Smalltalk by Roberts and
>> Johnson [1].
>>
>> So the semantics of the refactoring are preserved in the implementation.
>>
>> If you just want a method rename, not a method refactoring rename,
>> maybe is best have an option for that in the menu [2].
>>
>>
>> Fernando
>>
>> [1] http://st-www.cs.illinois.edu/users/droberts/tapos.pdf
>> [2] or use a better widget for editing methods, than a simple code
>> editor within the pane of the browser, as in Gaucho..which i'm working
>> on.
>>
>> On Wed, Feb 20, 2013 at 11:03 AM, Esteban Lorenzano <[hidden email]> wrote:
>>> and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
>>> It is a small step, but is something... and well... we can improve in next releases, one step at a time :)
>>>
>>> Esteban
>>>
>>> On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:
>>>
>>>> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
>>>> is pretty common.
>>>>
>>>> What will happen is that people will remove the method and recreate a new one.
>>>> Version history will then go away.
>>>>
>>>> Or is the system smart enough to find out about these things?
>>>>
>>>> Phil
>>>>
>>>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>>>> hi,
>>>>>
>>>>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>>>>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>>>>
>>>>> cheers,
>>>>> Esteban
>>>>>
>>>>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>>>>
>>>>>> Well, look at the screenshot then tell me that this is what I want.
>>>>>>
>>>>>> It is definitively *not* what I want. Especially unchecking that
>>>>>> endless list of methods.
>>>>>>
>>>>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>>>>> would help...
>>>>>>
>>>>>> Regards
>>>>>> Phil
>>>>>>
>>>>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>>>>
>>>>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>>>>
>>>>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>>>>
>>>>>>> How about this reasoning:
>>>>>>>
>>>>>>> Rename method
>>>>>>> => rename all senders (since you refactor)
>>>>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>>>> otherwise you'll run for sure into a DNU
>>>>>>>
>>>>>>> I think I just convinced myself :D
>>>>>>>
>>>>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>>>>> change all classes with initialize. WTF?
>>>>>>>>
>>>>>>>> Phil
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> <PharoScreenshot.3.png>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

philippeback
In reply to this post by EstebanLM
Like in the top of the menu, along with a shortcut...

Now, Renaming a class exists in Refactoring>Class
Refactoring>Rename/Remove and also as Rename below the refactoring.

For method refactoring, there is not the rename in the refactorings menu.

So, all right, there is a whole slew of improvements possible in there
as "First Impressions Count".

So, how do I rename a method without refactorings?

I had a look at RBChangeMethodNameRefactoring>>renameImplementors
        self implementors do:
                        [:each |
                        | parseTree |
                        parseTree := each parseTreeFor: oldSelector.
                        parseTree isNil
                                ifTrue: [self refactoringFailure: 'Could not parse source code.'].
                        self implementorsCanBePrimitives
                                ifFalse:
                                        [parseTree isPrimitive
                                                ifTrue:
                                                        [self refactoringFailure: ('<1p>''s implementation of #<2s> is
a primitive'
                                                                                expandMacrosWith: each
                                                                                with: oldSelector)]].
                        self modifyImplementorParseTree: parseTree in: each.
                        (each methodFor: oldSelector) compileTree: parseTree]

but then saw: transform

        self renameImplementors.
        self renameMessageSends.
        self removeRenamedImplementors

Really so complicated for a rename? Is there any place to look at?

Phil

2013/2/20 Esteban Lorenzano <[hidden email]>:

> he... yeah, probably there are a lot of theory that says that you should have them in separated places or whatever.
> But in practice, people does refactors all the time and they need to have them close to their use, not lost in some paper-defined place :)
>
> Esteban
>
> On Feb 20, 2013, at 11:06 AM, Fernando Olivero <[hidden email]> wrote:
>
>> Hi, i had the same misconception once, but i recall Lukas pointed out
>> that the refactoring engine is built on the original refactoring's
>> from Fowler's book, and implemented in Smalltalk by Roberts and
>> Johnson [1].
>>
>> So the semantics of the refactoring are preserved in the implementation.
>>
>> If you just want a method rename, not a method refactoring rename,
>> maybe is best have an option for that in the menu [2].
>>
>>
>> Fernando
>>
>> [1] http://st-www.cs.illinois.edu/users/droberts/tapos.pdf
>> [2] or use a better widget for editing methods, than a simple code
>> editor within the pane of the browser, as in Gaucho..which i'm working
>> on.
>>
>> On Wed, Feb 20, 2013 at 11:03 AM, Esteban Lorenzano <[hidden email]> wrote:
>>> and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
>>> It is a small step, but is something... and well... we can improve in next releases, one step at a time :)
>>>
>>> Esteban
>>>
>>> On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:
>>>
>>>> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
>>>> is pretty common.
>>>>
>>>> What will happen is that people will remove the method and recreate a new one.
>>>> Version history will then go away.
>>>>
>>>> Or is the system smart enough to find out about these things?
>>>>
>>>> Phil
>>>>
>>>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>>>> hi,
>>>>>
>>>>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>>>>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>>>>
>>>>> cheers,
>>>>> Esteban
>>>>>
>>>>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>>>>
>>>>>> Well, look at the screenshot then tell me that this is what I want.
>>>>>>
>>>>>> It is definitively *not* what I want. Especially unchecking that
>>>>>> endless list of methods.
>>>>>>
>>>>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>>>>> would help...
>>>>>>
>>>>>> Regards
>>>>>> Phil
>>>>>>
>>>>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>>>>
>>>>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>>>>
>>>>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>>>>
>>>>>>> How about this reasoning:
>>>>>>>
>>>>>>> Rename method
>>>>>>> => rename all senders (since you refactor)
>>>>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>>>> otherwise you'll run for sure into a DNU
>>>>>>>
>>>>>>> I think I just convinced myself :D
>>>>>>>
>>>>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>>>>> change all classes with initialize. WTF?
>>>>>>>>
>>>>>>>> Phil
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> <PharoScreenshot.3.png>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

philippeback
In reply to this post by EstebanLM
Yes, usability matters. Especially to get traction with new people.

Alt-R,Alt-N is perfectly usable, no matter how deep it is in the
refactoring menu.

Refactoring fine for dealing with a codebase. Not so when dealing with
typos or removing methods from a path while at the same time not
really removing them (aka rename doThis to doThis_ temporarily for
example).

Phil

2013/2/20 Esteban Lorenzano <[hidden email]>:

> yes, but the debate is interesting, because is about usability... and we certainly need to improve a lot in that area.
> I think that currently, when people performs an operation like rename, they are waiting for a refactor, not for the clean rename (if you look at eclipse, for instance, that's what you have when you rename a method or a class)... what has become quite uncommon is to perform the "non-refactored operation".
> Of course we could have a place for that operation too, but since the "refactored one" is what people expects/uses, that has to be the one that will be easier to fetch.
>
> Esteban
>
> On Feb 20, 2013, at 11:25 AM, "[hidden email]" <[hidden email]> wrote:
>
>> Yes, but the rename is *not* in the refactoring menu. It is *below*
>> the refactoring menu.
>> So, it is an unexpected refactoring in disguise...
>>
>> There was a simple rename in 1.4 I think. Maybe can we get that one
>> back (in 3.0 of course...)
>>
>> Phil
>>
>> 2013/2/20 Fernando Olivero <[hidden email]>:
>>> Hi, i had the same misconception once, but i recall Lukas pointed out
>>> that the refactoring engine is built on the original refactoring's
>>> from Fowler's book, and implemented in Smalltalk by Roberts and
>>> Johnson [1].
>>>
>>> So the semantics of the refactoring are preserved in the implementation.
>>>
>>> If you just want a method rename, not a method refactoring rename,
>>> maybe is best have an option for that in the menu [2].
>>>
>>>
>>> Fernando
>>>
>>> [1] http://st-www.cs.illinois.edu/users/droberts/tapos.pdf
>>> [2] or use a better widget for editing methods, than a simple code
>>> editor within the pane of the browser, as in Gaucho..which i'm working
>>> on.
>>>
>>> On Wed, Feb 20, 2013 at 11:03 AM, Esteban Lorenzano <[hidden email]> wrote:
>>>> and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
>>>> It is a small step, but is something... and well... we can improve in next releases, one step at a time :)
>>>>
>>>> Esteban
>>>>
>>>> On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:
>>>>
>>>>> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
>>>>> is pretty common.
>>>>>
>>>>> What will happen is that people will remove the method and recreate a new one.
>>>>> Version history will then go away.
>>>>>
>>>>> Or is the system smart enough to find out about these things?
>>>>>
>>>>> Phil
>>>>>
>>>>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>>>>> hi,
>>>>>>
>>>>>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>>>>>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>>>>>
>>>>>> cheers,
>>>>>> Esteban
>>>>>>
>>>>>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>>>>>
>>>>>>> Well, look at the screenshot then tell me that this is what I want.
>>>>>>>
>>>>>>> It is definitively *not* what I want. Especially unchecking that
>>>>>>> endless list of methods.
>>>>>>>
>>>>>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>>>>>> would help...
>>>>>>>
>>>>>>> Regards
>>>>>>> Phil
>>>>>>>
>>>>>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>>>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>>>>>
>>>>>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>>>>>
>>>>>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>>>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>>>>>
>>>>>>>> How about this reasoning:
>>>>>>>>
>>>>>>>> Rename method
>>>>>>>> => rename all senders (since you refactor)
>>>>>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>>>>> otherwise you'll run for sure into a DNU
>>>>>>>>
>>>>>>>> I think I just convinced myself :D
>>>>>>>>
>>>>>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>>>>>> change all classes with initialize. WTF?
>>>>>>>>>
>>>>>>>>> Phil
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> <PharoScreenshot.3.png>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

Benjamin Van Ryseghem (Pharo)
There is actually no simple way to simply rename a method.
We should maybe add one which keep track of the versions :) 

Historically (even if it sounds wrong today) you create a new method, 
and delete the old one (and indeed this is disturbing for new comers ^^)

I really think that both usage are valid even if I think that most of the time, 
you want to do a refactoring while renaming :)

Let's release Pharo 2.0, and then we will have fun experimenting this ^^

Ben

On Feb 20, 2013, at 11:45 AM, [hidden email] wrote:

Yes, usability matters. Especially to get traction with new people.

Alt-R,Alt-N is perfectly usable, no matter how deep it is in the
refactoring menu.

Refactoring fine for dealing with a codebase. Not so when dealing with
typos or removing methods from a path while at the same time not
really removing them (aka rename doThis to doThis_ temporarily for
example).

Phil

2013/2/20 Esteban Lorenzano <[hidden email]>:
yes, but the debate is interesting, because is about usability... and we certainly need to improve a lot in that area.
I think that currently, when people performs an operation like rename, they are waiting for a refactor, not for the clean rename (if you look at eclipse, for instance, that's what you have when you rename a method or a class)... what has become quite uncommon is to perform the "non-refactored operation".
Of course we could have a place for that operation too, but since the "refactored one" is what people expects/uses, that has to be the one that will be easier to fetch.

Esteban

On Feb 20, 2013, at 11:25 AM, "[hidden email]" <[hidden email]> wrote:

Yes, but the rename is *not* in the refactoring menu. It is *below*
the refactoring menu.
So, it is an unexpected refactoring in disguise...

There was a simple rename in 1.4 I think. Maybe can we get that one
back (in 3.0 of course...)

Phil

2013/2/20 Fernando Olivero <[hidden email]>:
Hi, i had the same misconception once, but i recall Lukas pointed out
that the refactoring engine is built on the original refactoring's
from Fowler's book, and implemented in Smalltalk by Roberts and
Johnson [1].

So the semantics of the refactoring are preserved in the implementation.

If you just want a method rename, not a method refactoring rename,
maybe is best have an option for that in the menu [2].


Fernando

[1] http://st-www.cs.illinois.edu/users/droberts/tapos.pdf
[2] or use a better widget for editing methods, than a simple code
editor within the pane of the browser, as in Gaucho..which i'm working
on.

On Wed, Feb 20, 2013 at 11:03 AM, Esteban Lorenzano <[hidden email]> wrote:
and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
It is a small step, but is something... and well... we can improve in next releases, one step at a time :)

Esteban

On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:

Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
is pretty common.

What will happen is that people will remove the method and recreate a new one.
Version history will then go away.

Or is the system smart enough to find out about these things?

Phil

2013/2/20 Esteban Lorenzano <[hidden email]>:
hi,

yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.

cheers,
Esteban

On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:

Well, look at the screenshot then tell me that this is what I want.

It is definitively *not* what I want. Especially unchecking that
endless list of methods.

Adding a "Uncheck all" "Check all" button to the Changes Browser list
would help...

Regards
Phil

2013/2/20 Camillo Bruni <[hidden email]>:
there is 1 certain bug, that is that you cannot see the changes of the refactoring:

https://code.google.com/p/pharo/issues/detail?id=7547

the rest I would consider a bug as well. But in the terms of refactoring it might
be "valid". It does preserve behavior by renaming also all implementors.

How about this reasoning:

Rename method
=> rename all senders (since you refactor)
=> you have to rename all implementors as well since you renamed all send sites
otherwise you'll run for sure into a DNU

I think I just convinced myself :D

On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
I was doing a Refactoring>rename of the initialize method in Nautilus
for the ClassMethodBrowser and then the changes browser proposed me to
change all classes with initialize. WTF?

Phil



<PharoScreenshot.3.png>











Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

Ben Coman
For 2.0 could the menu item be changed from 'Rename' to  'Rename All' ?

That should satisfy the Principle Of Least Surprise
and be sufficient avoid newcomer going...
"I've heard Pharo is cool - oh! a new release, I'll try it - Rename -
WTF - DELETE!!!!!"
Perhaps exaggerating but is possible.

2.0 should not be held up by small last minute issues, but if the
changing the menu item is quick to implement...

Also, could these last minute UI issues that don't break an API be
targeted at 2.1 rather than 3.0.

cheers -Ben




Benjamin wrote:

> There is actually no simple way to simply rename a method.
> We should maybe add one which keep track of the versions :)
>
> Historically (even if it sounds wrong today) you create a new method,
> and delete the old one (and indeed this is disturbing for new comers ^^)
>
> I really think that both usage are valid even if I think that most of the time,
> you want to do a refactoring while renaming :)
>
> Let's release Pharo 2.0, and then we will have fun experimenting this ^^
>
> Ben
>
> On Feb 20, 2013, at 11:45 AM, [hidden email] wrote:
>
>  
>> Yes, usability matters. Especially to get traction with new people.
>>
>> Alt-R,Alt-N is perfectly usable, no matter how deep it is in the
>> refactoring menu.
>>
>> Refactoring fine for dealing with a codebase. Not so when dealing with
>> typos or removing methods from a path while at the same time not
>> really removing them (aka rename doThis to doThis_ temporarily for
>> example).
>>
>> Phil
>>
>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>    
>>> yes, but the debate is interesting, because is about usability... and we certainly need to improve a lot in that area.
>>> I think that currently, when people performs an operation like rename, they are waiting for a refactor, not for the clean rename (if you look at eclipse, for instance, that's what you have when you rename a method or a class)... what has become quite uncommon is to perform the "non-refactored operation".
>>> Of course we could have a place for that operation too, but since the "refactored one" is what people expects/uses, that has to be the one that will be easier to fetch.
>>>
>>> Esteban
>>>
>>> On Feb 20, 2013, at 11:25 AM, "[hidden email]" <[hidden email]> wrote:
>>>
>>>      
>>>> Yes, but the rename is *not* in the refactoring menu. It is *below*
>>>> the refactoring menu.
>>>> So, it is an unexpected refactoring in disguise...
>>>>
>>>> There was a simple rename in 1.4 I think. Maybe can we get that one
>>>> back (in 3.0 of course...)
>>>>
>>>> Phil
>>>>
>>>> 2013/2/20 Fernando Olivero <[hidden email]>:
>>>>        
>>>>> Hi, i had the same misconception once, but i recall Lukas pointed out
>>>>> that the refactoring engine is built on the original refactoring's
>>>>> from Fowler's book, and implemented in Smalltalk by Roberts and
>>>>> Johnson [1].
>>>>>
>>>>> So the semantics of the refactoring are preserved in the implementation.
>>>>>
>>>>> If you just want a method rename, not a method refactoring rename,
>>>>> maybe is best have an option for that in the menu [2].
>>>>>
>>>>>
>>>>> Fernando
>>>>>
>>>>> [1] http://st-www.cs.illinois.edu/users/droberts/tapos.pdf
>>>>> [2] or use a better widget for editing methods, than a simple code
>>>>> editor within the pane of the browser, as in Gaucho..which i'm working
>>>>> on.
>>>>>
>>>>> On Wed, Feb 20, 2013 at 11:03 AM, Esteban Lorenzano <[hidden email]> wrote:
>>>>>          
>>>>>> and you are right, scoped browsing is a very powerful feature that can be tricky to newcomers... but at least now with nautilus it is there, as first option (in OB it was there, but more or less hidden in a submenu)...
>>>>>> It is a small step, but is something... and well... we can improve in next releases, one step at a time :)
>>>>>>
>>>>>> Esteban
>>>>>>
>>>>>> On Feb 20, 2013, at 10:52 AM, "[hidden email]" <[hidden email]> wrote:
>>>>>>
>>>>>>            
>>>>>>> Yes, thanks, I figured that out. A newcomer wouldn't... and renaming
>>>>>>> is pretty common.
>>>>>>>
>>>>>>> What will happen is that people will remove the method and recreate a new one.
>>>>>>> Version history will then go away.
>>>>>>>
>>>>>>> Or is the system smart enough to find out about these things?
>>>>>>>
>>>>>>> Phil
>>>>>>>
>>>>>>> 2013/2/20 Esteban Lorenzano <[hidden email]>:
>>>>>>>              
>>>>>>>> hi,
>>>>>>>>
>>>>>>>> yes, you are right.. but that is a "nice to have", not a bug... so it will wait to 3.0 :)
>>>>>>>> In the mean time, you can do a scoped rename: you select the packages you want, then right click and "browse scoped", then you apply you rename, and it will apply the refactor in the scoped selection, not all the image.
>>>>>>>>
>>>>>>>> cheers,
>>>>>>>> Esteban
>>>>>>>>
>>>>>>>> On Feb 20, 2013, at 10:21 AM, "[hidden email]" <[hidden email]> wrote:
>>>>>>>>
>>>>>>>>                
>>>>>>>>> Well, look at the screenshot then tell me that this is what I want.
>>>>>>>>>
>>>>>>>>> It is definitively *not* what I want. Especially unchecking that
>>>>>>>>> endless list of methods.
>>>>>>>>>
>>>>>>>>> Adding a "Uncheck all" "Check all" button to the Changes Browser list
>>>>>>>>> would help...
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> Phil
>>>>>>>>>
>>>>>>>>> 2013/2/20 Camillo Bruni <[hidden email]>:
>>>>>>>>>                  
>>>>>>>>>> there is 1 certain bug, that is that you cannot see the changes of the refactoring:
>>>>>>>>>>
>>>>>>>>>> https://code.google.com/p/pharo/issues/detail?id=7547
>>>>>>>>>>
>>>>>>>>>> the rest I would consider a bug as well. But in the terms of refactoring it might
>>>>>>>>>> be "valid". It does preserve behavior by renaming also all implementors.
>>>>>>>>>>
>>>>>>>>>> How about this reasoning:
>>>>>>>>>>
>>>>>>>>>> Rename method
>>>>>>>>>> => rename all senders (since you refactor)
>>>>>>>>>> => you have to rename all implementors as well since you renamed all send sites
>>>>>>>>>> otherwise you'll run for sure into a DNU
>>>>>>>>>>
>>>>>>>>>> I think I just convinced myself :D
>>>>>>>>>>
>>>>>>>>>> On 2013-02-20, at 09:26, "[hidden email]" <[hidden email]> wrote:
>>>>>>>>>>                    
>>>>>>>>>>> I was doing a Refactoring>rename of the initialize method in Nautilus
>>>>>>>>>>> for the ClassMethodBrowser and then the changes browser proposed me to
>>>>>>>>>>> change all classes with initialize. WTF?
>>>>>>>>>>>
>>>>>>>>>>> Phil
>>>>>>>>>>>
>>>>>>>>>>>                      
>>>>>>>>>>                    
>>>>>>>>> <PharoScreenshot.3.png>
>>>>>>>>>                  
>>>>>>>>                
>>>>>>            
>>>      
>
>
>  


Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

Marcus Denker-4

On Feb 20, 2013, at 2:57 PM, Ben Coman <[hidden email]> wrote:

> For 2.0 could the menu item be changed from 'Rename' to  'Rename All' ?
>
> That should satisfy the Principle Of Least Surprise
> and be sufficient avoid newcomer going...
> "I've heard Pharo is cool - oh! a new release, I'll try it - Rename - WTF - DELETE!!!!!"
> Perhaps exaggerating but is possible.
>

As I said, If you argue on that level, we can never build something that we can release.
There are (my estimation) 20.000 issues like that that we would need to fix.

        Marcus
Reply | Threaded
Open this post in threaded view
|

Re: Weird behavior in Nautilus when doing a method rename

philippeback
Now, 19.999 left.

http://code.google.com/p/pharo/issues/detail?id=7554
Slice in inbox.

Phil

2013/2/20 Marcus Denker <[hidden email]>:

>
> On Feb 20, 2013, at 2:57 PM, Ben Coman <[hidden email]> wrote:
>
>> For 2.0 could the menu item be changed from 'Rename' to  'Rename All' ?
>>
>> That should satisfy the Principle Of Least Surprise
>> and be sufficient avoid newcomer going...
>> "I've heard Pharo is cool - oh! a new release, I'll try it - Rename - WTF - DELETE!!!!!"
>> Perhaps exaggerating but is possible.
>>
>
> As I said, If you argue on that level, we can never build something that we can release.
> There are (my estimation) 20.000 issues like that that we would need to fix.
>
>         Marcus

12