Visual Studio 2010: now taking feature requests
-
Judah Himango wrote:
I'm looking for something that will get rid of my bugs
There's no magic bullet. Kevin
Certainly not! But I hold out hope that the future has at least something better than what we've got now (that is, little more than syntax checking). I want tools that do more than that. Wesner Moise's NStatic tool[^] looks like has the potential to be a step in the right direction.
Tech, life, family, faith: Give me a visit. I'm currently blogging about: Lent Revisited The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
-
Judah Himango wrote:
I'm looking for something that will get rid of my bugs
There's no magic bullet. Kevin
-
Warren D Stevens wrote:
Example 1: error C2065: 'CSomeClass' is not a class or namespace name the compiler should be able to figure out that if 'CSomeClass' is defined in another part of the project (especially if it has already compiled), then it should be able to suggest an #include statement, and I just hit "OK".
This sounds like something C# has. If I have the following using statements at the top of my file:
using System;
using System.Collections;And I start to instantiate a List<T> (which resides in the System.Collections.Generic namespace), like so:
List<int> ...
I get a smart tag under the
List<int>
giving me two options. One to changeList<int>
toSystem.Collections.Generic.List<int>
and one to add ausing System.Collections.Generic;
statement to the top of the file. Pretty handy if you ask me. :)They dress you up in white satin, And give you your very own pair of wings In August and Everything After
I'm after everything
-
Tom Archer's post asking what tools could be added to the SDK[^] got me thinking... What would you add to the IDE if you could add any feature? Here's my list: 1) Debugging backwards in time[^] (not totally fantasy at Google) 2) Error results that actually help solve the error. This is not easy by any means, but much of the logic would overlap the existing intellisense and compiler (i.e. the NCB logic) Example 1:
error C2065: 'CSomeClass' is not a class or namespace name
the compiler should be able to figure out that if 'CSomeClass' is defined in another part of the project (especially if it has already compiled), then it should be able to suggest an #include statement, and I just hit "OK". Example 2:error 2601: local function definitions are illegal.
99 times out of 100 this means there is a missing bracket, and if your code follows a standard indenting style (e.g.Function() { }
the compiler should be able to figure out (and suggest) the line (or range of lines) where it should be placed. It could also hilight each bracket in a different colour (depending on scope) like in Excel. 2) Smart background building. If I step away from my computer to get a coffee, the compiler should realize it's idle, and do a "background build". Then it could keep an eye on what I change when I come back. When I hit build, it would be like some of the build was "instantaneous", instead of having to sit watching the compiler results scroll by. 4) Instantaneous help with great search. It should not be preferable to tab over to Google in my browser, type something in and hit "I'm feeling lucky" (which generally brings up an MSDN page) than search my local copy of MSDN (which takes a second or two to search, and then I have to manually sort through the search results because the search results aren't great) That's my list, what would you add? (and remember someone else would get stuck with writiRefactoring akin to that for C# would be nice. Better intellisence. But I'd forgo all of that and just about any new whizbang feature if they would just make the whole damn product more stable. Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
Certainly not! But I hold out hope that the future has at least something better than what we've got now (that is, little more than syntax checking). I want tools that do more than that. Wesner Moise's NStatic tool[^] looks like has the potential to be a step in the right direction.
Tech, life, family, faith: Give me a visit. I'm currently blogging about: Lent Revisited The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
Well, there is the currently underused technique of Design by Contract (only Eiffel has full support for it in commercial languages), which I expect to become more widespread in the future. Microsoft's research language, Spec#, provides an implementation, so we might see some of this in C# 4.0 perhaps? XC# implements it, plus other code checking features. Peter Gummer published an article on it a few weeks ago. The Eiffel Flash audio presentations on Design by Contract are worth listening to. http://www.eiffel.com/developers/presentations/[^] Kevin
-
Sure, that's a tiny addition that could probably be made easily with modern technology. But syntax correction is nothing revolutionary; I'm looking for something that will get rid of my bugs, plainly speaking. :) I'm human, I make mistakes when I code. And I have to pay for each of them with users complaining that something doesn't work right. I need something that will step in and prevent that whole mess from occuring. Imagine if software bugs became a rare occurrance rather than an everyday thing...software would be so much better and reliable, and my job would get a lot easier, I could focus on features and the coolness factor rather than plunging away at bugs everyday.
Tech, life, family, faith: Give me a visit. I'm currently blogging about: Lent Revisited The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
Try C# ;) ;P
-
David Stone wrote:
Pretty handy if you ask me.
If i could pick just one thing to replace in C++, that thing would be header files. ----
Bots don't know when people die. --Paul Watson, RIP
Try C# ;P
-
It would be nice if some kind of intelligent static analysis engine was built into the IDE or compiler. If the languages could be changed to the point where a tool can detect all possible errors in the code, now that would be something revolutionary. But really, for such a thing to even be possible, we'd need either a tool that can look at code context and infer the global meaning, or have higher abstractions in the code to more clearly state code purpose. Otherwise error detection will always be limited to little things like syntax errors, and humans will be left to the tedious task of finding errors through runtime or testing frameworks--and when humans are involved, there is always error. That's why we need machines (or in our case, tools) to tell us where we've erred. So, that's what I want Visual Studio 2010 to be: an intelligent IDE that can understand your code and find subtle errors, rather than just tell you if your code is syntactically correct as it is now.
Tech, life, family, faith: Give me a visit. I'm currently blogging about: Lent Revisited The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
Judah Himango wrote:
static analysis engine was built into the IDE or compiler
Don't you get that in Team System (PreFast for C++, I know...)? Or is it not very intelligent?
-
Try C# ;P
But if you use C# there's an awful lot more things that need fixing...;P
-
But if you use C# there's an awful lot more things that need fixing...;P
Ho my, you should have double check what you typed, you made huge typos! Of course you mean: "And if you use C# there's an awful lot more things that has been fixed!" ;P
-
Try C# ;) ;P
Already have. :)
-
Judah Himango wrote:
static analysis engine was built into the IDE or compiler
Don't you get that in Team System (PreFast for C++, I know...)? Or is it not very intelligent?
Don't know, haven't tried it and wasn't aware of it.
-
Tom Archer's post asking what tools could be added to the SDK[^] got me thinking... What would you add to the IDE if you could add any feature? Here's my list: 1) Debugging backwards in time[^] (not totally fantasy at Google) 2) Error results that actually help solve the error. This is not easy by any means, but much of the logic would overlap the existing intellisense and compiler (i.e. the NCB logic) Example 1:
error C2065: 'CSomeClass' is not a class or namespace name
the compiler should be able to figure out that if 'CSomeClass' is defined in another part of the project (especially if it has already compiled), then it should be able to suggest an #include statement, and I just hit "OK". Example 2:error 2601: local function definitions are illegal.
99 times out of 100 this means there is a missing bracket, and if your code follows a standard indenting style (e.g.Function() { }
the compiler should be able to figure out (and suggest) the line (or range of lines) where it should be placed. It could also hilight each bracket in a different colour (depending on scope) like in Excel. 2) Smart background building. If I step away from my computer to get a coffee, the compiler should realize it's idle, and do a "background build". Then it could keep an eye on what I change when I come back. When I hit build, it would be like some of the build was "instantaneous", instead of having to sit watching the compiler results scroll by. 4) Instantaneous help with great search. It should not be preferable to tab over to Google in my browser, type something in and hit "I'm feeling lucky" (which generally brings up an MSDN page) than search my local copy of MSDN (which takes a second or two to search, and then I have to manually sort through the search results because the search results aren't great) That's my list, what would you add? (and remember someone else would get stuck with writiA key combo that hides and shows your set of panels/tabs/buttons/toolbars/etc. Photoshop and Fireworks has this. You are working on your main image in full-screen mode. No menus, toolbars, panels or anything else is showing. You hit tab and everything you had setup as you wanted it appears. Hit tab again and it disapears. I'd like that but for the code-window. Often you have your head down coding away and you don't use the panels, menus etc. for ages. During that time I'd like them gone. Then when I want them, a key combo and they appear. No fading in or scrolling in either, just on and off. regards, Paul Watson Ireland Feed Henry! K(arl) wrote: oh, and BTW, CHRISTIAN ISN'T A PARADOX, HE IS A TASMANIAN!
adapted from toxcct:
while (!enough)
sprintf 0 || 1
do -
A key combo that hides and shows your set of panels/tabs/buttons/toolbars/etc. Photoshop and Fireworks has this. You are working on your main image in full-screen mode. No menus, toolbars, panels or anything else is showing. You hit tab and everything you had setup as you wanted it appears. Hit tab again and it disapears. I'd like that but for the code-window. Often you have your head down coding away and you don't use the panels, menus etc. for ages. During that time I'd like them gone. Then when I want them, a key combo and they appear. No fading in or scrolling in either, just on and off. regards, Paul Watson Ireland Feed Henry! K(arl) wrote: oh, and BTW, CHRISTIAN ISN'T A PARADOX, HE IS A TASMANIAN!
adapted from toxcct:
while (!enough)
sprintf 0 || 1
doI use (shift + alt + enter) a fair bit, and I like that. or were you thinking everything gone? That would certainly be the ultimate! Come to think of it, maybe someone can write an add-in that would do this ??? Warren
-
Tom Archer's post asking what tools could be added to the SDK[^] got me thinking... What would you add to the IDE if you could add any feature? Here's my list: 1) Debugging backwards in time[^] (not totally fantasy at Google) 2) Error results that actually help solve the error. This is not easy by any means, but much of the logic would overlap the existing intellisense and compiler (i.e. the NCB logic) Example 1:
error C2065: 'CSomeClass' is not a class or namespace name
the compiler should be able to figure out that if 'CSomeClass' is defined in another part of the project (especially if it has already compiled), then it should be able to suggest an #include statement, and I just hit "OK". Example 2:error 2601: local function definitions are illegal.
99 times out of 100 this means there is a missing bracket, and if your code follows a standard indenting style (e.g.Function() { }
the compiler should be able to figure out (and suggest) the line (or range of lines) where it should be placed. It could also hilight each bracket in a different colour (depending on scope) like in Excel. 2) Smart background building. If I step away from my computer to get a coffee, the compiler should realize it's idle, and do a "background build". Then it could keep an eye on what I change when I come back. When I hit build, it would be like some of the build was "instantaneous", instead of having to sit watching the compiler results scroll by. 4) Instantaneous help with great search. It should not be preferable to tab over to Google in my browser, type something in and hit "I'm feeling lucky" (which generally brings up an MSDN page) than search my local copy of MSDN (which takes a second or two to search, and then I have to manually sort through the search results because the search results aren't great) That's my list, what would you add? (and remember someone else would get stuck with writiRemember Star Trek:The Next Generation? Wesley or Data reprogramming the software by poking buttons on a touch screen with nary a keyboard in sight. We've already gone beyond the imagination of the original Star Trek series (data stored on little square things that we now recognize as floppy disks). So, Microsoft, buy a set of ST:TNG DVD's and see what the future of software development should look like! Ah, well, I can dream can't I? :cool:
-
Tom Archer's post asking what tools could be added to the SDK[^] got me thinking... What would you add to the IDE if you could add any feature? Here's my list: 1) Debugging backwards in time[^] (not totally fantasy at Google) 2) Error results that actually help solve the error. This is not easy by any means, but much of the logic would overlap the existing intellisense and compiler (i.e. the NCB logic) Example 1:
error C2065: 'CSomeClass' is not a class or namespace name
the compiler should be able to figure out that if 'CSomeClass' is defined in another part of the project (especially if it has already compiled), then it should be able to suggest an #include statement, and I just hit "OK". Example 2:error 2601: local function definitions are illegal.
99 times out of 100 this means there is a missing bracket, and if your code follows a standard indenting style (e.g.Function() { }
the compiler should be able to figure out (and suggest) the line (or range of lines) where it should be placed. It could also hilight each bracket in a different colour (depending on scope) like in Excel. 2) Smart background building. If I step away from my computer to get a coffee, the compiler should realize it's idle, and do a "background build". Then it could keep an eye on what I change when I come back. When I hit build, it would be like some of the build was "instantaneous", instead of having to sit watching the compiler results scroll by. 4) Instantaneous help with great search. It should not be preferable to tab over to Google in my browser, type something in and hit "I'm feeling lucky" (which generally brings up an MSDN page) than search my local copy of MSDN (which takes a second or two to search, and then I have to manually sort through the search results because the search results aren't great) That's my list, what would you add? (and remember someone else would get stuck with writiI'd like a real observer pattern on the event handling. I don't want to:
if (myEvent != null) myEvent(this, EventArgs.Empty);
And I definitely don't want to:MyEventHandler me = myEvent; if (me != null) me(this, EventArgs.Empty);
Why should I event care if there are any listeners? I just want to:myEvent(this, EventArgs.Empty);
-
True. Next people will start asking for a programming software that will create software for them automagically :) Edbert
-
I use (shift + alt + enter) a fair bit, and I like that. or were you thinking everything gone? That would certainly be the ultimate! Come to think of it, maybe someone can write an add-in that would do this ??? Warren
Actually, that is pretty darned good, that shift + alt + enter. Thanks Warren. regards, Paul Watson Ireland Feed Henry! K(arl) wrote: oh, and BTW, CHRISTIAN ISN'T A PARADOX, HE IS A TASMANIAN!
adapted from toxcct:
while (!enough)
sprintf 0 || 1
do -
Actually, that is pretty darned good, that shift + alt + enter. Thanks Warren. regards, Paul Watson Ireland Feed Henry! K(arl) wrote: oh, and BTW, CHRISTIAN ISN'T A PARADOX, HE IS A TASMANIAN!
adapted from toxcct:
while (!enough)
sprintf 0 || 1
doYou're welcome. I'm a total keyboard junkie. If you're not using the code templates in Visual Assist, you've got to try them. I haven't typed "for" or "switch" in months, thanks to Visual Assist. I just type the variable I want to use for my loop (e.g. "i", select it, and insert my "for loop" code template). Somedays I feel like I've been reduced to filling in wizards and inserting code templates (I guess that beats typing, so maybe that's not such a bad thing). Warren
-
You're welcome. I'm a total keyboard junkie. If you're not using the code templates in Visual Assist, you've got to try them. I haven't typed "for" or "switch" in months, thanks to Visual Assist. I just type the variable I want to use for my loop (e.g. "i", select it, and insert my "for loop" code template). Somedays I feel like I've been reduced to filling in wizards and inserting code templates (I guess that beats typing, so maybe that's not such a bad thing). Warren
I don't use VA but the snippets and code-completion in VS2005 has improved a lot. It also has that "for loop" type of completion at the press of a key. It is a lot better than fiddling with the mouse indeed. regards, Paul Watson Ireland Feed Henry! K(arl) wrote: oh, and BTW, CHRISTIAN ISN'T A PARADOX, HE IS A TASMANIAN!
adapted from toxcct:
while (!enough)
sprintf 0 || 1
do