Как заставить Visual Studio автоматически генерировать фигурные скобки для функционального блока?

StackOverflow https://stackoverflow.com/questions/9486

  •  08-06-2019
  •  | 
  •  

Вопрос

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

void foo()_

к

void foo()
{
    _
}

Это встроенная функция?

Это было полезно?

Решение

Проверить Решарпер - это надстройка Visual Studio с этой функцией, среди многих других средств разработки.

Также см C# Полное завершение, еще одно дополнение.

Если вы хотите свернуть свой собственный, проверьте Эта статья.Хотя безумие, что нужно это делать.

Другие советы

Инструменты выглядят неплохо (особенно Resharper, но стоят 200-350 долларов!), но в итоге я просто записал макрос и назначил его ctrl+alt+[

Макрос вышел такой:

Sub FunctionBraces()
    DTE.ActiveDocument.Selection.NewLine
    DTE.ActiveDocument.Selection.Text = "{}"
    DTE.ActiveDocument.Selection.CharLeft
    DTE.ActiveDocument.Selection.NewLine(2)
    DTE.ActiveDocument.Selection.LineUp
    DTE.ActiveDocument.Selection.Indent
End Sub

Редактировать:Я использовал макрорекордер, чтобы сделать это, и это было не так уж плохо.

Этого можно добиться, используя фрагменты кода, некоторые из которых уже встроены (попробуйте ввести «svm» и нажать TAB-TAB).

В сети полно информации по их созданию:

Джефф сам разместил здесь пост

Имейте Гугл!Я использую их МНОГО!:D

Взгляни на визуальная помощь также.

Я только что создал один на основе приведенного выше @Luke.В этом случае вы хотите нажать Enter, затем нажать комбинацию клавиш, и она вставит:

if ()
{

}
else
{

}

И он поместит ваш курсор в круглые скобки оператором if.

Sub IfStatement()
    DTE.ActiveDocument.Selection.Text = "if ()"
    DTE.ActiveDocument.Selection.NewLine()
    DTE.ActiveDocument.Selection.Text = "{"
    DTE.ActiveDocument.Selection.NewLine(2)
    DTE.ActiveDocument.Selection.Text = "}"
    DTE.ActiveDocument.Selection.NewLine()
    DTE.ActiveDocument.Selection.Text = "else"
    DTE.ActiveDocument.Selection.NewLine(2)
    DTE.ActiveDocument.Selection.Text = "{"
    DTE.ActiveDocument.Selection.NewLine(2)
    DTE.ActiveDocument.Selection.Text = "}"
    DTE.ActiveDocument.Selection.LineUp(False, 7)
    DTE.ActiveDocument.Selection.EndOfLine()
    DTE.ActiveDocument.Selection.CharLeft(3)
End Sub
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top