Любой способ окружить блок кода с помощью фигурных скобок {} в VS2008? - PullRequest
44 голосов
/ 05 мая 2010

Мне всегда нужно заключать блок кода в фигурные скобки {} , но, к сожалению, он не включен в фрагменты кода окружения C #, что кажется упущением. Я не смог найти ничего и для создания ваших собственных окружающих фрагментов (просто другие виды фрагментов).

Я на самом деле тоже запускаю Resharper, но, похоже, у него тоже нет этой функции (или я не понял, как ее активировать).

У нас есть стандарт кодирования, включающий даже одну строку кода после , если или иначе в фигурных скобках, так что, если бы я мог просто сделать Resharper сделайте этот рефакторинг автоматически, что было бы еще лучше!

Ответы [ 8 ]

48 голосов
/ 05 мая 2010

Вот быстрый и грязный фрагмент, чтобы сделать именно это.

Для установки:

Сохранить код как SurroundWithBraces.snippet в "<my documents>\Visual Studio Version\Code Snippets\Visual C#\My Code Snippets"

Для использования:

Выбрать блок текста.
Нажмите Ctrl+K, Ctrl+S
Выбрал мой код фрагменты, фигурные скобки

<?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>
37 голосов
/ 05 мая 2010

В ReSharper 4.5 фигурные скобки включены как один из встроенных шаблонов окружения:

  1. Выберите текст, который вы хотите вьющиеся брекеты вокруг.
  2. ReSharper -> Code -> Surround With... -> {}

    или

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

    или

    Ctrl+E, U -> 7 (схема Visual Studio)

    или

    Ctrl+Alt+J -> 7 (схема ReSharper 2.x / IDEA)

19 голосов
/ 05 мая 2010

Как насчет:

Ctrl-X, {, Ctrl-V, }

Вы можете даже связать это с макросом.

3 голосов
/ 12 апреля 2016

В VS2015 есть экспериментальная функция, которая поддерживает его, выделяя текст и печатая}.

См. здесь , как включить.

1 голос
/ 15 марта 2013

Чтобы завершить ответ Рэя Веги, для тех, кто использует Resharper, я понял, что вы можете связать ярлык с командами Resharper.

Просто сделайте следующее (я использую VS 2010):

зайдите в Инструменты-> Параметры

В списке разверните Окружение и нажмите Клавиатура.

В поле «Показать команды, содержащие:» введите «resharper.resharper_surroundwith»

В поле «Нажать клавиши быстрого доступа» введите свой ярлык (например, я выбираю Ctrl + R, Ctrl + S) и нажмите «Назначить», а затем «ОК».

Вот и все. Вы можете выбрать свой код и набрать его, чтобы просмотреть все команды Resharper SurroundWith. Просто введите 7, чтобы поставить фигурные скобки.

1 голос
/ 05 мая 2010

Создайте свой собственный фрагмент кода для этого. Вы можете использовать snippy, чтобы создать свой собственный http://blogs.msdn.com/gusperez/articles/93681.aspx или просто используйте редактор XML для его создания.

Поместите файл в Мои документы \ Visual Studio XXXX \ Фрагменты кода \ C # \ Мои фрагменты кода

0 голосов
/ 01 апреля 2016

Вы можете заключить блок кода в фигурные скобки на

  1. Выделите кодовый блок
  2. Ctrl e -> Ctrl u
  3. выберите опцию 7

Я знаю, что это старый вопрос, но я надеюсь, что это кому-нибудь поможет

Ссылка: Заключение нескольких выражений в фигурные скобки

0 голосов
/ 05 мая 2010

Редактировать: Оказывается, это часть DxCore от DevExpress. Оставив здесь, чтобы другие заметили, но в основном я был не прав, не так. Чтобы убрать это конкретное меню, вы отключаете его в диалоге «добавления модулей»; выгрузка devexpress из собственного меню просто выгружает CodeRush / Refactor, а не базовые библиотеки поддержки.

Это (не!) встроенный способ сделать это. Я не знаю, можете ли вы связать ключ с этим или нет. Кроме того, эта вставка ничего не делает, если вы выбираете только одну строку, поэтому она, вероятно, не будет работать правильно, если ваш материал находится на одной строке после «если».

  1. Выберите блок
  2. Правый клик
  3. Выберите «Вставить выделение»
  4. Выберите «Блок {}»

Примечание: у меня установлен DexExpress, но это меню есть, даже когда оно не загружено, и я могу поклясться, что оно есть, даже если оно не установлено. Однако, если я ошибаюсь ...

Честно говоря, кажется, что лучше спросить r #, возможно, пользовательский вклад?

...