Tabs Studio Blog (organizing Visual Studio document tabs)

June 16, 2017

Super commands for super groups

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 10:06 am

I’ve created the new SuperCommands add-in that adds two tab context menu commands Close super group and Close all but this super group:

If you use super groups, please, have a look.

Download link: SuperCommands v1.0.0.

February 1, 2016

Tracking changed files

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 1:18 pm

The Visual Studio editor tracks changed lines and displays them on the selection margin: yellow – changes since the last save, green – saved changes since file opening, orange – reversed changes (undo) after a save operation. I think it can be useful to indicate changed files in the tab title as well. An orange bar instead of the default asterisk for files changed since the last save (orange looks better than yellow in the tab title), plus a green bar for saved files:

Changed file indicators in tab titles

Changed file indicators in tab titles


I’ve implemented it as the TrackEd add-in for Tabs Studio. These indicators should visually separate tabs you edited and other tabs used only for viewing. Give it a try and share your experience!

Download link: TrackEd v1.0. (Don’t forget to unblock the TrackEd.dll file after downloading from file properties.)

P.S. To clear tracking changes and the title indicator for a saved file, you can use this command for Visual Commander. (It works independently of Tabs Studio.)

March 11, 2014

Add an SQL query description to the SSMS tab name with the SQLComment add-in

Filed under: Uncategorized — Tags: , — Sergey Vlasov @ 9:35 pm

Many automatically opened SQL tabs in SQL Server Management Studio have names like SQLQuery1.sql, SQLQuery2.sql etc:

SQLQuery tabs in SSMS 2012

SQLQuery tabs in SSMS 2012

To better distinguish such tabs I’ve created the SQLComment add-in that can add a comment from the query body to the tab name:

Tabs with comments in SSMS 2012

Tabs with comments in SSMS 2012

You can chose any comment format and configure SQLComment to extract it using a .NET regular expression. For example, the default regex
StoredProcedure \[dbo\]\.\[(?<M>\w+)\] extracts the procedure name (AddEvent) to the M named group from the following code:

