Tabs Studio Blog (organizing Visual Studio document tabs)

April 26, 2011

Grouping class and interface tabs

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

It is a common convention to have interface file names started with ‘I’ (like IService.cs) and implementation files named the same excluding the first ‘I’ (like Service.cs). Would be nice to have them on one tab. Below is a solution copied from the recent discussion on the Tabs Studio mail list.

It is easy to group such files, the problem is how the result looks like. For example, the best title grouping regex for this task I can think
of is:

(?<Ext>I(?<Name>.+?)\.cs)|(?<Name>(.*[/\\])?.+?)(?<Ext>\..+)

It nicely groups two files as “Service .cs IService.cs”, but when IService.cs is the single file in a tab it will be displayed as “ServiceIService.cs” (and IInterface1.cs will be displayed as “Interface1IInterface1.cs”):

Grouping class and interface tabs using only title grouping regex

Grouping class and interface tabs using only title grouping regex

To improve interface tab name representation I’ve created the additional ITransform add-in to transform interface titles after grouping. With this add-in for the IService.cs and Service.cs pair a grouped tab will be “Service .cs Interface” and a single interface tab will remain “IService.cs”:

Grouping class and interface tabs using title grouping regex and the ITransform add-in

Grouping class and interface tabs using title grouping regex and the ITransform add-in

ITransform still requires setting up the special interface grouping regex first. Add the following title grouping regex section:

I(?<Name>[A-Z].+?)\.(?<Ext>.+)

For example, if you use default title grouping settings, your combined title grouping regex will be:

I(?<Name>[A-Z].+?)\.(?<Ext>.+)|(?<Name>(.*[/\\])?.+?)(?<Ext>\..+)

Download link: ITransform v1.0.0.

Remembering highlighted tabs

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

I’ve added saving of the highlighted tabs list when you close Visual Studio and restoring highlighting when the solution is opened the next time. This information is stored per solution in a [solution name].marker.tss file in a solution directory along with the sln and suo files.

Download link: Marker v1.0.2.

April 20, 2011

Opening corresponding files automatically

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

One of the most suggested features for Tabs Studio is to automatically open corresponding files (e.g. when Class.cpp is opening automatically open Class.h). It is also one of the hardest to make right. More than a year ago Andreas Guenther wrote the first implementation of this extension and after numerous private tests and a lot of feedback I present you AutoOpener.

The AutoOpener add-in uses the same infrastructure that shows Open commands when you right click on a tab and in the core of the TabsStudio.Connect.OpenCorrespondingFile command. Usage of AutoOpener indicated that liberal default tab grouping options (letting files with any extension to be opened) cause strange errors from Visual Studio when opening a code file that happens to share the same name with a project or a resource file. These errors are fist of all puzzling (strange error code after just double-clicking a file) and then require to manually add excluding rules (for project and resource files) to title or path grouping options. To make AutoOpener behavior more predictable I’ve added the explicit list of extensions that are considered for opening:

AutoOpener's default allowed extensions list

AutoOpener's default allowed extensions list

You can add and remove extensions from this list going to AutoOpener options, but note that if an extension is blocked for grouping in Tabs Studio options it will not be opened automatically no matter if it on AutoOpener‘s list or not.

Download link: AutoOpener v1.0.3 (requires Tabs Studio v2.3.4).

Tabs Studio v2.3.4 released

Filed under: Releases — Sergey Vlasov @ 9:45 am

Tabs Studio v2.3.4 released:

  • Added the TabsStudio.Connect.CloseAllButThisTab command.
  • Added the GetCorrespondingFiles function to ITabsStudioEngine extensibility API.
  • Updated the Disambiguator add-in to prefer project names for tabs from different projects.
  • Fixed excessive window rescans when applying changed Tabs Studio options.

Download link: Tabs Studio v2.3.4.

Blog at WordPress.com.