Find/Replace class scoped

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

Find/Replace class scoped

Vitor Medina Cruz
Hello,

Is there a way to make find replace in a class scoped way? I can do that with finder, but I figured only with package scoping. I wanna to change the name of a variable in multiple methods, and also I would like to regex replace an expression also in multiple methods.

Regards,
Vitor
Reply | Threaded
Open this post in threaded view
|

Re: Find/Replace class scoped

Vitor Medina Cruz
Well, as it seems, there is no way of find/replacing other than inside a single method.

As a workaround, I did the following:

1- Committed all my image work in progress;
2- Opened the project structure in an external tool (notepad++ in this case) and did the find/replace there;
3- Committed it using git command line;
4- Back to the image, I did a repair repository from iceberg checking out and ignoring changes to the image (safe because I did commit everything before)

If there are many places to change, it is worth.

Regards,
Vitor

On Tue, May 19, 2020 at 12:56 PM Vitor Medina Cruz <[hidden email]> wrote:
Hello,

Is there a way to make find replace in a class scoped way? I can do that with finder, but I figured only with package scoping. I wanna to change the name of a variable in multiple methods, and also I would like to regex replace an expression also in multiple methods.

Regards,
Vitor
Reply | Threaded
Open this post in threaded view
|

Re: Find/Replace class scoped

Thierry Goubier
Hi Vitor,

as a matter of fact, the infrastructure for doing what you're looking
for is already there.

The algorithm is the following:

- create a scope (something based on RBBrowserEnvironment, such as
RBClassEnvironment or based on regexes and AND / OR operations:
RBAndEnvironment, RBNotEnvironment, which allows for virtually
anything, such as all #printString methods in the package X that do
not belong to class Y)

- create a refactoring command: if it is not a pre-existing command
such as rename class, etc..., then writing a pattern matcher is
possible with RBTreeRewriter.

- execute the refactoring command on the environment, changing only
for the subset of code visible in the environment.

Normally, the system browser or the search tools should automatically
setup the environment for you, and scope accordingly most of the
refactoring commands. As far as I know, there isn't yet a shell giving
you the full pattern matching rewrite power, but some work was
underway (GUI tools).

Going with the source files as you did also work...

Regards,

Thierry

Le jeu. 21 mai 2020 à 15:30, Vitor Medina Cruz <[hidden email]> a écrit :

>
> Well, as it seems, there is no way of find/replacing other than inside a single method.
>
> As a workaround, I did the following:
>
> 1- Committed all my image work in progress;
> 2- Opened the project structure in an external tool (notepad++ in this case) and did the find/replace there;
> 3- Committed it using git command line;
> 4- Back to the image, I did a repair repository from iceberg checking out and ignoring changes to the image (safe because I did commit everything before)
>
> If there are many places to change, it is worth.
>
> Regards,
> Vitor
>
> On Tue, May 19, 2020 at 12:56 PM Vitor Medina Cruz <[hidden email]> wrote:
>>
>> Hello,
>>
>> Is there a way to make find replace in a class scoped way? I can do that with finder, but I figured only with package scoping. I wanna to change the name of a variable in multiple methods, and also I would like to regex replace an expression also in multiple methods.
>>
>> Regards,
>> Vitor

Reply | Threaded
Open this post in threaded view
|

Re: Find/Replace class scoped

Vitor Medina Cruz
Interesting, I will have a look at it.

On Thu, May 21, 2020 at 11:52 AM Thierry Goubier <[hidden email]> wrote:
Hi Vitor,

as a matter of fact, the infrastructure for doing what you're looking
for is already there.

The algorithm is the following:

- create a scope (something based on RBBrowserEnvironment, such as
RBClassEnvironment or based on regexes and AND / OR operations:
RBAndEnvironment, RBNotEnvironment, which allows for virtually
anything, such as all #printString methods in the package X that do
not belong to class Y)

- create a refactoring command: if it is not a pre-existing command
such as rename class, etc..., then writing a pattern matcher is
possible with RBTreeRewriter.

- execute the refactoring command on the environment, changing only
for the subset of code visible in the environment.

Normally, the system browser or the search tools should automatically
setup the environment for you, and scope accordingly most of the
refactoring commands. As far as I know, there isn't yet a shell giving
you the full pattern matching rewrite power, but some work was
underway (GUI tools).

Going with the source files as you did also work...

Regards,

Thierry

