Как заставить Visual Studio автоматически создавать фигурные скобки для функционального блока?
Я мог бы поклясться, что видел, как люди печатали заголовки функций, а затем ударяли какую-то комбинацию клавиш, чтобы автоматически создавать фигурные скобки и вставлять курсор между ними так:
void foo()_
к
void foo()
{
_
}
Является ли это встроенной функцией?
Ответы
Ответ 1
Отъезд Resharper - это дополнение Visual Studio с этой функцией, среди многих других полезных советов.
Также см. С# Completer, еще одно дополнение.
Если вы хотите просмотреть свой собственный, эту статью. Безумно, что нужно это делать, однако.
Ответ 2
Инструменты выглядят красиво (особенно Resharper, но в $200-350 ouch!), но я закончил тем, что просто записал макрос и назначил его 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
Изменить: я использовал макрорекордер, чтобы сделать это, и это было не так уж плохо.
Ответ 3
Это может быть достигнуто с помощью фрагментов кода, некоторые из них уже встроены (попробуйте ввести "svm" и нажмите TAB-TAB).
Там есть множество информации о сети:
Джефф сделал свое сообщение здесь
У вас есть Google! Я использую их ВСЕ!: D
Ответ 4
Посмотрите визуальную помощь.
Ответ 5
Я только что создал один, основанный на @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