Is there a shortcut to surround a given (selected) code block with curly braces?
VS 2015 + R# 2016.1
Is there a shortcut to surround a given (selected) code block with curly braces?
VS 2015 + R# 2016.1
You do not need Resharper for this. You can use the "surround with" with a custom snippet.
Then you can select your text with Ctrl + K, Ctrl + S and select the snippet {} in the custom snippet. In order to create such a snippet :
Use the following snippet :
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>{}</Title>
<Shortcut>{}</Shortcut>
<Description>Code snippet for {}</Description>
<Author>Alexandre</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="csharp">
<![CDATA[{
$selected$ $end$
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
As an as an alternative to Patrick's answer (Ctrl+E, U, 7) you could also use the extended Alt+Enter -menu of ReSharper 9+.
Alt+Enter, UP, UP, Enter, or
Alt+Enter, "bl", Enter
Unfortunately, I don't know a way to bind this to a shorter hotkey.
But if this is really important to you, you could try AutoHotkey.
The quickest built-in shortcut in the Visual Studio scheme I can find is Ctrl+E+U, 7 (surround with..., then choose option 7 which is curly braces).
I don't see a shortcut for it in Visual Studio's keyboard options, so that may be the best you can get.
At least in Visual Studio 2019, this is a built-in optional feature, albeit it is:
To enable this feature, select Tools->Options to open the Options dialog. In the left-hand pane that shows the options groups, expand the Text Editor group, then expand the C/C++ sub-group, then select the Advanced item. Now scroll all the way to the bottom of the right-hand pane and you'll see the following options under the Text Editor section:
| Option | Value |
| ------ | ----- |
| Enable Surround with Braces | False |
| Enable Surround with Parentheses | False |
Change both of those to "True" (assuming you want both behaviors) and you're good to go!
AlexandreG's solution works great. From my side I can tell you have to save the file with .snippet extension. And 2nd tip: if you want to save a snippets together with system snippets you must save them here: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC#\Snippets\1033\Visual C#
or copy location from snippets file dialog
using visual studio 2017 with resharper 2017, it seems like the way to do this would be to hit CTRL+E and either: Up,Up,Enter , or start typing the shortcut name (swb
will match Surrond With block
and make you happy.
I'm not 100% sure if this is VS or RS though, since the CTRL+E is VS 2017.
On the plus side, you can easily search for shortcuts and find new gems once you've hit the CTRL+E combo.
Update
This is part of Resharper. I'm using 2017.1.1 ultimate. You can find more surround with templates on their page for live templates.
I am using VS2022 V17.6.5, and in my opinion, the best and most convenient solution is to use Auto Surround extension.