New MS Visual Basic refactoring tool flash demo

Microsoft has bought a new refactoring tool for VB from DevExpress. It has
some features that have been in the IDEA tracker as feature requests for
years. I hope it will inspire the developers to finally implement these features
(inline rename, specify where extracted method is created). Also it has some
good ideas I haven't thought of before (like treating constant / variable
creation as an extract then rename, using inline renaming)

You can watch the flash demo here
http://msdn.microsoft.com/VBasic/Downloads/2005/Tools/Refactor/3MinDemo.Aspx


12 comments
Comment actions Permalink

Once again :
"Inline rename is a great idea, and it looks great in demos.".


BTW, looking great in public demos was cited as one of the bonus
reasons, close to 2 years ago, when this idea was first suggested, but
it didn't get any positive attention. This short screencast should have
many people change their mind, I guess. I hope.


Alain





0
Comment actions Permalink

I was looking for requests related to improving IDEA in the ways that the
VB plugin is cool. I found one:

Preselect most probable/gray out invalid refactorings
- http://jetbrains.net/jira/browse/IDEABKL-220

However, I know I've seen requests for "inline rename refactoring" and "allow
user to specify scope of extracted method" but I can't find them in JIRA.
Does anyone know where these are?

Microsoft has bought a new refactoring tool for VB from DevExpress. It
has some features that have been in the IDEA tracker as feature
requests for years. I hope it will inspire the developers to finally
implement these features (inline rename, specify where extracted
method is created). Also it has some good ideas I haven't thought of
before (like treating constant / variable creation as an extract then
rename, using inline renaming)

You can watch the flash demo here
http://msdn.microsoft.com/VBasic/Downloads/2005/Tools/Refactor/3MinDem
o.Aspx




0
Comment actions Permalink

Keith


AFAIK, the only real request was pre-JIRA and pre-tracker, around 2
years ago.

This year, it was only discussed:
-
http://www.intellij.net/forums/thread.jsp?forum=18&thread=122824&message=3441155
-
http://www.intellij.net/forums/thread.jsp?forum=18&thread=122734&tstart=300#3439826


Feel free to formalize it, and post a request. Maybe You will find the
words.

Alain

0
Comment actions Permalink

Okay, I've filed issue http://jetbrains.net/jira/browse/IDEA-1720 for inline
rename. How about scope of extracted method? Have you seen requests for that?
I swear I saw one, or I would've filed it long ago.

Keith

AFAIK, the only real request was pre-JIRA and pre-tracker, around 2
years ago.

This year, it was only discussed:
-
http://www.intellij.net/forums/thread.jsp?forum=18&thread=122824&messa
ge=3441155
-
http://www.intellij.net/forums/thread.jsp?forum=18&thread=122734&tstar
t=300#3439826
Feel free to formalize it, and post a request. Maybe You will find the
words.

Alain




0
Comment actions Permalink

Keith

Okay, I've filed issue http://jetbrains.net/jira/browse/IDEA-1720 for
inline rename.



I voted for it.

How about scope of extracted method? Have you seen requests for that?
I swear I saw one, or I would've filed it long ago.




All I could find was 2 scope related bug reports, in the old tracker:

An UI implementation, that looks like what you are seeking, is suggested
here:
"Introduce variable + all occurences : too many occurences &
improper scope"
http://www.intellij.net/tracker/idea/viewSCR?publicId=7633#411104

the other scope bug, that would benefit from this request:
"Extract Method in anonymous class : extracts to too outer scope."
http://www.intellij.net/tracker/idea/viewSCR?publicId=21022


Alain

0
Comment actions Permalink

http://www.intellij.net/tracker/idea/viewSCR?publicId=7633#411104
the other scope bug, that would benefit from this request:
"Extract Method in anonymous class : extracts to too outer
scope."
http://www.intellij.net/tracker/idea/viewSCR?publicId=21022


That's the request I was thinking of. I've filed a new one about general
scope selection at http://jetbrains.net/jira/browse/IDEA-1721


0
Comment actions Permalink

Just curious, how do you think to catch name-conflicts. Assume, you have two
variables "hello" and "world". Now you start to rename the second one to
"hello2". What should happen, when you have typed "hello"?

Tom

0
Comment actions Permalink

Tom,

Assume, you have two variables "hello" and "world". Now you start to
rename the second one to "hello2". What should happen, when you have
typed "hello"?






