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
Please sign in to leave a comment.
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
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?
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
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
I voted for it.
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
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
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
Tom,
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
Hello Keith,
http://www.jetbrains.net/jira/browse/IDEABKL-2834
>> 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
>>
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:
>
>> 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"?
>
>
>
>
>
>
>
>
Great, thanks I've voted for it
>> 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
>>>
Yeah, I think this would be pretty easy.
>> 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
>>