Le jeu. 21 mai 2020 à 15:30, Vitor Medina Cruz <[hidden email]> a écrit :
>
> Well, as it seems, there is no way of find/replacing other than inside a single method.
>
> As a workaround, I did the following:
>
> 1- Committed all my image work in progress;
> 2- Opened the project structure in an external tool (notepad++ in this case) and did the find/replace there;
> 3- Committed it using git command line;
> 4- Back to the image, I did a repair repository from iceberg checking out and ignoring changes to the image (safe because I did commit everything before)
>
> If there are many places to change, it is worth.
>
> Regards,
> Vitor
>
> On Tue, May 19, 2020 at 12:56 PM Vitor Medina Cruz <[hidden email]> wrote:
>>
>> Hello,
>>
>> Is there a way to make find replace in a class scoped way? I can do that with finder, but I figured only with package scoping. I wanna to change the name of a variable in multiple methods, and also I would like to regex replace an expression also in multiple methods.
>>
>> Regards,
>> Vitor

Reply | Threaded
Open this post in threaded view
|

Re: Find/Replace class scoped

Stéphane Ducasse
we are working with sebastian jordan on a better rewriter.

S. 

On 21 May 2020, at 17:17, Vitor Medina Cruz <[hidden email]> wrote:

Interesting, I will have a look at it.

On Thu, May 21, 2020 at 11:52 AM Thierry Goubier <[hidden email]> wrote:
Hi Vitor,

as a matter of fact, the infrastructure for doing what you're looking
for is already there.

The algorithm is the following:

- create a scope (something based on RBBrowserEnvironment, such as
RBClassEnvironment or based on regexes and AND / OR operations:
RBAndEnvironment, RBNotEnvironment, which allows for virtually
anything, such as all #printString methods in the package X that do
not belong to class Y)

- create a refactoring command: if it is not a pre-existing command
such as rename class, etc..., then writing a pattern matcher is
possible with RBTreeRewriter.

- execute the refactoring command on the environment, changing only
for the subset of code visible in the environment.

Normally, the system browser or the search tools should automatically
setup the environment for you, and scope accordingly most of the
refactoring commands. As far as I know, there isn't yet a shell giving
you the full pattern matching rewrite power, but some work was
underway (GUI tools).

Going with the source files as you did also work...

Regards,

Thierry

Le jeu. 21 mai 2020 à 15:30, Vitor Medina Cruz <[hidden email]> a écrit :
>
> Well, as it seems, there is no way of find/replacing other than inside a single method.
>
> As a workaround, I did the following:
>
> 1- Committed all my image work in progress;
> 2- Opened the project structure in an external tool (notepad++ in this case) and did the find/replace there;
> 3- Committed it using git command line;
> 4- Back to the image, I did a repair repository from iceberg checking out and ignoring changes to the image (safe because I did commit everything before)
>
> If there are many places to change, it is worth.
>
> Regards,
> Vitor
>
> On Tue, May 19, 2020 at 12:56 PM Vitor Medina Cruz <[hidden email]> wrote:
>>
>> Hello,
>>
>> Is there a way to make find replace in a class scoped way? I can do that with finder, but I figured only with package scoping. I wanna to change the name of a variable in multiple methods, and also I would like to regex replace an expression also in multiple methods.
>>
>> Regards,
>> Vitor


--------------------------------------------
Stéphane Ducasse
03 59 35 87 52
Assistant: Aurore Dalle 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France

Reply | Threaded
Open this post in threaded view
|

Re: Find/Replace class scoped

Vitor Medina Cruz
Will wait then.

I tried to use the RB classes but with no success. There are few docs and test code are hard to understand (still not sure if I should use transform ou primitiveExecute). I did this:

