Question

I could swear I've seen people typing function headers and then hitting some key combination to auto-create function braces and insert the cursor between them like so:

void foo()_

to

void foo()
{
    _
}

Is this a built-in feature?

Was it helpful?

Solution

Check out Resharper - it is a Visual Studio add-on with this feature, among many other development helps.

Also see C# Completer, another add-on.

If you want to roll your own, check out this article. Insane that one should have to do that, though.

OTHER TIPS

The tools look nice (especially Resharper but at $200-350 ouch!) but I ended up just recording a macro and assigning it to ctrl+alt+[

Macro came out like this:

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

Edit: I used the macro recorder to make this and it wasn't too bad

It can be achieved by using code snippets, some are already built in (try typing "svm" and hitting TAB-TAB)..

There's a wealth of info on the net on creating these:

Jeff did a post himself here

Have a google! I use them LOTS! :D

Take a look at visual assist as well.

I just created one based on @Luke's above. This one, you want to hit Enter then hit your key combination and it will insert:

if ()
{

}
else
{

}

And it will put your cursor in the parenthesis by the if statement.

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top