Make indentation in code more readable with IndentRainbow

IndentRainbow extension for Visual Studio 2017 by Marcel Wagner shows rainbow colors for different levels of indentation in your source code:

It improves code navigation especially in complicated code with two spaces of indentation.

The colors and the number of spaces used for detection of indent levels can be customized:

Full source code is available on GitHub.

Posted in Reviews | Tagged , | Leave a comment

Freeing screen space in Visual Studio 2019

In Visual Studio 2019, even if you hide all toolbars, Live Share and Feedback buttons while rarely used take up valuable screen space:

You can hide this area with Visual Commander and Hide Live Share and Feedback in VS 2019 extension:

Detailed installation instructions:

  1. Install Visual Commander in Visual Studio 2019.
  2. Download Hide Live Share and Feedback in VS 2019.vcmd.
  3. In the main VS menu Extensions – VCmd – Import… – Select Hide Live Share and Feedback in VS 2019.vcmd
  4. Restart Visual Studio.

Plus, if you really don’t use any toolbars, you can additionally hide the toolbars area with Hide Live Share and Feedback in VS 2019 plus toolbars area.vcmd and free up 5 more vertical pixels under the main menu:

Posted in Visual Studio tips, Vlasov Studio tools | Tagged , | Leave a comment

Breaking IDE changes in Visual Studio 2019

Two weeks before the RTM launch event, Visual Studio 2019 release candidate demonstrates new functionality that may change your workflow currently available with Visual Studio 2017. I’ll demonstrate differences comparing latest Visual Studio 2019 Community RC.2 with Visual Studio 2017 Community version 15.9.9.

1. Visual Studio 2019 replaces the Start Page with the Start Window:

Visual Studio 2017 has the Start Page not blocking the main Visual Studio window and showing Developer News:

Start Page also supports customization. For example, BetterStartPage extension replaces the news section by a custom project dashboard where you can organize solutions and projects into different groups for fast access. Start Page: Please give it back! is the open issue in the community forum.

2. In Visual Studio 2019 top level menus from extensions are moved to the Extensions menu as submenus:

In Visual Studio 2017 it was much easier to access them from the top level with the mouse or a keyboard shortcut:

Get rid of new Extensions menu is the open issue in the community forum.

3. Visual Studio 2019 no longer shows a standard title bar:

Visual Studio 2017 displays in the title bar the solution name, optional admin access and optional experimental instance:

The dedicated title bar is an easy target for dragging the main window. And it is customizable with the Visual Studio Window Title Changer extension, for example you can add a solution directory to the title or a branch name. Do not remove title bar from Visual Studio 2019 is the “completed” issue in the community forum.

4. Enforced background extensions loading in Visual Studio 2019 adds additional delay to Visual Studio startup time if your work depends on extensions, without clear indication when you can start using them.

5. Visual Studio 2019 no longer allows to create small code fragment editors. In Visual Studio 2017 with the Task Canvas extension you can work with multiple code fragments without switching tabs:

CreateProjectionBuffer no longer works in VS 2019 is the open issue in the community forum.

Participate and vote on Visual Studio Developer Community forum to attract more attention from Microsoft, Visual Studio extension developers and community members to the important issues!

Posted in Reviews, Visual Studio news | Tagged , | Leave a comment

Disabling outlining undo

By default, when you expand or collapse a method or a code region in Visual Studio, this action is pushed on the undo stack. It ruins any normal code editing cycle – you do text changes, browse code doing folding/unfolding and now your undo stack is full of unrelated outlining operations, need to press Ctrl+Z multiple times to undo a change.

I’ve created the new Disable Outlining Undo extension that excludes expanding and collapsing operations from recording to the undo/redo stack in Visual Studio 2017/2019.

Download the installer.

Posted in Vlasov Studio tools | Tagged , , | Leave a comment

Task Canvas v2.0.0 adds Move to Other Task command

The Task Canvas extension lets you work with multiple code fragments without switching tabs.

v2.0.0 adds the “Move to Other Task” context menu command, removes horizontal and vertical scrollbars from code blocks. Full support for Visual Studio 2019 is blocked by the following issue: CreateProjectionBuffer no longer works in VS 2019.

See the full what’s new list. Download the installer.

Posted in Vlasov Studio tools | Tagged | Leave a comment

Favorite Documents v2.4.0 adds support for Visual Studio 2019

Favorite Documents extension lets you create links to frequently used code files and then quickly open them as a group or individually in Visual Studio IDE.

v2.4.0 adds support for Visual Studio 2019 Preview 2.2 and stops support for Visual Studio 2012/2013:

Download the installer.

Posted in Vlasov Studio tools | Tagged , | 4 Comments

From Code Bubbles to Code Tiles: Working with multiple code fragments without switching tabs

Code Bubbles research in 2010 demonstrated how seeing a sizeable number of functions concurrently can significantly reduce a task completion time by minimizing navigation interactions, offloading limited working memory, comparing and understanding functions together, seeing calling relationships, improving ability to multi-task and to recover from interruptions (paper).

Code Bubbles for Eclipse presented compact function-based views of the code that are displayed in bubbles on a virtually infinite work space. Bubbles can be grouped and connected by a directed arc:

In 2011 Microsoft released Debugger Canvas for Visual Studio Ultimate 2010 augmenting debugging sessions. It pulls together the code you’re exploring onto a single pan-and-zoom display. As you hit breakpoints or step into code, Debugger Canvas shows just the methods that you’re debugging, with call lines and local variables, to help you see the bigger picture:

In 2014 Josh Varty and Amadeus Wieczorek demonstrated Code Connect for Visual Studio 2013/2015. Code Connect displays code on a function-by-function basis and visualizes the call stack showing full function implementations. It still uses an infinite work space, but automatically fills available screen space with related function definitions as you navigate code resulting in nicely laid out code tiles:

In 2016 I personally became tired of switching back and forth between tabs and jumping from place to place within a file. I wanted to see all code fragments I’m currently working on at once. In May 2016 I released Task Canvas for Visual Studio 2015/2017.

As I wanted to see all fragments at once, I limited the canvas to the window size – no need for workspace panning. To view all code it is also important to maximally use available screen space, that can be achieved only by automatically tiling code fragments in several columns considering each block size:

This approach still allows occasional manual adjustments to change order of blocks by dragging and change block height by clicking Maximize or Minimize. A maximized block uses more space reducing other blocks to minimized state with only 5 visible lines. When several blocks are maximized, they equally share available space.

I recognize standard document tabs as more convenient to write brand new code, change file structure, read large amounts of code and having better technical integration with the IDE. It is easy to go from a code fragment to the source document and back using corresponding Task Canvas commands:

A valid concern is showing multiple code fragments requires a larger monitor? From my developer tools site web logs, the most popular display resolution this year is 1920*1080:

From Stack Overflow Developer Survey 2018, 68.1% of developers have two or more monitors:

The original Code Bubbles study used a single monitor with 1920*1200 resolution, the Task Canvas screencast above also used 1920*1200 resolution. So, two common 1920*1080 monitors should be enough to benefit from seeing multiple code locations at once. (Of course, larger screens will make work even more comfortable.)

Besides Visual Studio and Eclipse, there are many other IDEs in use today (source):

All rooted in a file-based editor. I couldn’t find a code fragments supporting extension for any of them. Well, we can see it as another open opportunity to increase developer productivity 🙂

Posted in Reviews | Tagged | Leave a comment