I've been using Solution Explorer since I started with VS 2k3 and at this point my preference is as much inertia as anything else, so I'm wondering what features the other solution visualization options in Visual Studio had that might make them more useful.
I could just fiddle with the other two, but that method's much better at identifying what features they don't have that Solution Explorer does than at spotting what they do better.
The Solution Navigator is part of the Power Tools, not Visual Studio (directly). It is basically a replacement for Solution Explorer and Class View both (which are part of VS, and have been for a long time), as well as giving you the ability to search quickly for things, pivot on a type or file, etc.
The searching feature is by far the one that I use the most in Solution Navigator. Being able to search very quickly for types and files within your solution is very powerful once you get used to the functionality.
I have yet to find a faster way to open a file than with Solution Navigator.
Either copy and paste or type a file name into the search box
Double-click the resulting file
I'd like to create an extension for Visual Studio 2010. The functionalities I need are these:
Add a context menu item for Project (when user right clicks project name in his solution, he'll get my context item in the list).
When he clicks, a new WinForms form appears, where he can input some data, and an option to save that data for future reuse.
When he clicks OK on that Form I'll generate some files and add those files to be a part of his project that he rightclicked.
The WSCF.blue is exactly the kind of behaviour I want to immitate in VS, but it's source was written in VS2008, and I'd like to use VS2010 Extension options which are quite changed as I understand...
I found some resources on the msdn, but I found it confusing with incomplete info (e.g. MenuAndCommands example).
Can anyone shed some light on how to achieve what I'm after?
I really don't know where to point out so you can get specific examples of what you are trying to achieve. However, in the following resources you will find complete and detailed information about the overall process, and some help to achieve 1. and 2.
VS 2010 Package Development – Chapter 1: Visual Studio Packages
VS 2010 Package Development – Chapter 2: Commands, Menus and Toolbars
When you type the override keyword in a C# file in VS and press Space, you get a second menu offering the method to override. Can I extend this behavior with my own custom code that would use another keyword to pop up my own list of actions?
Yes it is possible to augment the list with more keywords or to even create your own list entirely. The interface you are looking for in Visual Studio 2010 is ICompletionSource. This isn't a simple interface though and it's hard to give a full sample in a stackoverflow answer but there are plenty of samples online to take a look at.
I think the best place to start is the editor samples available on codeplex
http://editorsamples.codeplex.com/
What other keyword do you want to use? If it's C#, pressing ctrl+space will open the auto-complete/intellisense menu.
If this is for writing another language using Visual Studio, perhaps this video is of use.
Here's the extending Visual Studio start page, in case it's helpful.
Background
I have a macro AttachToRemoteProcess that I use to attach the debugger to a running process on a remote computer. The macro use hard coded names for the process and the computer. I use the macro from a toolbar button on a custom toolbar. I consider this a sub par solution and I don't really like to have such a macro in my Visual Studio environment since it only works for the specific program/environment it was hard coded for.
I am using Visual Studio 2008.
Solutions
I can imagine two solutions but I do not know if they are possible to implement.
Alternative 1
I would like to either have the macro AttachToRemoteProcess being part of the solution (.sln) or one of the projects (.csproj) and have the toolbar appear when the solution or project has been loaded into Visual Studio. In this case it is OK to have hard coded settings such as process and computer name.
Alternative 2
The macro AttachToRemoteProcess is made reusable by taking process and computer as parameters.
The custom toolbar, button and the macro are always available in Visual Studio. This is just like my current solution, except for the parameterized macro.
When the button is clicked the computer name and process name is looked up from somewhere in the solution or the current project.
Questions
Would any of the alternative work and how can I go about doing it?
Are there any other alternative solutions for what I want to achieve?
The second alternative seems to work. Instead of retrieving the parameters from the solution (perhaps using VBA and the class EnvDTE.DTE.Solution), you could display a small form to select the process and computer and use this input as parameters to your macro. The button would be displayed in a personal toolbar all the time.
I'm not sure whether you can "attach" macros to particular solutions. If that's not possible, you will have no way to implement alternative 1.
If you've ever used Eclipse, you've probably noticed the great keyboard shortcuts that let you hit a shortcut key combination, then just type the first few characters of a function, class, filename, etc. It's even smart enough to put open files first in the list.
I'm looking for a similar functionality for Visual Studio 2008. I know there's a findfiles plugin on codeproject, but that one is buggy and a little weird, and doesn't give me access to functions or classes.
Vs11 (maybe 2010 had it too) has the Navigate To... functionality which (on my machine) has the Ctrl+, shortcut.
By the way it understands capitals as camelcase-shortucts (eclipse does so too). For instance type HH to get HtmlHelper.
This isn't exactly the same as Eclipse from your description, but Visual Studio has some similar features out of the box (I've never used Visual Assist X, but it does sound interesting).
The Find ComboBox in the toolbar ends up being a sort of "Visual Studio command line". You can press Ctrl+/ (by default) to set focus there, and Visual Studio will insert an ">" at the beginning of the text (indicating that you want to enter a command instead of search). It even auto-completes as you type, helping you to find commands.
Anyway, to open a file from there, type "open <filename>". It will display any matching files in the drop down as you type (it pulls the list of files from the currently open solution).
To quickly navigate to a function, in the code editor press Ctrl+I to start an incremental search. Then just start typing until you find what you are looking for. Press Escape to cancel the search, or F3 to search again using the same query. As you are typing in the search query, the status bar in the lower left corner will contain what Visual Studio is searching for. Granted, this won't search across multiple files (I've never used Eclipse much, but that sounds like what it does from your description), but hopefully it will help you at least a little bit.
If anyone stumbles upon this thread:
There's a free plugin (created by me) for Visual Studio 2008 that mimics the Eclipse Ctrl+Shift+R Open Resource dialog (note, not the Open Type dialog). It works with any language and/or project type.
You can find it at Visual Studio Gallery.
Some of the neat features are available in Visual Assist X, though not all of them. I've asked on their forums, but they haven't appeared as yet. VAX gets updated regularly on a rough 4 week period for bug fixes and a new feature every couple of months.
If you are looking for an add-in like this to quickly navigate to source files in your project:
try the Visual Studio 2005/2008 add-in SonicFileFinder.
Resharper does this with the Ctrl-N keyword. Unfortunately it doesn't come for free.
Visual Studio doesn't have anything like this feature beyond Find.
Found this thread while searching for Eclipse's Ctrl+Shift+R, and after seeing the Visual Studio Gallery, found the DPack Tools (they are free, and no, I'm not endorsed in any way by them).
But it's exactly what I was searching:
- Alt+U -> File Browser (a la Eclipse Ctrl+Shift+R)
- Alt+M -> Code Browser (Method list in the actual class)
It has more features, but I'm happy with these ones.
I have been using biterScripting along with Visual Studio to do more flexible searching and manipulation.
It can search the entire workspace.
It can search within any project - EVEN IF THAT PROJECT IS NOT LOADED OR EVEN PART OF A WORKSPACE.
It can find things using regular expressions.
AND, ABOVE ALL, it can make bulk changes. For example, want to change the name of a class from CCustomer to CUser, I can do it in just a few command lines - Actually, I have written scripts for things like this I do often. I DON'T HAVE TO CLICK ON EACH INSTANCE AND MANUALLY DO THE CHANGE.
And, it is inexpensive ($0). I downloaded it from http://www.biterscripting.com .
I'm also comming from the Java Development side and was looking for the CTRL+T feature in the Visual Studio. The other answers refer to open file, but since in C# the class name and file name can be different this is not what i was looking for.
With the Class View or the Object Browser you can search for Objects and Classes
[View]->[Class View] or [View]->[Object]