Я мог поклясться I' ve замеченные люди, печатающие заголовки функции и затем поражающие некоторую ключевую комбинацию, чтобы автосоздать фигурные скобки функции и вставить курсор между ними как так:
void foo()_
к
void foo()
{
_
}
Действительно ли это - встроенная особенность?
Инструменты выглядят хорошими (особенно 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
Отредактируйте: Я использовал макро-рекордер, чтобы сделать это и это wasn' t слишком плохо
Resharper выезда - это - Визуальное дополнение Студии с этой особенностью среди многих, другое развитие помогает.
Также см. C# Completer, другое дополнение.
Если Вы хотите к самокрутке, выезд эта статья. Безумный, что придется сделать это, все же.
Это может быть достигнуто при помощи фрагментов кода, некоторые уже встроены (попытайтесь печатать " svm" и удар СЧЕТА СЧЕТА)..
There' s богатство информации о сети при создании их:
[Джефф сделал почту сам здесь] (http://www.codinghorror.com/blog/archives/000419.html)
Имейте Google! Я использую их ПАРТИИ!: D
Я просто создал один на основе @Luke' s выше. Этот, Вы хотите совершить нападки, Входят, тогда поражает Вашу ключевую комбинацию, и она вставит:
if ()
{
}
else
{
}
И это поместит Ваш курсор в круглую скобку если заявление.
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