Surround code block with curly braces?

后端 未结 6 1001
Happy的楠姐
Happy的楠姐 2021-02-18 22:53

Is there a shortcut to surround a given (selected) code block with curly braces?

VS 2015 + R# 2016.1

相关标签:
6条回答
  • 2021-02-18 23:22

    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 :

    1. Create a ".snippet" file containing the content below
    2. Go to the snippet manager (Tools > Code Snippets Manager)
    3. Click import and select the file you just created

    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>
    
    0 讨论(0)
  • 2021-02-18 23:24

    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

    0 讨论(0)
  • 2021-02-18 23:29

    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.

    0 讨论(0)
  • 2021-02-18 23:37

    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.

    0 讨论(0)
  • 2021-02-18 23:37

    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.

    0 讨论(0)
  • 2021-02-18 23:45

    At least in Visual Studio 2019, this is a built-in optional feature, albeit it is:

    1. Disabled by default
    2. Buried deep in the Options

    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!

    0 讨论(0)
提交回复
热议问题