Rename Visual Studio Window Title

Free

This lightweight extension will detect whenever two instances of Visual Studio are running with the same window title and change the window title of Visual Studio to include a folder tree with a configurable min depth and max depth distance from the solution/project file. With...

(55) Review
Visual Studio
2015, 2013, 2012, 2010
Download (40,839)
5/9/2015
2.8.1
View
E-mail Twitter del.icio.us Digg Facebook
Add to favorites
Description
Reviews (55)
Q and A (23)
Sign in to write a review
Sort by:

by viJay2345 | Mon 2:10 PM

Great extension! Thank you :)

by Lars Tellemann Sæther | August 17 2015

Does exactly as described - in my case perfect for identifying different branches

by Patrick68 | August 05 2015

Great tool! Works like a charm to identify my branches using the parent folder name.

by agaze_6 | June 25 2015

by Igor Iakovlev | May 05 2015

Standard JIT Debugger window is now good to select specific instance of VS. Saved my day and nerves.

by Opus4210 | March 17 2015

This is a perfect solution and, like others said, you wonder why VS doesn't include it by default.

My TFS branch folder is always the parent to the solution, so I used [parent0] to get the branch's folder name. It wasn't obvious from the descriptions. And [parentPath] didn't work for me in this case because I wanted to use a "Farthest parent folder depth" of 10 for a document with no solution but only the branch name for a solution.

Also, TyWeb stated that you can't show the whole path, but that's not true. Just set "Farthest parent folder depth" to a high enough value (10 was deep enough for my projects) that will traverse deep enough to pick up the drive letter.

Great job!

by Michi-2142 | March 16 2015

Thank you very much, this saved my day!

by Xiolus | December 05 2014

Fantastic! Does what it says it does. Exactly what I needed. Thanks!!

by protstein | November 12 2014

by M Birtwistle | September 24 2014

Perfect!
A google search lead me to this extension and the default title option (containing-folder\solution) is exactly what I need to tell which solution folder relates to which Visual Studio 2013 instance.

by Cristi-Ingineru | September 11 2014

by sacke | August 27 2014

by TyWeb | July 23 2014

