Tabs Studio Blog (organizing Visual Studio document tabs)

May 16, 2012

Short Tabs Priority

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

The tabs layout algorithm in Tabs Studio tries to minimize number of rows, distribute tabs evenly between rows and minimize tab movements between rows as you add or remove tabs. The last goal to minimize tab movements between rows sometimes creates quite wide tabs:

Extra wide tabs in the top row

Extra wide tabs in the top row

For the new release I’ve reduced the priority of no tab movement and for the same tabs the new look is this:

More priority for shorter tabs in the new release

More priority for shorter tabs in the new release

Plus I’ve added the new ShortTabsPriority property that you can customize from a custom style. It is a double value. Value of 1 is old behavior. Default in the new release is 3. Value of 10 is a high priority and 100 is a very high priority. Following is an example that you can use to customize the tabs width/movement balance:

<Style TargetType="TabsStudio:Tabs" BasedOn="{StaticResource DefaultTabsStyle}">
  <Setter Property="ShortTabsPriority" Value="10"/>
</Style>
High priority of short tabs

High priority of short tabs

Download link: Tabs Studio v2.7.5.

April 23, 2012

SQL Server 2012 Management Studio support

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

SQL Server 2012 was released about a month ago:

SQL Server 2012 Management Studio splash screen

SQL Server 2012 Management Studio splash screen

The new management studio uses Visual Studio 2010 shell. Extensibility for SSMS 2012 is still not officially supported by Microsoft, but luckily Visual Studio add-ins work just fine in it. Unfortunately, Visual Studio extensions don’t work as ssms.exe contains white list of allowed package GUIDs. I had to change my Visual Studio 2010 helper extension to helper add-in and after that Tabs Studio works without problems in the new IDE:

Tabs Studio in SSMS 2012

Tabs Studio in SSMS 2012

Download link: Tabs Studio v2.7.0.

March 21, 2012

Preview tab support in Visual Studio 11

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

The preview tab in Visual Studio 11 is a separate reusable tab displayed in the right corner of the document tabs well. In Tabs Studio the preview tab is opened in the last tab position:

The preview tab in Tabs Studio

The preview tab in Tabs Studio

All relevant add-ins like Sorter, AutoOpener, PriorityGroup and OpenNext were updated to ignore the preview tab and don’t move it from the last position. I’ve added the new IsPreviewTab property to style the preview tab and show the, also new, Open button that transforms the preview tab into the regular tab.

In the Tab Coloring Rule dialog you can now access the preview tab property similar to the other properties like selected tab and previously selected tab. Most of the time, I think, you will set it to False to keep the default preview tab look. (Note, that I’ve also changed, sometimes confusing, three state checkboxes to descriptive comboboxes):

Preview tab property setup in the Tab Coloring Rule dialog

Preview tab property setup in the Tab Coloring Rule dialog

If you are interested in custom VS 11 styling, see the new light and dark default style definitions. Next I plan to add support for floating tab groups in Visual Studio 11.

Download link: Tabs Studio v2.6.3.

March 5, 2012

Visual Studio 11 Beta support

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

I’ve added preliminary support for Visual Studio 11 Beta. For both light and dark themes in VS I’ve added predefined styles in Tabs Studio (see light and dark style definitions) and the corresponding style is selected automatically on startup depending on your Visual Studio settings:

Tabs Studio with the light theme in Visual Studio 11 Beta

Tabs Studio with the light theme in Visual Studio 11 Beta


Tabs Studio with the dark theme in Visual Studio 11 Beta

Tabs Studio with the dark theme in Visual Studio 11 Beta

Next I plan to add support for the preview tab and for floating tab groups.

Download link: Tabs Studio v2.6.2.

March 3, 2012

Document tabs in Visual Studio 11 Beta

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

Visual Studio 11 Beta was released this week (see what’s new):

Visual Studio 11 Beta splash screen

Visual Studio 11 Beta splash screen

Very little has changed in tabs behavior since the developer preview (see my older blog post Document tabs in Visual Studio 11 Developer Preview), but the UI theme is all new:

Visual Studio 11 Beta light color theme

Visual Studio 11 Beta light color theme

Plus there is also the dark theme:

Visual Studio 11 Beta color theme options

Visual Studio 11 Beta color theme options


Visual Studio 11 Beta dark color theme

Visual Studio 11 Beta dark color theme

One more color change is for the scenario when you have several tab groups or floating document windows. In Visual Studio 2010, selected but inactive document tab had two states: last active document group or not. See how in the following screenshot MainWindow.xaml.vb is gray and its tab group has gray underline (MainWindow.xaml.vb was the selected document before I switched to Solution Exlorer), Application.xaml.vb is almost transparent and its tab group has corresponding underline:

Special color for the tab group with last active document in Visual Studio 2010

Special color for the tab group with last active document in Visual Studio 2010

In Visual Studio 11 Beta there is no such distinction. All inactive tab groups are just grey:

Same color for inactive tab groups in Visual Studio 11 Beta

Same color for inactive tab groups in Visual Studio 11 Beta

I’ve not found significant changes in VS 11 tabs customization comparing to the developer preview:

Tabs and windows options in Visual Studio 11 Beta

Tabs and windows options in Visual Studio 11 Beta

Remember Visual Studio 2010 Beta release when Microsoft introduced WPF UI? This beta again completely changed VS look and feel. Let’s see whether customers’ feedback to add some color back to Visual Studio 11 prompts Microsoft to reconsider the latest design.

 

 

Organize Visual Studio tabs with Tabs Studio add-in

December 16, 2011

