2016-06-11 3 views
3

Проблема, с которой я столкнулась с автоматической компоновкой Visual Studio, заключается в том, что она пренебрегает пониманием того, что я пытаюсь окружить весь блок. По этой причине я обычно отключил его, но в течение многих лет он не выполнял эту функцию, поэтому я подумал, что попытаюсь выяснить, не хватает ли я чего-то о том, как эффективно использовать Visual Studio ... не будет быть в первый раз, когда я ездил годами, не зная какой-либо базовой функции редактирования.Как использовать автоматическую скобку Visual Studio для окружения существующего блока?

Основной проблематичной случай, когда я пытаюсь окружить текст, начиная с чем-то вроде lock (myMutex) { вокруг списка команд:

// Imagine I just typed the following line, where^is the cursor 
lock (myMutex) {^ } // <--- it just auto-added " }" to the end. 
command1(); 
command2(); 
command3(); 
// where I plan to put the "}" 

Затем я должен нажать удалить нужное число раз, чтобы отменить авто- форматирования и команды ошибочно расположенных фигурных скобок, чтобы продолжить с помощью курсора вниз, чтобы завершить окружающее.

Это, по-видимому, является распространенным случаем, делая автозаполнение брекетов очень раздражающим. Я делаю что-то неправильно? Есть ли какая-то клавиатурная последовательность, которую я могу ввести, что бы разумно привести к тому, что я хочу, чтобы я использовал, о котором я просто не знаю? Или я прав, чтобы просто отключить это каждый раз, когда я переустанавливаю VS?

ответ

0

Насколько я знаю, для этой задачи нет ничего встроенного в Visual Studio. Есть некоторые инструменты (не бесплатные), которые значительно улучшают работу редактирования Visual Studio. Но, как я уже сказал, они не являются бесплатными, а иногда они также замедляют базовую работу Visual Studio.

Однако вы можете создать фрагмент SurroundsWith. Небольшой мастер автоматизации, который вы могли бы получить и выполнить в Visual Studio 2015, щелкнув правой кнопкой мыши на выбранном блоке кода, который вы хотите окружить фигурными скобками.

  • Первым делом нужно скачать Snippet Designer с помощью расширений и обновлений из меню TOOLS.
  • Затем откройте меню FILE -> NEW -> FILE и выберите Snippet Designer , а затем фрагмент кода.
  • В редакторе Snippet добавьте эти строки

    { 
        $selected$ $end$ 
    } 
    
  • Затем дать имя входящего текст в окне Snippet и выберите C# как язык.

  • Сохраните снипп, принимая к сведению, где был сохранен.
  • Теперь откройте сниппета с помощью любого текстового редактора на ваш выбор и изменить значение <SnippetType> с

    <SnippetType>SurroundsWith</SnippetType> 
    
  • Сохраните файл.

Обычно, в этот момент, Visual Studio должны быть в состоянии сразу распознать новый фрагмент кода, но в любом случае вы можете закрыть и снова открыть IDE.

Теперь, если вы выбираете блок кода, щелкните правой кнопкой мыши и выберите Surrounds With ( Ctrl + K S), MyCodeSnippets, а затем ваш названный фрагмент кода у вас будет ваш код с отступом

Если вы заинтересованы вы мог бы найти намного больше информации о функциях Snippets на этой странице в MSDN: Creating Code Snippets

+1

Спасибо, используя этот метод, я, скорее всего, сделаю shift + downdowndown, чтобы выбрать, а затем мне нужно нажать на горячую клавишу для фрагмента. Тем не менее, я только что обнаружил, что return, alt + downdowndown фактически запустит закрывающую скобку вниз по коду с минимальными нажатиями клавиш для небольших блоков, но мне нужно вручную запустить формат после этого, чтобы он выравнивался. – VoidStar

+0

О, черт возьми, я не знал, ну да требуемые клавиши более или менее одинаковы. Однако я надеюсь, что ответ будет полезен и для других задач. Я использую фрагменты много. – Steve

0

Я решил эту проблему с помощью AutoHotKey. Я уже использую эту программу в виде текстового расширителя, я просто добавил:

send, {{}{enter}{}} 

«расширить» открытую фигурную скобку со своим закрытым коллегой на новой линии. Затем я спускаюсь к этой закрытой скобе и перемещаю весь ряд с ALT + DOWN после блока, который я хочу окружить.

Смежные вопросы