Jakiś sposób, aby otoczyć blok kodu klamrami {} w VS2008?

Zawsze muszę załączyć blok kodu w nawiasach klamrowych { }, ale niestety nie jest to zawarte w urywkach kodu C# surround, co wydaje się być niedopatrzeniem. Nie mogłem znaleźć nic na temat budowania własnych fragmentów surround (tylko inne rodzaje fragmentów).

Ja też uruchamiam Resharper, ale wygląda na to, że nie ma tej funkcjonalności (albo nie wymyśliłem, jak ją aktywować).

Mamy standard kodowania włączając nawet pojedynczą linię kodu po if lub else w nawiasach klamrowych, więc gdybym mógł zmusić Resharper do automatycznego refaktoryzacji, byłoby jeszcze lepiej!

Author: Jim McKeeth, 2010-05-05

8 answers

Oto szybki i brudny fragment, aby to zrobić.

Aby Zainstalować:

Zapisz kod jako SurroundWithBraces.snippet do "<my documents>\Visual Studio Version\Code Snippets\Visual C#\My Code Snippets"

Do użycia:

Wybierz blok tekstu.
Naciśnij Ctrl+K, Ctrl+S
Wybierz Moje fragmenty kodu, szelki

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>braces</Title>
      <Shortcut>braces</Shortcut>
      <Description>Code snippet to surround a block of code with braces</Description>
      <Author>Igor Zevaka</Author>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
        <SnippetType>SurroundsWith</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Code Language="csharp">
        <![CDATA[{
        $selected$ $end$
     }]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>
 48
Author: Igor Zevaka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-04 23:45:49

W ReSharper 4.5 klamry są dołączone jako jeden z wbudowanych szablonów Surround:

  1. zaznacz tekst, który ma być kręcony Aparat ortodontyczny.
  2. ReSharper -> Code -> Surround With... -> {}

    Lub

    ALT + R -> C -> S -> 7

    Lub

    Ctrl+E, U -> 7 (Visual Studio scheme)

    Lub

    Ctrl+Alt+J -> 7 (ReSharper 2.x / IDEA scheme)

 36
Author: Ray Vega,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-05 00:10:34

A może:

Ctrl-X, {, Ctrl-V, }
Możesz nawet powiązać to z makrem.
 18
Author: Jimmy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-17 13:15:57

W VS2015 istnieje eksperymentalna funkcja, która obsługuje go poprzez wybranie tekstu i wpisanie }.

Zobacz TUTAJ Jak włączyć.

 3
Author: Serge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-12 18:46:52

Stwórz własny, niestandardowy fragment kodu. Możesz użyć snippy do stworzenia własnego http://blogs.msdn.com/gusperez/articles/93681.aspx lub po prostu użyj edytora XML, aby go utworzyć.

Umieść plik w moich dokumentach \ Visual Studio XXXX \ Code Snippets \ C# \ My Code Snippets

 1
Author: helios456,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-04 23:18:58

Aby uzupełnić odpowiedź Raya Vegi, dla tych, którzy używają Resharper, wymyśliłem, że możesz powiązać skrót z poleceniami Resharper.

Po prostu wykonaj następujące czynności (używam VS 2010):

Przejdź do Narzędzia - > Opcje

W polu listbox, extend Environment i kliknij na klawiaturze.

W polu pod "Pokaż polecenia zawierające: "enter" resharper.resharper_surround "

W polu pod "naciśnij klawisze skrótów" wpisz swój Skrót (np: wybieram Ctrl + R,Ctrl+S) i kliknij Przypisać, a następnie Ok.

To jest to. możesz wybrać swój kod i wpisać ten shorcut, aby wyświetlić wszystkie polecenia Resharper. Wystarczy wpisać 7, aby założyć aparat ortodontyczny.

 1
Author: Shomron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-15 18:53:05

Edit: okazuje się, że jest to część DxCore, z DevExpress. Wychodząc stąd, aby inni zauważyli, ale w zasadzie byłem w błędzie źle źle. Aby to konkretne menu zniknęło, wyłącz je w oknie dialogowym "Dodaj ins"; rozładowanie devexpress z ich własnego menu po prostu rozładowuje CodeRush/Refactor, a nie podstawowe biblioteki wsparcia.

The is (not!) zbudowany w sposób, aby to zrobić. Nie wiem, czy możesz powiązać klucz, czy nie. To osadzenie nie robi nic, jeśli tylko wybierzesz jedna linia, więc prawdopodobnie nie będzie działać dobrze, jeśli twoje rzeczy są na jednej linii po "jeśli".

  1. wybierz blok
  2. Kliknij Prawym Przyciskiem Myszy
  3. Wybierz "Zaznaczenie Embed"
  4. Wybierz "Blok {}"

Uwaga: Mam zainstalowany DexExpress, ale to menu jest tam nawet, gdy nie jest załadowane, i mogę przysiąc, że jest tam nawet, gdy nie jest zainstalowany. Jednakże, jeśli się mylę...

To wygląda na coś, o co najlepiej zapytać r#, użytkownika contrib może?

 0
Author: Andrew Backer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-04 23:58:04

Możesz zawinąć blok kodu klamrami za pomocą

  1. Wyróżnij blok kodu
  2. Ctrl e - > CTRL u
  3. Wybierz opcję 7

Wiem, że to stare pytanie, ale mam nadzieję, że komuś pomoże

Ref: owijanie wielu wyrażeń w klamrach

 0
Author: TheLukeMcCarthy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:27