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

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

void foo()_

в

void foo()
{
    _
}

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

13.08.2008 05:09:33
5 ОТВЕТОВ
РЕШЕНИЕ

Ознакомьтесь с Resharper - это дополнение к Visual Studio с этой функцией, среди многих других разработок.

Также см. C # Completer , еще одно дополнение.

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

5
13.08.2008 05:27:18

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

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

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

Есть гугл! Я использую их много! : D

2
13.08.2008 05:14:51

Посмотрите также на визуальную помощь .

2
13.08.2008 05:15:22

Инструменты выглядят хорошо (особенно 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

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

6
13.08.2008 05:49:04

Я только что создал один на основе @ Люка выше. Этот, вы хотите нажать 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
0
5.09.2012 15:47:09