Very limited documentation. There is NO WAY this product can display the FULL file path. I would not recommend installing this product! I used the Visual Studio Window Title Changer by István Pásztor (http://visualstudiogallery.msdn.microsoft.com/2e8ebfe4-023f-4c4d-9b7a-d05bbc5cb239) and I was up and running in 2 minutes. A far superior product if you want to display the FULL file path.

by Beanium | July 10 2014

Does exactly what I need, simple, configurable, very useful. Std feature of the IDE!?

by shmuel k | June 19 2014

Greate 10x !!!!

by tomasz_poradowski | May 14 2014

Very helpful when you're working on i.e. different branches of the same project.

by goodeye6 | April 19 2014

Outstanding. Perfect solution to juggling branches.

by bkstill | April 18 2014

Perfect for keeping track of which branch I'm working in.

by PCoombe | March 20 2014

Absolutely essential for working on multiple branches

by Yves Dolce at Mindspark | February 27 2014

1 - 20 of 55 Items   
Sign in to start a discussion


  • VS 11
    8 Posts | Last post August 06, 2015
    • Apparently it also works on the VS 11 beta, just needs some hacking of the downloaded file.
    • And which?
    • I was able to make it work with VS 2012 by adding a few lines in the manifest, however SetWindowText no longer works to modify the window title (it just affects the title of the window in the taskbar). And we cannot modify dte.MainWindow.Caption so something new needs to be found.
    • Hello Dávid, I have just released a new major version 2.0.0 that supports Visual Studio 2012 and custom patterns. Enjoy!
    • What did you use, if you don't mind me asking?  I'm working on my own extension, and can only get it to change the title in the taskbar using SetWindowText.
    • Hi Campbell, feel free to take a look at the source code on Codeplex, I guess it'll answer all your questions!
    • Nevermind, worked it out. (using System.Windows.Application)
    • Oops, that'll teach me not to refresh before posting.  Thanks for getting back to me. :)
  • Can't figure out parentPath logic
    5 Posts | Last post July 29, 2015
    • can you please tell me what i need to set for the "closest parent folder depth" and "farthest parent folder depth" in order for the title to display the full file path?  i cant get it to work properly and I've tried every combination of numbers.
      
      my current pattern is:
      
      [solutionName] - [parentPath]\[documentName]
    • Hello, you should just set "Farthest parent folder depth" to 99 (a number high enough so that it will capture all ancestors).
    • Remember to wait a few seconds for the settings to be applied.
    • its not working.
      
      full path:
      
      C:\P4_CC.PE2\src\CloudConnect.PE.Test\Client\OEM\tests\gotosso.spec.js
      
      settings:
      http://snag.gy/geV6f.jpg
      
      result:
      http://snag.gy/u4qbh.jpg
      
      Microsoft Visual Studio Premium 2013
      Version 12.0.40629.00 Update 5
      Microsoft .NET Framework
      Version 4.5.51641
      
      Plugin version is 2.8.1
      
      i tried reinstalling plugin but that didnt help
      
    • Thanks for the screenshots. This is by design: as explained in the settings description (at the bottom), [parentPath] is relative to the solution file only, not the document being displayed (which could be very far deep into the solution folder). I understand that you would like to display the document's full path, so I will try to add support for this scenario in a future version. If this is very urgent, feel free to play with the source code on Codeplex (now in C#).
  • Latest version fails to load in Visual Studio 2012
    5 Posts | Last post May 05, 2015
    • Hi,
      I just got prompted to install a new version and since I did it, the extension fails to load. The error screen tells me to look in Visual Studio's ActivityLog.xml file and this is what's in there:
      
        <entry>
          <record>63</record>
          <time>2015/05/01 12:50:55.384</time>
          <type>Error</type>
          <source>VisualStudio</source>
          <description>End package load [ErwinMayerLabs.RenameVSWindowTitle.RenameVSWindowTitle, RenameVSWindowTitle, Version=1.3.0.0, Culture=neutral, PublicKeyToken=ceec2b7720c0179d]</description>
          <guid>{5126C493-138A-46D7-A04D-AD772F6BE159}</guid>
          <hr>80004005 - E_FAIL</hr>
          <errorinfo>Could not load file or assembly 'Microsoft.VisualStudio.Shell.10.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.</errorinfo>
        </entry>
      
      I'm using VS 2012 Update 4.
    • Hi, thanks for reporting this issue, can you send me a message with your email via http://erwinmayer.com/contact? I will then be able to give you another build to test as I no longer have VS 2012 installed. In the meantime I have reverted to the previous version.
    • I was able to follow the guidelines of this excellent post on how to explicitly support multiple versions of Visual Studio: 
      http://stackoverflow.com/a/25629018/541420
      I have updated to version 2.8.1, can you confirm it works for you?
    • Hi there!
      Just installed version 2.8.1 and it's all back to working as before. Thanks!
    • Fantastic, thanks for the confirmation.
  • Current TFS Team Project `
    1 Posts | Last post January 19, 2015
    • I am often connected to different Team Projects and sometimes even entire servers. It would be nice to expose the connected Team Project and Server to display in the title.
  • Start Screen
    4 Posts | Last post January 15, 2015
    • Hi,
      Is it possible that you could also manipulate Visual Studio's start screen so the recent solution list gets displayed in the same format?
    • Hi cpmcgrath, thanks for your suggestion. I am not sure it would be possible to manipulate the start screen, but will look into it and keep you posted.
      A workaround in the meantime would be to hover the links to see the full path.
    • +1. It would be a great idea.
    • At my computer solution MRU list for VisualStudio 2013 is saved in registry in:
      
      HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\ProjectMRUList
      
      There are values "File1", "File2", etc...
      
      If value data for "File1" is:
      
      X:\dev\AbcSolution\branches\north\source\ABC.sln||False;ABC||||{00000000-0000-0000-0000-000000000000}
      
      and value data for "File2" is:
      
      X:\dev\AbcSolution\branches\south\source\ABC.sln||False;ABC||||{00000000-0000-0000-0000-000000000000}
      
      than you can change the value data to:
      
      X:\dev\AbcSolution\branches\north\source\ABC.sln||False;North ABC||||{00000000-0000-0000-0000-000000000000}
      and
      X:\dev\AbcSolution\branches\south\source\ABC.sln||False;South ABC||||{00000000-0000-0000-0000-000000000000}
      
      to differentiate branches in start screen MRU list.
      
      It would be cool if some plugin could automate this registry tweaks for VS2013.
      
      But I think this does not work on VS2010. Not sure if it works for VS2012.
      
  • Attaching to a running application/service
    1 Posts | Last post September 25, 2014
    • Great solution!  Thank you!  One small thing though if I attach VS 2010 to an already running process then the title doesn't reflect the running/debugging state.
  • Can't use Git 1.9.0
    7 Posts | Last post June 26, 2014
    • Good morning!
      It seems that the extensions can't find Git 1.9.0:
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
      RenameVSWindowTitle: [gitBranchName] Exception: System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
         at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
         at System.Diagnostics.Process.Start()
         at ErwinMayerLabs.RenameVSWindowTitle.RenameVSWindowTitle.IsGitRepository(String workingDirectory)
         at ErwinMayerLabs.RenameVSWindowTitle.RenameVSWindowTitle.GetNewTitle(String pattern)
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
      I'm using VS2013.
      Someone else?
      Bye,
      Nando
    • Hi Ferdinando, have you made sure git is part of your PATH? (if you type "git.exe" in any command line, it should be a recognized command for the feature to work).
    • Got it, thank you :)
    • Hi Mayerwin, Ferdinando,
      
      I have been get this issue. I think need note "Need & How to add git.exe to Windows PATH" in Description.
    • Good suggestions, thanks.
    • HI Mayerwin,
      
      Thank for your description.
      
      Is it possible have color format?
      
      Example: [gitBrachName/color:red/bold:true/italic:true]
      
      Thank :)
    • Unfortunately, I am not aware of any way to change the color/font format in a window title. It is certainly possible (everything is possible), but may require very unorthodox hooks. You are free to play with the extension's source code if you would like to check this further.
  • Latest release error (2.6)
    7 Posts | Last post February 23, 2014
    • Hi i'm using Visual Studio 2013 with a tfs2012 back end. Since updating to the latest version the rename has stopped working. If i switch the debug output on i get the following output.
      
      
      RenameVSWindowTitle: UpdateWindowTitle exception: System.InvalidCastException: [A]Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt cannot be cast to [B]Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt. Type A originates from 'Microsoft.VisualStudio.TeamFoundation.VersionControl, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.TeamFoundation.VersionControl\v4.0_12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.TeamFoundation.VersionControl.dll'. Type B originates from 'Microsoft.VisualStudio.TeamFoundation.VersionControl, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.TeamFoundation.VersionControl\v4.0_11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.TeamFoundation.VersionControl.dll'.
         at ErwinMayerLabs.RenameVSWindowTitle.RenameVSWindowTitle.GetNewTitle(String pattern)
         at ErwinMayerLabs.RenameVSWindowTitle.RenameVSWindowTitle.UpdateWindowTitle(Object state, EventArgs e)
    • Hi, I have rolledback to 2.5.0 while I am looking for a fix. Please uninstall and reinstall if no update option is proposed. Sorry for the inconvenience.
      
      It seems the assemblies needed to support TFS (the feature added by 2.6.0) are not compatible across versions of Visual Studio...
      Which is not easy to test for me unfortunately.
    • You can fix this with reflection. That way your plugin doesn't have to have dependencies on TF assemblies and you can load the correct version at runtime. For example for VS2013 you can use the following assembly reference: "Microsoft.TeamFoundation.VersionControl.Client.Workstation, Microsoft.TeamFoundation.VersionControl.Client, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
      You can obtain the typeinfo for the WorkspaceInfo class similarly.
      For vs2012 and 2010 you just replace the first digit of the assembly reference version to dte_version: 11.0.0.0 and 10.0.0.0 respectively. I could get the workspacename of a VS2013 workspace name from a VS2010 instance with this technique.
      
      I don't know whether different Visual Studio versions load and use different assembly versions than their own in some circumstances... My guess would be that they always use their own version but I havent check this.
    • I actually fixed this already in the current release, by simply loading the required object without strong typing: "dynamic vce = this.DTE.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt")"
      This way I don't even need a version number so it should be future-proof :).
    • That solution is indeed nicer, I went the reflection route because I wanted code that compiles with older VS versions too. As I see VersionControlExt is available only for VS2012 and later according to msdn, if you use Workstation.Current.GetLocalWorkspaceInfo then your code will work for VS2005-VS2013 if the objects come from the right assembly version. I've tested it as I have all versions installed at work.
    • Good point, I had not tested workspaceName under VS 2010 and it does indeed not get replaced. No one has complained so far, but I already have a possible fix thanks to your suggestion. The only issue is that I am not able to test as I am not a TFS user myself, so I will wait until someone needs this and is willing to test before releasing into the wild.
      I am only looking up assembly by short name "Microsoft.TeamFoundation.VersionControl.Client.Workstation" instead of the fully qualified name, do you think it would not work?
      Nice job with your extension by the way :).
    • Thank you! I've used your extension before but I created a very big mess on my hard drive with many projects that have different directory structures. My first plugin to aid this was basically the same as yours, I just modified the config so I could add several option pages depending on the solution filename. Then I thought it would be fun to mess around a bit with expression evaluation and this project was a good fit. My plugin is much more complicated, its rather for "hardcore" users. :-)
      
      Although on the msdn page of Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt class I can switch only to VS2012 and VS2013 I've found forum entries where people said it is accessible in VS2005 while it isn't in VS2008. With my VS2010 I could also query it without problems so it is most probably an msdn documentation bug. I think you should stick to your current solution if people don't complain. The DTE.GetObject() works differently than my code that uses reflection, DTE.GetObject() call returns COM references and in my opinion a specific version of the dte reference probably always returns its own versioncontrol objects. I've compiled a plugin in VS2010 with dynamic typing and under VS2013 the plugin queried the right interface with GetObject(). Additionally a problem with Workstation.Current is that it isn't visible to COM.
      I'm also far from being a TFS user, I just downloaded and installed the 90day VS2013 trial (http://www.visualstudio.com/en-us/downloads) and since the basic TFS service is free for 5 users (http://www.visualstudio.com/products/visual-studio-online-overview-vs) I've created 2 test workspaces. You could give it a go, the setup is easy and then you have a testbed.
  • Git branch name?
    6 Posts | Last post February 22, 2014
    • It would be really handy if we could include the name of the current git branch for the solution (assuming we're in a git repo)
    • This post inspired me in finding out a new feature to implement in my extension in the near future. My extension sets the title by evaluating a user defined expression. By introducing a new "exec" function call that is performed periodically by the expression evaluator (for example every X seconds defined by the user) the expression could use the output of a custom command as part of the titlebar of Visual Studio. The custom command could be a git command, or a custom script of the user that further customizes the output and exitcode of some other external command(s). This gives an extra layer of freedom in setting the titlebar.
      
      +1 virtual points for your post :-)
    • Hi Wilka, I have just updated the extension to support Git branch names using the tag [gitBranchName] :). Enjoy.
    • Hi! Switching Git branches makes my title bar go multirow, pretty ugly :(
      https://dl.dropboxusercontent.com/u/1716601/2014-02-20_214730.jpg
      Someone else experienced this?
    • Thanks for your feedback Ferdinando. I have updated the extension to fix this, using "git symbolic-ref --short -q HEAD" as the command to obtain the branch name. Please check version 2.7.1.
    • Thank you Mayerwin, weel done! :)
  • documentPath tag?
    2 Posts | Last post February 18, 2014
    • Am I missing something or can I not simply show the whole path of the active file like C:\WhatSoEver\SolutionFolderParent\SolutionFolder\subproject\folder1\folder2\myfile.cs or relative to the solution like SolutionFolder\subproject\folder1\folder2\myfile.js
      
      Or should parentX works relative from the file as well? Only able to get it working relative to the solution file.
      
      Any comments?
    • Hi pantarhei, currently this scenario is not supported but it could be in a future release, as it should not be very hard to implement.
      parentX only refers to the parents from the solution file.
1 - 10 of 23 Items