If you’re like me, then you’re addicted to productivity tools. That’s one of the reasons why I love Visual Studio—it has an endless amount of productivity tricks. This post is going to show five such tricks that help in my work every day. Note that these are with Visual Studio only. There are extensions like ReSharper , Roslynator , and OzCode that add a ton of productivity value, but that’s for another blog post.

1. Snippets

Visual Studio allows you to quickly create common snippets of code. This might be a for loop, a try..catch clause or a using statement. To use it, just type the snippet’s shortcut. For a for statement, for example, start typing for.

visual studio for snippet

The IntelliSense shows there are three snippets that fit for (the first three items). To use one of them, simply hit Tab twice and VS will generate the boilerplate code.

visual studio snippet generated

Now you can edit the highlighted pieces. Hit Tab to toggle between them and Enter or Esc when finished.

There are dozens of out-of-the-box snippets. Some of them are:

  • try
  • foreach
  • if/else
  • do for a do..while loop
  • propdp for a dependency property

There are even snippets for blocks of code. For example, you can surround a block with a try..catch snippet.

visual studio surround with snippet

2. IntelliSense Items from Unimported Namespaces

Have you ever felt that ReSharper’s IntelliSense is better than Visual Studio’s? That’s because ReSharper has been doing a lot of smart things VS hasn’t. Visual Studio is catching up though. A very recent addition is the add items from unimported namespaces option. It’s that “+” button in the corner.

add items unimported namespaces

When you start writing something, Visual Studio shows auto-complete options just from the namespaces added (with using) in the current file. You can imagine it’s pretty limiting. What you really want is to see all the available options and to have the IDE import the correct namespaces. That’s exactly what this button does. When hit or when using the Alt + A shortcut, you’ll see items from all available namespaces of the project and even of its references:

All namespaces

3. Quick Actions and Refactorings

Visual Studio includes a lot of automatic refactoring and code generation abilities. Well, not as many as ReSharper , but you’ll be surprised. Most of them can be access from the Quick Actions and Refactorings menu, which is accessible with the Ctrl + . shortcut. Just place the caret on something like a class and hit the shortcut. You’ll see a bunch of useful options:

quick actions

If you select a block of code, for example, you’ll usually be able to extract it to a method or a local function.

Visual Studio extract method

There are quite a lot of these. To discover them, whenever you’re standing over something, look for the Quick Action button:

Visual Studio quick action

If you’re using ReSharper, you might see a lightbulb button that shows ReSharper’s refactorings. Hitting that lightbulb will show actions from both ReSharper and Visual Studio in the same context menu.

4. To Track Active Item in Solution Explorer Or Not To Track

It can be pretty useful to go to the currently active file in the solution explorer. You might want to rename it, move it, see the file’s properties, or navigate to nearby files. Whatever it is, the last thing you want to do is to manually search for it in your solution’s item tree.

For years I’ve been using the Track Active Item option. When on, the solution explorer automatically changes the selected file to whatever file you’re currently editing.

Track Active Item in solution explorer

This felt pretty productive, but the downside is that after working on a bunch of files, the solution explorer tree becomes a mess. Everything is expanded and it’s impossible to find anything. There’s also a small performance impact. So now I’ve changed strategy. Instead of automatically tracking the active item, I discovered that there’s a shortcut to navigate to that item on demand.

sync-with-active-item

The default shortcut is Ctrl + [, S. I try to stay with the defaults. Not the easiest one to remember, but you get used to anything.

This means that my solution explorer now stays put. The expanded items stay expanded and nothing is scrolled without me doing the scrolling.

5. Ctrl + T tricks

There are a lot of ways to navigate in your solution. My favorite way is the Ctrl + T option (Edit | Go To | Go To All). You can search whatever you want and Visual Studio finds it. This might a file, a class, a property, a field, or a method.

Visual Studio Go to All

This window has some tricks to it:

  1. The regular search uses a simple “contains” logic. If a file/class/member contains the search input, you’ll see it in the search results.

  2. For items that are spelled with camelCase (or PascalCase), you can type just the initials. For example, asdc will find AnotherSearchDemoComponent:

    Go to All Visual Studio

  3. If you want to narrow the search further, you can combine the initials with part of the name.

Go to All Visual Studio tricks camelcase

  1. You can narrow the search to specific item types:

    • f [search] looks for just files
    • r [search] looks in recent files
    • t [search] looks in types
    • m [search] looks in members
    • # [search] looks in symbols

Granted, Visual Studio has a couple of more things to learn from ReSharper, which also adds fuzzy search capabilities.

Summary

Visual Studio is a massive tool. You can use it every day for ten years, and still wouldn’t know every feature it has. I find out new things every day myself and I’ve written a book about it. If you’ve got cool features to share, please write in the comments below. Cheers.

M ↓   Markdown
?
Anonymous
0 points
5 years ago

Number 4 and 5 were new to me! thanks for the info these are very helpful

?
Anonymous
0 points
5 years ago

Sure thing, glad you liked it!

?
Anonymous
0 points
5 years ago

Only one of these are actually usefull. The Ctrl-T.
Snippets is one of those features that looks good on paper, but in reality gets in the way, because it constantly puts wrong code in. Even simple brace-completion disrupts the typing flow.

?
Anonymous
0 points
5 years ago

You can write your own snippets and then it puts the exactly right code and increases productivity by 1000%. Just a little effort and it's doable in less than 30 min. to prepare few snippets.

?
Anonymous
0 points
5 years ago

Oddly, Ctrl+T was not mapped on my Visual Studio... I was stuck on the "VS 2005 C#" keyboard profile!

?
Anonymous
0 points
5 years ago

Are you hating over snippets or code-prompts? I find the prompts a constant annoyance because they get in the way of the most obvious things -- I have to be careful when typing "return"!!! I was a touch-typist for a decade before I started coding, so I type a LOT faster than most people, allowing the prompt functionality to generate gibberish at an alarming rate.

Snippets can be fantastically helpful, especially the ones you create yourself.

?
Anonymous
0 points
5 years ago

Good tips, Michael! Thanks!

?
Anonymous
0 points
5 years ago

If you are interested in boosting your productivity using such snippets and other tricks you definitely should switch to IntelliJ Rider IDE. It has all of the aforementioned quick-actions and tens (if not hundreds) of more.