USE [ReportServer]
GO
/****** Object:  StoredProcedure [dbo].[AddEvent]    Script Date: 3/11/2014 8:29:10 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SQLComment options

SQLComment options

To extract description from a comment like ––– provides details on investors you can use the regex ^––– (?<M>.+)$. To support several formats you can combine regexes with ‘|’ like ^––– (?<M>.+)$|StoredProcedure \[dbo\]\.\[(?<M>\w+)\]. You can use several separate M groups (line Name and Ext in standard tab grouping), the resulting string will be concatenated from all captures. Only tabs starting with SQLQueryNN.sql are considered for commenting.

Download link: SQLComment v1.0.0.

Update (March 20): Added commenting support for grouped tabs SQLComment v1.0.1.

Update (October 23): Added the “Set SQL comment…” tab context menu command for temporary comments. Added more customization for displaying comments. SQLComment v1.0.4.

August 27, 2013

Solution settings directory

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 11:02 am

Saver and Marker add-ins need to save tabs order and highlighted tabs when you exit Visual Studio to restore them when you open the solution next time. This per-solution information is stored in .tss and .marker.tss files in directories along with your solution .sln files:

Marker and Saver per-solution files

Marker and Saver per-solution files

I’ve added an option to store all per-solution files in the one common directory. You need to create this directory and create the HKEY_CURRENT_USER\Software\Sergey Vlasov\Tabs Studio\SolutionSettingsDir registry value defining the directory for Tabs Studio add-ins:

SolutionSettingsDir registry setting

SolutionSettingsDir registry setting

New per-solution settings will be stored in this directory with different file names for different solutions:

Saver and Marker files in the common solution settings directory

Saver and Marker files in the common solution settings directory

June 26, 2013

Prefix tab grouping with ITransform

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 2:37 pm

It is common to have concepts like User and Admin with multiple classes around them like UserManager, UserRepository and AdminManager, AdminRepository. With prefixes I, Test and suffixes Manager, Repository we end up with the following tabs:

Multiple tabs in Visual Studio 2012

Multiple tabs in Visual Studio 2012

Normally tabs are not nicely sorted by concept like on the picture above and you may want to automatically group related tabs in a larger tab. It is easy to group by suffix – just add common suffix names to the extension part in the Title grouping regex:

Suffix grouping options

Suffix grouping options


Tabs with suffix grouping

Tabs with suffix grouping

Grouping by prefix is also easy – add common prefix names to the front of the Title grouping regex:
(?<Prefix>I|Test)?(?<Name>.+?)(?<Ext>(Manager|Repository)?\..+)
Unfortunately, prefix names are now not displayed (because only Name and Ext groups are displayed by default):

Prefix grouping with truncated names

Prefix grouping with truncated names

This is when the ITransform add-in helps. It renames truncated names back to normal. In the latest v1.0.3 you can even customize how prefix information should be displayed:

ITransform Options

ITransform Options


Prefix grouping with ITransform

Prefix grouping with ITransform

Note that the Interface regex should match only tabs with our prefixes – the Prefix group is not optional comparing to the Title grouping regex. The Replacement regex can be for example only ${Prefix} or include your custom text.

Download link: ITransform v1.0.3

September 17, 2012

Marker menu palette

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 6:34 pm

Instead of a submenu, I’ve created a top level tab context menu selection for Marker highlighting colors:

Marker menu palette

Marker menu palette

It will be easier to mark tabs with different colors, but I’m a little worried that this menu item is now too eye catching. Please, let me know what do you think.

December 13, 2011

Add-in settings

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 9:57 pm

I’ve added more organization to add-in settings storage and activation configuration.

Previously add-ins stored global settings in the add-ins directory near the binary files. Now I’ve added the GetAddinSettingsDirectory method to the ITabsStudioEngine interface providing a directory near general Tabs Studio settings. It makes possible to have separate add-in settings for SSMS 2008 and Visual Studio 2008.

Previously all .dll add-ins from the add-ins directory were loaded at startup. Now the list of active add-ins is stored near general Tabs Studio settings. You control this list as usual from Add-in Manager. It again makes now possible to have separate active add-ins for SSMS 2008 and Visual Studio 2008.

Export/import settings now save and restore all add-in settings as well.

Download link: Tabs Studio v2.6.0.

November 28, 2011

Sorting by project and extension

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 10:10 pm

I’ve added the ability to sort tabs by project and extension:

Sorter Options

Sorter Options


A tab can have several extensions. To simplify sorting by extension behavior, only the first extension present on tab creation is used for sorting. You can select the Re-sort tabs context menu command to reset it.

For example, if Sorter is set up to sort only by extension and you open Form1.cs [Design] and stdafx.h:

Sorting by extension

Sorting by extension


Now you open stdafx.cpp. The stdafx tab keeps second position because “only the first extension present on tab creation is used for sorting” – in our case .h:
Order not changed when a new extension is added

Order not changed when a new extension is added


But if we Re-sort tabs, then .cpp becomes the primary extension for the stdafx tab and it moves before Form1:
Re-sorted tabs

Re-sorted tabs


Please, let me know if you find sorting by extension actually useful for your work 🙂

The updated Sorter add-in is included in Tabs Studio v2.5.7.

November 17, 2011

Sorting by full tab name

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 8:12 am

Depending on the project type you are working on, Tabs Studio settings and add-ins enabled, tabs may have a path in the tab name. The Sorter add-in compares tab names without path, so for an ASP.NET website project, tabs are sorted like this:

Sorting without path

Sorting without path


I’ve added the option to sort by full tab name. You can enable it in Tabs Studio – Add-in manager – Sorter options:
Sorter Options

Sorter Options


With this option enabled the same tabs are now sorted like this:
Sorting with path

Sorting with path


The updated Sorter add-in is included in Tabs Studio v2.5.6.

October 17, 2011

Priority group

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 10:32 pm

If you have a frequently accessed tab that is open for a long time, you may want to position it at the beginning of the list for easier access and better tabs organization. The new PriorityGroup add-in lets you add such tab to the priority group and will keep it at the beginning when this tab is open:

Adding a tab to the priority group

Adding a tab to the priority group

Priority tabs are identified by tab name and work globally across all solutions. To remove a tab from the priority group, right click on the tab and select Remove from priority group.

You can color priority tabs using the new TabsStudioPriorityGroup:Properties.Top property. For example, in the standard Tab Coloring Rule dialog, add the following custom condition:

<Condition Binding="{Binding Path=(TabsStudioPriorityGroup:Properties.Top),
  RelativeSource={RelativeSource Self}}" Value="True"/>
A tab coloring rule for priority tabs

A tab coloring rule for priority tabs

The Sorter add-in now recognizes if PriorityGroup is running and sorts priority tabs first:

Sorter and PriorityGroup sort and prioritize tabs

Sorter and PriorityGroup sort and prioritize tabs

PriorityGroup will be included in the next Tabs Studio release.

Older Posts »

Blog at WordPress.com.