(RBRenameMethodRefactoring new
    renameMethod: #with:doThis:
    in: RefactoringReformatExample
    to: #withh:doThis:
    permutation: #(1 2)) primitiveExecute

and

(RBRenameMethodRefactoring new
    renameMethod: #with:doThis:
    in: RefactoringReformatExample
    to: #withh:doThis:
    permutation: #(1 2)) tranform

but nothing happens... It is really odd, I expected an error at least.

I am assuming permutation means the change of params order.


On Fri, May 22, 2020 at 3:50 AM Stéphane Ducasse <[hidden email]> wrote:
we are working with sebastian jordan on a better rewriter.

S. 

On 21 May 2020, at 17:17, Vitor Medina Cruz <[hidden email]> wrote:

Interesting, I will have a look at it.

On Thu, May 21, 2020 at 11:52 AM Thierry Goubier <[hidden email]> wrote:
Hi Vitor,

as a matter of fact, the infrastructure for doing what you're looking
for is already there.

The algorithm is the following:

- create a scope (something based on RBBrowserEnvironment, such as
RBClassEnvironment or based on regexes and AND / OR operations:
RBAndEnvironment, RBNotEnvironment, which allows for virtually
anything, such as all #printString methods in the package X that do
not belong to class Y)

- create a refactoring command: if it is not a pre-existing command
such as rename class, etc..., then writing a pattern matcher is
possible with RBTreeRewriter.

- execute the refactoring command on the environment, changing only
for the subset of code visible in the environment.

Normally, the system browser or the search tools should automatically
setup the environment for you, and scope accordingly most of the
refactoring commands. As far as I know, there isn't yet a shell giving
you the full pattern matching rewrite power, but some work was
underway (GUI tools).

Going with the source files as you did also work...

Regards,

Thierry

Le jeu. 21 mai 2020 à 15:30, Vitor Medina Cruz <[hidden email]> a écrit :
>
> Well, as it seems, there is no way of find/replacing other than inside a single method.
>
> As a workaround, I did the following:
>
> 1- Committed all my image work in progress;
> 2- Opened the project structure in an external tool (notepad++ in this case) and did the find/replace there;
> 3- Committed it using git command line;
> 4- Back to the image, I did a repair repository from iceberg checking out and ignoring changes to the image (safe because I did commit everything before)
>
> If there are many places to change, it is worth.
>
> Regards,
> Vitor
>
> On Tue, May 19, 2020 at 12:56 PM Vitor Medina Cruz <[hidden email]> wrote:
>>
>> Hello,
>>
>> Is there a way to make find replace in a class scoped way? I can do that with finder, but I figured only with package scoping. I wanna to change the name of a variable in multiple methods, and also I would like to regex replace an expression also in multiple methods.
>>
>> Regards,
>> Vitor


--------------------------------------------
Stéphane Ducasse
03 59 35 87 52
Assistant: Aurore Dalle 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France

Reply | Threaded
Open this post in threaded view
|

Re: Find/Replace class scoped

Thierry Goubier
Hi Vitor,

I got it to work (integrated it as a command into my IDE, and wrote
the auto-detect part for the permutation), with the following
algorithm (I've removed the IDE-specific part):

| aClass aSel newSel ast aMap |
aClass := RefactoringReformatExample.
aSel := #with:doThis:
newSel := UIManager default
        request: 'Enter the new selector and arguments'
        initialAnswer: (aClass >> aSel) ast selectorAndArgumentNames.
    (newSel isNil or: [ newSel isEmpty ])
        ifTrue: [ self inform: 'Cancelled'.
            ^ self ].
    ast := aClass compiler parse: newSel.
    aMap := ast argumentNames
        collect: [ :e |
            (aClass >> aSel) ast argumentNames
                indexOf: e
                ifAbsent: [ self error: 'Incorrect argument name: ' , e.
                    ^ self ] ].
            (RBRenameMethodRefactoring
                renameMethod: aSelector
                in: aClass
                to: ast selector
                permutation: aMap) execute

If your initial method is 'with: arg1 doThis: arg2', you write the new
selector as 'doThis: arg2 with: arg1' and it will pick up the
permutation map for you.

Thierry

Le mar. 26 mai 2020 à 17:05, Vitor Medina Cruz <[hidden email]> a écrit :

>
> Will wait then.
>
> I tried to use the RB classes but with no success. There are few docs and test code are hard to understand (still not sure if I should use transform ou primitiveExecute). I did this:
>
> (RBRenameMethodRefactoring new
>     renameMethod: #with:doThis:
>     in: RefactoringReformatExample
>     to: #withh:doThis:
>     permutation: #(1 2)) primitiveExecute
>
> and
>
> (RBRenameMethodRefactoring new
>     renameMethod: #with:doThis:
>     in: RefactoringReformatExample
>     to: #withh:doThis:
>     permutation: #(1 2)) tranform
>
> but nothing happens... It is really odd, I expected an error at least.
>
> I am assuming permutation means the change of params order.
>
>
> On Fri, May 22, 2020 at 3:50 AM Stéphane Ducasse <[hidden email]> wrote:
>>
>> we are working with sebastian jordan on a better rewriter.
>>
>> S.
>>
>> On 21 May 2020, at 17:17, Vitor Medina Cruz <[hidden email]> wrote:
>>
>> Interesting, I will have a look at it.
>>
>> On Thu, May 21, 2020 at 11:52 AM Thierry Goubier <[hidden email]> wrote:
>>>
>>> Hi Vitor,
>>>
>>> as a matter of fact, the infrastructure for doing what you're looking
>>> for is already there.
>>>
>>> The algorithm is the following:
>>>
>>> - create a scope (something based on RBBrowserEnvironment, such as
>>> RBClassEnvironment or based on regexes and AND / OR operations:
>>> RBAndEnvironment, RBNotEnvironment, which allows for virtually
>>> anything, such as all #printString methods in the package X that do
>>> not belong to class Y)
>>>
>>> - create a refactoring command: if it is not a pre-existing command
>>> such as rename class, etc..., then writing a pattern matcher is
>>> possible with RBTreeRewriter.
>>>
>>> - execute the refactoring command on the environment, changing only
>>> for the subset of code visible in the environment.
>>>
>>> Normally, the system browser or the search tools should automatically
>>> setup the environment for you, and scope accordingly most of the
>>> refactoring commands. As far as I know, there isn't yet a shell giving
>>> you the full pattern matching rewrite power, but some work was
>>> underway (GUI tools).
>>>
>>> Going with the source files as you did also work...
>>>
>>> Regards,
>>>
>>> Thierry
>>>
>>> Le jeu. 21 mai 2020 à 15:30, Vitor Medina Cruz <[hidden email]> a écrit :
>>> >
>>> > Well, as it seems, there is no way of find/replacing other than inside a single method.
>>> >
>>> > As a workaround, I did the following:
>>> >
>>> > 1- Committed all my image work in progress;
>>> > 2- Opened the project structure in an external tool (notepad++ in this case) and did the find/replace there;
>>> > 3- Committed it using git command line;
>>> > 4- Back to the image, I did a repair repository from iceberg checking out and ignoring changes to the image (safe because I did commit everything before)
>>> >
>>> > If there are many places to change, it is worth.
>>> >
>>> > Regards,
>>> > Vitor
>>> >
>>> > On Tue, May 19, 2020 at 12:56 PM Vitor Medina Cruz <[hidden email]> wrote:
>>> >>
>>> >> Hello,
>>> >>
>>> >> Is there a way to make find replace in a class scoped way? I can do that with finder, but I figured only with package scoping. I wanna to change the name of a variable in multiple methods, and also I would like to regex replace an expression also in multiple methods.
>>> >>
>>> >> Regards,
>>> >> Vitor
>>>
>>
>> --------------------------------------------
>> Stéphane Ducasse
>> http://stephane.ducasse.free.fr / http://www.pharo.org
>> 03 59 35 87 52
>> Assistant: Aurore Dalle
>> FAX 03 59 57 78 50
>> TEL 03 59 35 86 16
>> S. Ducasse - Inria
>> 40, avenue Halley,
>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>> Villeneuve d'Ascq 59650
>> France
>>

Reply | Threaded
Open this post in threaded view
|

Re: Find/Replace class scoped

Vitor Medina Cruz
Oh! Thanks!! So the correct message to send is execute. The transform actually do nothing, it only stores the changes that are executed by the RBRefactoryChangeManager.

On Wed, May 27, 2020 at 6:27 AM Thierry Goubier <[hidden email]> wrote:
Hi Vitor,

I got it to work (integrated it as a command into my IDE, and wrote
the auto-detect part for the permutation), with the following
algorithm (I've removed the IDE-specific part):

| aClass aSel newSel ast aMap |
aClass := RefactoringReformatExample.
aSel := #with:doThis:
newSel := UIManager default
        request: 'Enter the new selector and arguments'
        initialAnswer: (aClass >> aSel) ast selectorAndArgumentNames.
    (newSel isNil or: [ newSel isEmpty ])
        ifTrue: [ self inform: 'Cancelled'.
            ^ self ].
    ast := aClass compiler parse: newSel.
    aMap := ast argumentNames
        collect: [ :e |
            (aClass >> aSel) ast argumentNames
                indexOf: e
                ifAbsent: [ self error: 'Incorrect argument name: ' , e.
                    ^ self ] ].
            (RBRenameMethodRefactoring
                renameMethod: aSelector
                in: aClass
                to: ast selector
                permutation: aMap) execute

If your initial method is 'with: arg1 doThis: arg2', you write the new
selector as 'doThis: arg2 with: arg1' and it will pick up the
permutation map for you.

Thierry

Le mar. 26 mai 2020 à 17:05, Vitor Medina Cruz <[hidden email]> a écrit :
>
> Will wait then.
>
> I tried to use the RB classes but with no success. There are few docs and test code are hard to understand (still not sure if I should use transform ou primitiveExecute). I did this:
>
> (RBRenameMethodRefactoring new
>     renameMethod: #with:doThis:
>     in: RefactoringReformatExample
>     to: #withh:doThis:
>     permutation: #(1 2)) primitiveExecute
>
> and
>
> (RBRenameMethodRefactoring new
>     renameMethod: #with:doThis:
>     in: RefactoringReformatExample
>     to: #withh:doThis:
>     permutation: #(1 2)) tranform
>
> but nothing happens... It is really odd, I expected an error at least.
>
> I am assuming permutation means the change of params order.
>
>
> On Fri, May 22, 2020 at 3:50 AM Stéphane Ducasse <[hidden email]> wrote:
>>
>> we are working with sebastian jordan on a better rewriter.
>>
>> S.
>>
>> On 21 May 2020, at 17:17, Vitor Medina Cruz <[hidden email]> wrote:
>>
>> Interesting, I will have a look at it.
>>
>> On Thu, May 21, 2020 at 11:52 AM Thierry Goubier <[hidden email]> wrote:
>>>
>>> Hi Vitor,
>>>
>>> as a matter of fact, the infrastructure for doing what you're looking
>>> for is already there.
>>>
>>> The algorithm is the following:
>>>
>>> - create a scope (something based on RBBrowserEnvironment, such as
>>> RBClassEnvironment or based on regexes and AND / OR operations:
>>> RBAndEnvironment, RBNotEnvironment, which allows for virtually
>>> anything, such as all #printString methods in the package X that do
>>> not belong to class Y)
>>>
>>> - create a refactoring command: if it is not a pre-existing command
>>> such as rename class, etc..., then writing a pattern matcher is
>>> possible with RBTreeRewriter.
>>>
>>> - execute the refactoring command on the environment, changing only
>>> for the subset of code visible in the environment.
>>>
>>> Normally, the system browser or the search tools should automatically
>>> setup the environment for you, and scope accordingly most of the
>>> refactoring commands. As far as I know, there isn't yet a shell giving
>>> you the full pattern matching rewrite power, but some work was
>>> underway (GUI tools).
>>>
>>> Going with the source files as you did also work...
>>>
>>> Regards,
>>>
>>> Thierry
>>>
>>> Le jeu. 21 mai 2020 à 15:30, Vitor Medina Cruz <[hidden email]> a écrit :
>>> >
>>> > Well, as it seems, there is no way of find/replacing other than inside a single method.
>>> >
>>> > As a workaround, I did the following:
>>> >
>>> > 1- Committed all my image work in progress;
>>> > 2- Opened the project structure in an external tool (notepad++ in this case) and did the find/replace there;
>>> > 3- Committed it using git command line;
>>> > 4- Back to the image, I did a repair repository from iceberg checking out and ignoring changes to the image (safe because I did commit everything before)
>>> >
>>> > If there are many places to change, it is worth.
>>> >
>>> > Regards,
>>> > Vitor
>>> >
>>> > On Tue, May 19, 2020 at 12:56 PM Vitor Medina Cruz <[hidden email]> wrote:
>>> >>
>>> >> Hello,
>>> >>
>>> >> Is there a way to make find replace in a class scoped way? I can do that with finder, but I figured only with package scoping. I wanna to change the name of a variable in multiple methods, and also I would like to regex replace an expression also in multiple methods.
>>> >>
>>> >> Regards,
>>> >> Vitor
>>>
>>
>> --------------------------------------------
>> Stéphane Ducasse
>> http://stephane.ducasse.free.fr / http://www.pharo.org
>> 03 59 35 87 52
>> Assistant: Aurore Dalle
>> FAX 03 59 57 78 50
>> TEL 03 59 35 86 16
>> S. Ducasse - Inria
>> 40, avenue Halley,
>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>> Villeneuve d'Ascq 59650
>> France
>>

Reply | Threaded
Open this post in threaded view
|

Re: Find/Replace class scoped

Paul DeBruicker
In reply to this post by Vitor Medina Cruz


Try #execute rather than #primitiveExecute





Vitor Medina Cruz wrote

> Will wait then.
>
> I tried to use the RB classes but with no success. There are few docs and
> test code are hard to understand (still not sure if I should use transform
> ou primitiveExecute). I did this:
>
> (RBRenameMethodRefactoring new
>     renameMethod: #with:doThis:
>     in: RefactoringReformatExample
>     to: #withh:doThis:
>     permutation: #(1 2)) primitiveExecute
>
> and
>
> (RBRenameMethodRefactoring new
>     renameMethod: #with:doThis:
>     in: RefactoringReformatExample
>     to: #withh:doThis:
>     permutation: #(1 2)) tranform
>
> but nothing happens... It is really odd, I expected an error at least.
>
> I am assuming permutation means the change of params order.
>
>
> On Fri, May 22, 2020 at 3:50 AM Stéphane Ducasse &lt;

> stephane.ducasse@

> &gt;
> wrote:
>
>> we are working with sebastian jordan on a better rewriter.
>>
>> S.
>>
>> On 21 May 2020, at 17:17, Vitor Medina Cruz &lt;

> vitormcruz@

> &gt; wrote:
>>
>> Interesting, I will have a look at it.
>>
>> On Thu, May 21, 2020 at 11:52 AM Thierry Goubier <
>>

> thierry.goubier@

>> wrote:
>>
>>> Hi Vitor,
>>>
>>> as a matter of fact, the infrastructure for doing what you're looking
>>> for is already there.
>>>
>>> The algorithm is the following:
>>>
>>> - create a scope (something based on RBBrowserEnvironment, such as
>>> RBClassEnvironment or based on regexes and AND / OR operations:
>>> RBAndEnvironment, RBNotEnvironment, which allows for virtually
>>> anything, such as all #printString methods in the package X that do
>>> not belong to class Y)
>>>
>>> - create a refactoring command: if it is not a pre-existing command
>>> such as rename class, etc..., then writing a pattern matcher is
>>> possible with RBTreeRewriter.
>>>
>>> - execute the refactoring command on the environment, changing only
>>> for the subset of code visible in the environment.
>>>
>>> Normally, the system browser or the search tools should automatically
>>> setup the environment for you, and scope accordingly most of the
>>> refactoring commands. As far as I know, there isn't yet a shell giving
>>> you the full pattern matching rewrite power, but some work was
>>> underway (GUI tools).
>>>
>>> Going with the source files as you did also work...
>>>
>>> Regards,
>>>
>>> Thierry
>>>
>>> Le jeu. 21 mai 2020 à 15:30, Vitor Medina Cruz &lt;

> vitormcruz@

> &gt; a
>>> écrit :
>>> >
>>> > Well, as it seems, there is no way of find/replacing other than inside
>>> a single method.
>>> >
>>> > As a workaround, I did the following:
>>> >
>>> > 1- Committed all my image work in progress;
>>> > 2- Opened the project structure in an external tool (notepad++ in this
>>> case) and did the find/replace there;
>>> > 3- Committed it using git command line;
>>> > 4- Back to the image, I did a repair repository from iceberg checking
>>> out and ignoring changes to the image (safe because I did commit
>>> everything
>>> before)
>>> >
>>> > If there are many places to change, it is worth.
>>> >
>>> > Regards,
>>> > Vitor
>>> >
>>> > On Tue, May 19, 2020 at 12:56 PM Vitor Medina Cruz <
>>>

> vitormcruz@

>> wrote:
>>> >>
>>> >> Hello,
>>> >>
>>> >> Is there a way to make find replace in a class scoped way? I can do
>>> that with finder, but I figured only with package scoping. I wanna to
>>> change the name of a variable in multiple methods, and also I would like
>>> to
>>> regex replace an expression also in multiple methods.
>>> >>
>>> >> Regards,
>>> >> Vitor
>>>
>>>
>> --------------------------------------------
>> Stéphane Ducasse
>> http://stephane.ducasse.free.fr / http://www.pharo.org
>> 03 59 35 87 52
>> Assistant: Aurore Dalle
>> FAX 03 59 57 78 50
>> TEL 03 59 35 86 16
>> S. Ducasse - Inria
>> 40, avenue Halley,
>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>> Villeneuve d'Ascq 59650
>> France
>>
>>





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html