I think a simple two-step feedback would work fine in this case:
- When the user is typing the new name, if it conflicts with an existing
name in the same scope, just display it in red
(meaning: "there is name conflict, but you can keep typing").

- When user is finished typing the new name, if there still is a
conflict,
display a dialog =>
"there is a name conflict with your final name choice: you can
either"
" - choose another name, or"
" - change the variable scope"


Alain

0
Comment actions Permalink

Hello Keith,

http://www.jetbrains.net/jira/browse/IDEABKL-2834

I was looking for requests related to improving IDEA in the ways that
the VB plugin is cool. I found one:

Preselect most probable/gray out invalid refactorings -
http://jetbrains.net/jira/browse/IDEABKL-220

However, I know I've seen requests for "inline rename refactoring" and
"allow user to specify scope of extracted method" but I can't find
them in JIRA. Does anyone know where these are?

>> Microsoft has bought a new refactoring tool for VB from DevExpress.
>> It has some features that have been in the IDEA tracker as feature
>> requests for years. I hope it will inspire the developers to finally
>> implement these features (inline rename, specify where extracted
>> method is created). Also it has some good ideas I haven't thought of
>> before (like treating constant / variable creation as an extract then
>> rename, using inline renaming)
>>
>> You can watch the flash demo here
>> http://msdn.microsoft.com/VBasic/Downloads/2005/Tools/Refactor/3MinDe
>> m o.Aspx
>>


0
Comment actions Permalink

How about, when starting to change a var name, gather the list of places
this var is used, and through the whole typing (until exiting the var
name) only replace those indexes?

I'm not familier with the psi internals so this might not be possible,
but it sounds logical to me. How does the vb refactor package do it?


Alain Ravet wrote:

Tom,

>
>> Assume, you have two variables "hello" and "world". Now you start to
>> rename the second one to "hello2". What should happen, when you have
>> typed "hello"?
>
>
>
>
>
>

I think a simple two-step feedback would work fine in this case:
- When the user is typing the new name, if it conflicts with an existing
name in the same scope, just display it in red
(meaning: "there is name conflict, but you can keep typing").
- When user is finished typing the new name, if there still is a
conflict,
display a dialog =>
"there is a name conflict with your final name choice: you can
either"
" - choose another name, or"
" - change the variable scope"

>
>

Alain


0
Comment actions Permalink

Great, thanks I've voted for it

Hello Keith,

http://www.jetbrains.net/jira/browse/IDEABKL-2834

>> I was looking for requests related to improving IDEA in the ways that
>> the VB plugin is cool. I found one:
>>
>> Preselect most probable/gray out invalid refactorings -
>> http://jetbrains.net/jira/browse/IDEABKL-220
>>
>> However, I know I've seen requests for "inline rename refactoring"
>> and "allow user to specify scope of extracted method" but I can't
>> find them in JIRA. Does anyone know where these are?
>>
>>> Microsoft has bought a new refactoring tool for VB from DevExpress.
>>> It has some features that have been in the IDEA tracker as feature
>>> requests for years. I hope it will inspire the developers to finally
>>> implement these features (inline rename, specify where extracted
>>> method is created). Also it has some good ideas I haven't thought of
>>> before (like treating constant / variable creation as an extract
>>> then rename, using inline renaming)
>>>
>>> You can watch the flash demo here
>>> http://msdn.microsoft.com/VBasic/Downloads/2005/Tools/Refactor/3MinD
>>> e m o.Aspx
>>>



0
Comment actions Permalink

Yeah, I think this would be pretty easy.

How about, when starting to change a var name, gather the list of
places this var is used, and through the whole typing (until exiting
the var name) only replace those indexes?

I'm not familier with the psi internals so this might not be possible,
but it sounds logical to me. How does the vb refactor package do it?

Alain Ravet wrote:

>> Tom,
>>
>>> Assume, you have two variables "hello" and "world". Now you start to
>>> rename the second one to "hello2". What should happen, when you have
>>> typed "hello"?
>>>
>> I think a simple two-step feedback would work fine in this case:
>> - When the user is typing the new name, if it conflicts with an
>> existing
>> name in the same scope, just display it in red
>> (meaning: "there is name conflict, but you can keep typing").
>> - When user is finished typing the new name, if there still is a
>> conflict,
>> display a dialog =>
>> "there is a name conflict with your final name choice: you can
>> either"
>> " - choose another name, or"
>> " - change the variable scope"
>> Alain
>>



0

Please sign in to leave a comment.