How to apply ad hoc IDE styling in Visual Studio - visual-studio

Due to the nature of the way we work, we often find ourselves with 2 or more versions of the same project open at one time in different Visual Studio sessions. Unfortunately, these are just stacked on the task bar so without going to a source code file and inspecting the path, we can't readily tell them apart.
Is there a way to apply some ad hoc styling to the IDE to be able to tell them apart more readily? Something like theme would be ideal but at a session level.
N.B. this isn't something we'd want to check into source control so we want to avoid having say, marker files in the solution.

SolutionColor extension allows to set the color of the title bar on a per solution basis.

Related

How to quickly switch between layouts in Visual Studio?

I use different window-setups for Visual Studio depending on whether I'm at work, and have three monitors available, or e.g. at home, where I typically only have my laptop.
I've found a setup I like for each situation, and saved these using the export wizard, as shown below; for those who might not be aware, this can be done with the opton Tools -> Import and Export Settings.
I like the ability to do this, but I'd like it even more if I could do it without having to click a whoping 9 (!!) times to switch from one mode to the other. Ideally, I'd like to be able to "quick-switch" between home- and office-mode with just one or two clicks, but any improvement would help.
I know this might sound like an insignificant issue (which I suppose is true), but it's been bugging me for a while, and the only "improvement" I've been able to come up with so far is to add a button to the toolbar, as shown below. All this does though, is let me start the wizard without opening the Tools menu.
I can't possibly be the only one using this, so I'd like to know if there are any better ideas or solutions out there?
Visual Studio 2015 and 2017 support Loading and Saving different Window Layouts without using the Import/Export settings feature.
https://msdn.microsoft.com/en-us/library/4k7zyeba.aspx
Switch between the layouts
To switch between layouts, use the Keyboard shortcuts, or from the main menu choose Window > Apply Window Layout.
You can also create toolbar buttons that switch directly to a layout:

Detect file changes outside the Visual Basic 6 IDE?

Background
I am working with VB6 legacy code and I am using an external editor because of the features that it has. Unfortunately, those changes aren't refreshed in the IDE because VB6 doesn't monitor loaded code for changes.
I have done some extensive searching on the subject including looking for alternative editors, a fairly exhaustive internet search including following all of the links on this StackExchange link and haven't found a way to refresh the code window to reflect the external file changes.
My company doesn't have access to the latest edition of Visual Studio and will not be purchasing it anytime in the near future. Until then, there is code to fix.
Question
Aside from restarting the program are there any methods that can be used to refresh the code displayed in the VB6 editing window?
Check out vbAdvance add on. It will prompt you to reload source file in case of external modification.
I think a found one possible solution.
The MZ-Tools set has an function called Reload file from Disk. It also allowed me to create a shortcut for this function through the MZ-Tools options menu, so I assigned it to the shortcut keys of my choosing.
It's a solution, but I'm still looking for anything that might be better.

What's the easiest way to use vertical and horizontal splitting in Visual Studio at the same time?

As seen on the screenshot below, marked by red arrows:
If I use Vertical Tab Split subwindow, I lose the ability to split insert another tab and split it horizontally. Is there any addon or setting I can change to be able to put my code tabs in sort of rectangle-grid?
Just to clarify - I don't want to see the same file contents twice. I want every tab to show a different file. I can't find the reason why such an oversimplification to ide was introduced.
I know it can be solved by opening many standalone windows, but that's hardly an answer for me.
Here's the example of how it looks like in Sublime 2
As you have discovered it's not a feature of the VS shell. For reference, it wasn't possible in VS2010 either.
You can vote for this feature on the Visual Studio Developer Community site - there's a specific request for it here

Visual Studio plug in to jump to test class

I was wondering if there is a plugin that allows me to jump directly to the test for the current class (Or create it if it doesn't exist).
I guess this should be based on the convention that the test project is named like the project being tested + "test" and the test class is named like the class being tester + "test".
A feature like that would really help in projects with many files and foldes, where scrolling the solution explorer to find the associated test project can be quite annoying.
how about NCrunch? This tool will show you, per method, which and how many tests are covering it:
I did manage to find a few extensions on visualstudiogallery.com, but ended up writing my own plugin for this. Its not perfect, but i does what I needed.
If anyone else would like, its available for free at testlocator.eqa.dk
In Visual Studio you can Shift+F12 on any class or method definition to find all references. Although the resulting list Studio is not very convenient, but a starting point. Using a tool like DevExpress CodeRush or ReSharper lets you sort and filter by namespace, project, file, etc.
If you happen to use ReSharper, it has a TestLinker plugin.
It does the job pretty well.
Basic shortcut: Ctrl+Alt+F7.
Goto Related Files is extended with navigation points to production/test classes.
New shortcuts ReSharper_GotoAllLinkedTypes and ReSharper_GotoLinkedTypesWithDerivedName (assignable via keyboard options) that jumps between linked types. In case of multiple linked types, a dedicated popup menu is shown, which can also be displayed in Find Results window.

Associate web page with project in Visual Studio

Is there any way to associate a web page with a project in Visual Studio, and have it load up in the IDE? For example, I have a project who's task list is maintained on a web site. It would be ideal to see those tasks within the IDE instead of a separate page. I can accomplish that now by following these steps:
Press Ctrl-Alt-R to open a Web Browser page
Change the URL to my desired path
Position the page as desired (like in its own tab group, off to the right of my code)
It would be nice to have a link somewhere in my project that I could click and open this page in the IDE without changing the URL every time. I have several different projects that would benefit from this. Any ideas?
Something like this happens with Visual Studio Team Foundation Server. The various documents and guidance associated with your current Team Project area accessible from within Visual Studio, in the Team Explorer window.
You can also create a Guidance Package to apply various commands and pieces of documentation at appropriate places within your projects. see Guidance Automation Extensions and Guidance Automation Toolkit.
Nice idea. The only thing that I can think of is via Visual Studio Extensibility. Basically,
Define an MSBuild property in the project file or a custom field in the solution file that has the project url.
Write a VS package that subscribes to the solution load event or something similar (I am not familiar with VS object model but I am sure there is an event like that) and looks for that custom field and extracts the url if it exists in the solution or the project file and then opens a web browser within VS that points to that url.
Here's my quick hack around this problem:
Create a text file in the project. I called my "notes.txt", and I use it to store notes, ideas, etc. that don't have a home elsewhere in the project.
Add the web link to the top of the file.
Open the text file in the IDE and put it in a new tab group. I put mine in a vertical tab group off to the right.
Drag the separator as far over as it will go to "hide" the tab group. This way it's always open and available but not taking up much space.
When you want the web page, "show" the tab group (i.e. drag the separator back) and ctrl-click the link.
This has the added benefit of opening the web page in the same tab group as the text file, so you can push them both aside when not using them.
I'm sure there's more that could be done by writing packages as others have suggested, but this was a low-effort way to get me close enough to what I wanted. I'd love to hear other suggestions or modifications that might make this setup better.

Resources