How can the Editor improve?


I just got an email from one of the readers of this blog wondering how to suggest new features for the Editor in future versions of Visual Studio.  The easy answer to his question is to simply by responding to this post.  If you have a great idea about how to improve the Editor, Object Browser or Class View, let us know and we’ll consider it. 


Right now, we’re in the middle of stabilizing the features in Whidbey and are starting to plan the new set of features for the next release of Visual Studio and your suggestions can really have an impact on that release.


I’m also a big proponent for our extensibility features so if there’s a good way to do some of the suggestions through an add-in or a macro, I’ll give you some tips on how you can write your favorite feature.


-Sean


 


Comments (19)

  1. ShadowChaser says:

    I’d really like to see improvements to the tasks system, namely:

    * The ability for // TODO:, // HACK: and // UNDONE: items to show up in the task list even when the document is not open.

    * A new task-list tag called // BUG: would be nice, for those known bugs that you just don’t have time to do yet…

    * "Normal" tasks (the ones you add using the task editor and not enter into code) do not synchronize with the source control server. If I ever need to pull down a new copy of my project, all of my tasks vanish. This is probably a difficult one to fix though, and maybe already is addressed with the new Team System. Make sure that Team System integrates with the existing task list – it would be horrible having two seperate locations.. :(

    * The ability to have optional "FxCop" style warnings appear in the output (or task) window at compilation time. (for C# that is, C++ already has a few optional warnings)

    * This might be out of the scope of the IDE, but I think many developers (including myself) desperately need a CLR-Compliant, *redistributable* "minidump" generator that can be shipped with applications. The one with the DDK(?) is non-redistributable, rendering it effectively useless for end-user debugging.

    * The ability to compile traditional windows resource files (ie/ the VC++ type) into a .NET assembly. There are many cases when you would want to do this – the best example is all of the hacks and workarounds developers had to do to get XP manifest files compiled into their application! Granted, there is better support in .NET 2 for XP, but there are probably many other cases where you would want to do this!

    * A better icon editor might be nice 😉 4-bit icons just don’t cut it any more :)

  2. Shadow: Support for // tasks are handled by individual language teams. The C# has added support for seeing tasks even when the documents aren’t open.

    If you want to go here http://blogs.msdn.com/cyrusn/archive/2004/06/22/163187.aspx

    You can make requests for things you’d like improved in the C# experience.

  3. Hank Fay says:

    In Visual FoxPro, I have a visual representation of the object, whether it is a visual object or not. I can have multiple objects open on my MDI desktop at any time. When I double-click on the object, I get an editing window which, with two dropdowns, can navigate between objects/contained objects, and methods. I can push a View Parent Code button when in any method that has Parent code.

    I can have multiple windows, from multiple objects, open at once: which makes comparing methods, etc., a very easy process.

    I would like that kind of flexibility in editing in VS. It’s much more productive than hunting around textfiles.

    thanks,

    Hank Fay

  4. Rune says:

    Automatic synchronization between editor and classview.

  5. Rob Cannon says:

    I would like to see the editor also hosted in another executable for quick editiing tasks. I know about the VSEdit powertoy, but it brings up the whole IDE and takes a long time to start. By having a TRUE and light-weight VSEdit available, I don’t have to worry about a different set of keystrokes, I can have access to the macro that I have already recorded, etc…

  6. Robbie Peele says:

    Are the Resource Editors in your area as well? The Toolbar Editor really needs to be able to handle something greater than 16-bit color images. The Image Editor needs to be able to handle alpha channels and such.

  7. Sean Laberee says:

    Actually, the Resource Ediotrs are owned by the Visual C++ team. I’ll forward the feedback to them.

    -Sean

  8. Ed says:

    Don’t ever forget the keyboard user. To us, reaching over to use the mouse is pure evil. Everything should be able to be done with the keyboard, and it should be easy and intuitive.

  9. Keith Hill says:

    Ctrl+Shift+] is an cool keyboard shortcut but it is too bad you have to be right next to a curly brace. It would be better if you could press Ctrl+Shift+] and it would just select the innermost enclosing block where ever the caret happens to be. For extra, credit it would be way cool if continued pressed of "]" while Ctrl+Shift is still being held down, would continue selecting blocks outward.

  10. Keith Hill says:

    Oh, one other nice keyboard shortcut would be to have Ctrl+Shift+L select the entire current line no matter where the caret is then push the caret down one line. That way if there is a block of text I wnat to copy I can just press and hold Ctrl+Shift and then press "L" for each line. Then I press Ctrl+C to copy the block.

    BTW, I would like to see you bring back word select with a similar shortcut. In VS.NET 2003 it is Ctrl+W. But I think Ctrl+Shift+W makes more sense i.e. the shift key is typically involved in selecting text. You could also do the same business for multiple presses of "W" while Ctrl+Shift is held down. Include the next word in the selection.

  11. 1) It would be nice to evaluate static expressions & methods in the Command (Immediate) Window at design-time, as in Visual Studio 6.

    2) The IDE should remember at what date & time each line of code was added/changed, as well as which user changed it. Currently the only way to see this is by checking SourceSafe history, but it could be weeks between check-ins in a dodgy development team, and if 2 people are constantly checking out the same file to make changes, its difficult to see who coded what.

    The advantages of this are that you could pull a report for your boss/PM showing which functions were written on which days, and if some idiot changes 1 line of code which breaks your function you can see who it was. Useful for teams to measure individual performance when 2 people are working on the same class over a period.

  12. Joku says:

    Keith Hill : Do you mean something like: First press ctrl-insert anywhere on the line, then shift-insert will duplicate this line above the caret.

  13. rob says:

    I’d really like to see a switch in the "Class View" that will NOT split out the nodes by assemblies. Often times I want to browse through a class hierarchy for a project as a whole. For example, if assembly "A" defines class "Project", and assembly B defines class "Project.UI", "Project.UI" would appear directly underneath "Project", even though they are not in the same assemblies.

  14. Steve Perry says:

    Got an improvment for the find and replace dialog. How about a button that allows you to "Find in next document". Of course this would only work if you are searching through all documents or open documents. Basicly it would be nice to say, I know its not in this file jump to the next one.

    Thanks for allowing these sugestions.

  15. I’m yet to download the express packs yet, but i’ve been meaning to. However, i was reading about bookmarks, and they sound useful. The way they were described in the explanation, they sound like breakpoints that don’t cause a break, but you can jump around them to find code. Oh, and they’re blue instead of red. This is a nice plan indeed. Just wondering if whidbey brings in the same sort of thing for breakpoints? The way i see them, a breakpoint is basically a bookmark that causes the debugger to stop execution when debugging. Are they aligned by any chance? if not, can they be? I know i’ve wanted a ‘jump to next breakpoint’ feature. It’ll probably all become once i do actually get around to downloading express :)

  16. Rune Huseby says:

    Two things I’ve beens used to all since Visual C++ 1.5-days:

    Having a responsive editor while building, allowing me to fix compile-errors as they appear.

    The source-code-brower has really degenerated since VC1.5. That old tool had quick and powerful searching, call-trees (and callee-trees), object hierarcy etc. A solution-wide code- browser would be nice too.

  17. Eric Wilson says:

    Make it possible to be able to print more than one file at a time (ie. allow me to print all the code files in a project, or a selected set of files in a solution).

    Print the code inside of closed code regions except for the "Windows Form Designer generated code " region. Currently, if a region is closed then the editor does not print the code in that region.

  18. simon geering says:

    Hi Sean,

    Firstly thanks for providing the community the opportunity to give feedback. I just wanted to point you and your team towards an add-in that I found very useful in vb6 and miss greatly in the .net world; http://www.mztools.com/. Particularly useful was the ability to view all callers of the current method of the current class.

  19. Alan Cyment says:

    Having jumped in (and out again) off the Smalltalk wagon, I feel VS.NET feels too punch-card-like. If we’re talking classes and methods here, why do I have to care about files, folders and whitespaces?

    I reckon that embracing XP, refactoring & friends without changing the way we deal with our source code will make evolution take place at quite slower a pace.

    Take a look at this post from an MS MVP. I guess it’s a good summary of a couple of these ideas: http://weblogs.asp.net/fbouma/archive/2003/07/18/10260.aspx

    Cheers,

    Alan