Tabs Studio Blog (organizing Visual Studio document tabs)

April 9, 2016

SSMS 2016 RC2 breaking changes

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 11:46 pm

On April 1 SQL Server 2016 Release Candidate 2 was released along with the SQL Server Management Studio March 2016 preview refresh v13.0.13000.55. This new version of SSMS uses the Visual Studio 2015 Isolated shell and doesn’t allow any 3rd party extensions like Tabs Studio.

Update (May 10, 2016): Thanks to Karl Burtram from Microsoft, Tabs Studio is now in the SSMS 2016 package load inclusion list.

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.)

February 8, 2015

Visual Studio 2015 support

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 8:19 pm

Visual Studio 2015 Community Technology Preview 5 is currently available for download:

Visual Studio 2015 CTP 5 splash screen

Visual Studio 2015 CTP 5 splash screen

While I do not see any changes in default VS tabs behavior, VS 2015 stopped support for add-ins and that required substantial internal changes in Tabs Studio. Now, instead of VS Add-in Manager, Tabs Studio is presented in VS Extensions and Updates dialog. You can disable and uninstall it from there (though to uninstall all files it is still recommended to use Control Panel):

Tabs Studio in Visual Studio 2015 Extensions and Updates dialog

Tabs Studio in Visual Studio 2015 Extensions and Updates dialog

With the new implementation I removed the Connect word from Tabs Studio command names that you can assign to keyboard shortcuts:

Tabs Studio commands in Visual Studio 2015

Tabs Studio commands in Visual Studio 2015

Everything else in Tabs Studio should work as usual. Please let me know if it doesn’t 🙂

Tabs Studio in Visual Studio 2015 CTP 5

Tabs Studio in Visual Studio 2015 CTP 5

Download link: Tabs Studio v3.5.0.

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.

October 29, 2013

Multipart names in the title grouping regex

Filed under: Uncategorized — Sergey Vlasov @ 7:54 pm

I’ve added support for multiple captures of the Name and Ext groups in the Title grouping regex. For example,
(?<Name>.+?)-(?<Name>.+?)(?<Ext>\..+) will create the MainWindow name from the Main-Window.xaml tab. (?<Ext>Test)(?<Name>.+?)(?<Ext>\..+) will create the Test.xaml extension from the TestWindow.xaml. You can use as many separate Name and Ext groups as you need, the resulting string will be concatenated from all captures. It allows you to capture multiple parts of the original tab title as the name or extension. Technically I just switched to the built-in Group.Captures .NET regex feature.

Download link: Tabs Studio v3.1.5.

Update: Connell Watkins shared his use of multiple captures to group lots of similar files.

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 27, 2013

Visual Studio 2013 Preview

Filed under: Uncategorized — Tags: — Sergey Vlasov @ 3:13 pm

Visual Studio 2013 Preview was released yesterday (see also a video):

Visual Studio 2013 Preview splash

Visual Studio 2013 Preview splash

The only new documents navigation related feature I can see is Peek Definition:

Peek Definition in Visual Studio 2013 Preview

Peek Definition in Visual Studio 2013 Preview

It is similar to the older Code Definition tool window, but opens inside the code editor. Only one Peek Definition sub-window can be opened at once and it is read-only.

Sorting rules

Filed under: Uncategorized — Sergey Vlasov @ 8:05 am

The new version of the Sorter add-in lets you create multiple sorting rules:

Sorter Options

Sorter Options

For example, from the picture above the sorter rules are: tabs highlighted with the Marker add-in go to beginning, tabs with Test in the name go to end, and then tabs are sorted by project and by name.

The Rule type TabNameWithPath can be used in Web projects where tab names contain the parent folder name. The rule type Path uses the Paths property (document paths separated by ‘$’).

Match regex by default captures all text of the property selected by the rule type. You can match e.g. tabs from the project Core with (?<M>^Core$) and move these tabs to the beginning or to the end. Or you can group tabs by category, listing prefixes and suffixes in tab names around category words:
^(I|Test)?(?<M>.+?)(Manager|Repository)?\..+$

Inverse order when unchecked sorts tabs in alphabetical order or places matched tabs to beginning. When checked – sorts from Z to A or places matched tabs to end.

Download link: Sorter v1.0.10

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.

Older Posts »

Blog at WordPress.com.