web-dev-qa-db-fra.com

ReSharper - force les accolades autour d'une seule ligne

Puis-je configurer ReSharper pour corriger le code C # lorsque les accolades ne sont pas utilisées pour entourer un bloc de code sur une seule ligne, comme ceci:

if (blnSomeCondition)
   DoSomething();  // complain

if (blnSomeOtherCondition)
{
   DoSomethingElse(); // don't complain
}

Merci

91
Booberry

La solution de Gorohoroh est proche, mais au lieu de sélectionner "Utiliser des accolades pour plusieurs lignes", j'ai dû sélectionner "Ajouter des accolades" pour la forcer à ajouter les accolades dans le scénario à ligne unique. Et je devais définir cela dans les six listes déroulantes sous "Force Braces" pour attraper tous les scénarios:

alt text

Ce que j'espérais vraiment, c'était de pouvoir configurer ReSharper pour faire un avertissement jaune ou une erreur rouge lorsque la règle était violée, mais je n'ai pas trouvé de moyen de le faire. Parce que vous avez raison, Gorohoroh, Cleanup Code fait beaucoup de choses et j'aimerais avoir la possibilité d'examiner et de corriger les violations de règles une par une.

Merci de votre aide!

28
Booberry

Dans la nouvelle version de ReSharper (2016.x), il a été déplacé vers le style de code. ReSharper 2016.1.1

UPD1: pour ReSharper 2017.x ReSharper 2017.1.2

UPD2: pour ReSharper 2018.x ReSharper 2018.1

UPD3: pour ReSharper 2019.x ReSharper 2019.1

135
Sergey

Ryan a raison (notez cependant que son lien fait référence à l'aide de R # 2.0). La procédure spécifique est la suivante:

  1. Accédez à ReSharper> Options> Langues> C #> Style de formatage> Disposition des accolades
  2. Définissez "Accolades dans l'instruction" if-else "" sur "Utiliser les accolades pour la multiligne"
  3. Après avoir enregistré les modifications, sélectionnez une étendue à reformater (peut être une sélection de code, un fichier, un dossier, un projet, une solution - tout ce que vous voulez).
  4. Choisissez ReSharper> Outils> Code de nettoyage.
  5. Profit.

N'oubliez pas que le nettoyage de code fait de nombreuses choses et qu'elles ne sont pas seulement liées à la mise en forme du code (voir les détails sur http://www.jetbrains.com/resharper/webhelp/Code_Cleanup__Index.html ), utilisez donc le présenter judicieusement.

34
Jura Gorohovsky

Pour ReSharper 2016.2.2.

Vous devez modifier votre profil pour le nettoyage. L'élément approprié est appelé Ajouter/supprimer des accolades pour les instructions simples dans "if-else", "for", "foreach", "while", "do-while", "using". Cet élément se trouve dans l'élément C # => Styles de code.

Si l'élément est coché, des accolades seront ajoutées; si elle n'est pas cochée, les accolades seront supprimées.

Remarque: l'ajout ne fonctionne pas maintenant (je ne sais pas pourquoi - peut-être, une version trop récente de ReSharper). Cependant, si vous décochez la case mentionnée , les accolades existantes autour des instructions individuelles ne seront pas supprimées.

PD: Le problème est résolu, voir les deux premiers commentaires sous ce post.

8
Jordan

Vous pouvez le configurer comme indiqué sur la capture d'écran.

force curly brackets for a single line of code

PS: pour ceux qui ont du mal à voir les URL Imgur.com -> https://ibb.co/b4xijT

1
Alper Ebicoglu

Juste si cela peut aider quelqu'un d'autre à gagner du temps, sur une machine de mon entreprise, suivre les conseils de Sergey n'était pas suffisant malgré la grande qualité de son poste.

Sur la configuration concernée (VS2017, R # 2019, les deux à jour), ces paramètres côté R # étaient déjà bons, mais j'ai également dû le modifier dans les options de Visual Studio:

  • Dans la fenêtre Options, accédez à Éditeur de texte -> C # -> Style de code -> Formatage -> Général,
  • Cochez "Effectuer un nettoyage de code supplémentaire pendant le formatage" et "Ajouter/supprimer des accolades pour l'instruction de contrôle sur une seule ligne"
0
AFract