Comment faire en sorte que Visual Studio génère automatiquement des accolades pour un bloc fonctionnel ?
-
08-06-2019 - |
Question
Je pourrais jurer avoir vu des gens taper des en-têtes de fonction, puis appuyer sur une combinaison de touches pour créer automatiquement des accolades de fonction et insérer le curseur entre elles comme ceci :
void foo()_
à
void foo()
{
_
}
Est-ce une fonctionnalité intégrée ?
La solution
Vérifier Affûteur - il s'agit d'un module complémentaire de Visual Studio avec cette fonctionnalité, parmi de nombreuses autres aides au développement.
Regarde aussi Complément C#, un autre module complémentaire.
Si vous voulez rouler le vôtre, consultez Cet article.Mais c’est fou qu’on doive faire ça.
Autres conseils
Les outils ont l'air sympa (surtout Resharper mais à 200-350 $ aïe !) mais j'ai fini par enregistrer une macro et l'attribuer à ctrl+alt+[
La macro est sortie comme ceci :
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
Modifier:J'ai utilisé l'enregistreur de macros pour faire ça et ce n'était pas trop mal
Cela peut être réalisé en utilisant des extraits de code, certains sont déjà intégrés (essayez de taper "svm" et d'appuyer sur TAB-TAB).
Il existe une multitude d'informations sur le net pour les créer :
Jeff a lui-même publié un message ici
Ayez un google !Je les utilise BEAUCOUP !:D
Jeter un coup d'œil à assistance visuelle aussi.
Je viens d'en créer un basé sur celui de @Luke ci-dessus.Celui-ci, vous voulez appuyer sur Entrée puis appuyer sur votre combinaison de touches et il insérera :
if ()
{
}
else
{
}
Et il placera votre curseur entre parenthèses à côté de l'instruction 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