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>
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
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.
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.
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!