Dark theme for Visual Studio 2010

Filed under: Uncategorized — Tags: , — Sergey Vlasov @ 12:32 pm

If you like the original Visual Studio 2010 tabs theme you can use the excellent Visual Studio 2010 style for Tabs Studio by Jameel Al-Aziz. But, as this style changes many aspects of tabs presentation, it also overrides custom colors that you assign with tab coloring rules in Tabs Studio presentation options. (Of course, you can implement all coloring rules as style rules, it just requires working directly with XAML). Below is a simple style that closer to the overall Visual Studio 2010 theme and still supports additional tab coloring rules.

The following style changes tab text color from default black to white for not selected and not highlighted tabs:

<Style TargetType="TabsStudio:TabName" BasedOn="{StaticResource DefaultTabNameStyle}">
  <Style.Triggers>
  <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource AncestorType=TabsStudio:Tab}}" Value="False"/>
                <Condition Binding="{Binding Path=IsTabSelected, RelativeSource={RelativeSource AncestorType=TabsStudio:Tab}}" Value="False"/>
            </MultiDataTrigger.Conditions>
            <Setter Property="Foreground" Value="White"/>
      </MultiDataTrigger>
  </Style.Triggers>
</Style>

<Style TargetType="TabsStudio:TabExtension" BasedOn="{StaticResource DefaultTabExtensionStyle}">
  <Style.Triggers>
  <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource AncestorType=TabsStudio:Tab}}" Value="False"/>
                <Condition Binding="{Binding Path=IsTabSelected, RelativeSource={RelativeSource AncestorType=TabsStudio:Tab}}" Value="False"/>
            </MultiDataTrigger.Conditions>
            <Setter Property="Foreground" Value="White"/>
      </MultiDataTrigger>
  </Style.Triggers>
</Style>

<Style TargetType="TabsStudio:TabNameModificationMarker" BasedOn="{StaticResource DefaultTabNameModificationMarkerStyle}">
  <Style.Triggers>
  <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource AncestorType=TabsStudio:Tab}}" Value="False"/>
                <Condition Binding="{Binding Path=IsTabSelected, RelativeSource={RelativeSource AncestorType=TabsStudio:Tab}}" Value="False"/>
            </MultiDataTrigger.Conditions>
            <Setter Property="Foreground" Value="White"/>
      </MultiDataTrigger>
  </Style.Triggers>
</Style>

<Style TargetType="TabsStudio:TabExtensionModificationMarker" BasedOn="{StaticResource DefaultTabExtensionModificationMarkerStyle}">
  <Style.Triggers>
  <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource AncestorType=TabsStudio:Tab}}" Value="False"/>
                <Condition Binding="{Binding Path=IsTabSelected, RelativeSource={RelativeSource AncestorType=TabsStudio:Tab}}" Value="False"/>
            </MultiDataTrigger.Conditions>
            <Setter Property="Foreground" Value="White"/>
      </MultiDataTrigger>
  </Style.Triggers>
</Style>

Plus you need to create a tab coloring rule for not selected tabs with transparent background:

<SolidColorBrush Color="Transparent"/>

Transparent background for not selected tabs

Transparent background for not selected tabs


It is very important that this rule be the first one in your tab coloring rules so that additional tab coloring rules could override it with custom colors. Below is the new tabs look:
Dark tabs theme in Visual Studio 2010

Dark tabs theme in Visual Studio 2010


Now you can for example set a specific color for a project with Tab coloring rules. As tab text is white, you need to use dark colors for background or use normal colors with transparency (to set transparency level, use the Opacity slider in the Color Picker dialog):
Project tab coloring rule with transparency

Project tab coloring rule with transparency


Dark theme with custom transparent colors for two projects

Dark theme with custom transparent colors for two projects


Additionally you can set selected but unfocused tab background to gray as in the original Visual Studio 2010 theme:

<Condition Binding="{Binding Path=IsGroupFocused, RelativeSource={RelativeSource Self}}" Value="False"/>
<Condition Binding="{Binding Path=IsGroupWithLastActiveDocument, RelativeSource={RelativeSource Self}}" Value="True"/>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
  <GradientStop Color="#FFFDFDFD" Offset="0"/>
  <GradientStop Color="#FFD5DAE3" Offset="0.49"/>
  <GradientStop Color="#FFCED4DF" Offset="0.5"/>
  <GradientStop Color="#FFCED4DF" Offset="1"/>
</LinearGradientBrush>

Gray color rule for selected but unfocused tab

Gray color rule for selected but unfocused tab


Gray selected tab when Solution Explorer is active

Gray selected tab when Solution Explorer is active

Update: Added white color to modification markers in the style.

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 18, 2011

Less rows priority

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

Sometimes you get tabs arranged in more rows than necessary:

Tabs in 4 rows

Tabs in 4 rows


The same tabs in 3 rows

The same tabs in 3 rows

This is because the current tab layout algorithm first of all tries to minimize distracting tab movement between rows (keeping tab in the last position, reserving a row buffer for new tabs and changes in tab width).

I’ve added the new LessRowsPriority property to let you customize this behavior. (Remember also the RowBuffer property.) The larger LessRowsPriority value the more actively Tabs Studio will try to minimize number of rows. It is a double with default value of 1. Value of 10 is kind of high priority and value of 100 – very high priority. You can set it in a custom style like this:

<Style TargetType="TabsStudio:Tabs" BasedOn="{StaticResource DefaultTabsStyle}">
  <Setter Property="LessRowsPriority" Value="10"/>
</Style>
« Newer PostsOlder Posts »

Blog at WordPress.com.