web-dev-qa-db-fra.com

Visual Studio, par paramètres d'indentation de solution

Je travaille sur quelques choses différentes et certains utilisent des onglets, certains utilisent 2 espaces pour les retraits, un autre utilisateur 4 espaces pour les retraits, etc.

L'option pour définir cela dans Visual Studio se trouve dans Outils-> Options-> Éditeur de texte-> <langue> -> Onglets

Existe-t-il un moyen de remplacer ces paramètres sur une base par solution?

85
Fire Lancer

Voici une façon (certes hacky) d'atteindre ce que vous recherchez:

1) créer une macro qui modifie l'indentation ( source )

 Sub Set-Indent(indent As integer)
     Dim props As EnvDTE.Properties = DTE.Properties("TextEditor", "C/C++")
     Dim ts As EnvDTE.Property = props.Item("TabSize")
     Dim ins As EnvDTE.Property = props.Item("IndentSize")
     ts.Value = indent 
     ins.Value = indent 
 End Sub

2) Accrochez-le au chargement de votre solution: Dans l'explorateur de macros, choisissez EnvironmentEvents, sélectionnez SolutionEvents dans la première liste déroulante, Opened dans la seconde. Vous disposez désormais d'une macro qui se déclenchera chaque fois que vous ouvrirez une solution. Il vous suffit de mapper vos solutions avec l'indentation requise.

20
Bahbar

MISE À JOUR: VS 2017 prend en charge EditorConfig nativement: https://blogs.msdn.Microsoft.com/dotnet/2016/12/15/code-style-configuration-in-the-vs2017-rc-update/ =

Dans VS 2010 et supérieur, il existe une extension qui définit l'indentation en fonction du fichier . Editorconfig à la racine de la solution/du projet:

http://visualstudiogallery.msdn.Microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328

Il y a aussi similaire extension pour Visual Studio Code .

88
Tereza Tomcova

Il existe également un autre complément appelé "Rebracer" maintenant ... le lien est ici: http://visualstudiogallery.msdn.Microsoft.com/410e9b9f-65f3-4495-b68e-15567e543c58

7
Richard B

À partir de l'extension VS EditorConfig ( http://visualstudiogallery.msdn.Microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328 ) site Web:

Le projet EditorConfig définit un format de fichier simple pour configurer les options courantes de l'éditeur de texte telles que les tailles d'indentation . Ces fichiers de configuration sont conçus pour être placés à côté du code source d'un projet, permettant aux éditeurs de texte d'utiliser les bonnes options fichier par fichier. Le projet EditorConfig fournit des plugins pour de nombreux éditeurs de texte courants, ce qui rend le format entièrement multiplateforme.

(c'est moi qui souligne)

Divulgation complète: je n'ai pas pu le tester personnellement (car ReSharper prend le relais).

4
drzaus

VS2017 RC a ajouté la prise en charge du format .editorconfig.

2
asm

Vous pouvez définir le paramètre Insérer des onglets/espaces avec props.Item("InsertTabs") = bool

Vérifiez ceci: https://github.com/jamesfoster/VS-Whitespace-Macros

0
tgmdbm

Ainsi, la solution acceptée dit "Vous avez juste besoin de mapper vos solutions avec l'indentation requise", ce qui est génial, sauf comment faire? Après avoir perdu beaucoup de temps à essayer de comprendre cela, j'ai trouvé une méthode que je préfère ici . Cette méthode charge un nombre illimité de paramètres exportés qui peuvent être différents pour chaque solution. Les paramètres peuvent inclure n'importe quoi, des retraits aux couleurs ou même la disposition des fenêtres (je pense).

  • Dans Visual Studio 2008, ouvrez Outils> Macros> Explorateur de macros
  • Double-cliquez sur MyMacros> Module1 (si vous n'avez pas Module1, cliquez avec le bouton droit sur MyMacros et choisissez 'Nouveau module ...' pour le créer).
  • Dans la fenêtre de l'Explorateur de macros, double-cliquez sur "EnvironmentEvents" à gauche.
  • Dans le menu déroulant en haut à gauche, choisissez "SolutionEvents".
  • Dans le menu déroulant en haut à droite, choisissez "Ouvert".
  • Le code pour gérer l'événement SolutionEvents.Opened est automatiquement ajouté. Modifiez ce code comme suit:

    Private Sub SolutionEvents_Opened() Handles SolutionEvents.Opened
        Dim item As ProjectItem = DTE.Solution.FindProjectItem("solution.vssettings")
        If Not item Is Nothing Then
            'MsgBox("Uncomment this to see a message when settings are loaded")
            Dim name = item.FileNames(1)
            DTE.ExecuteCommand("Tools.ImportandExportSettings", "/import:""" & name & """")
        End If
    End Sub
    
  • Enregistrez la macro.

  • Utilisez Outils> Options pour modifier votre interface utilisateur afin de définir les paramètres de l'onglet et tout ce que vous souhaitez définir.
  • Outils> Importer et exporter les paramètres ...> Exporter les paramètres d'environnement sélectionnés> Suivant
  • Pour exporter uniquement les paramètres des onglets, décochez "Tous les paramètres", puis cochez Options> Éditeur de texte> C/C++
  • Cliquez sur Suivant, puis tapez 'solution.vssettings' comme 'Comment voulez-vous nommer votre fichier de paramètres?' et enregistrez le fichier là où vous avez une solution dans laquelle vous souhaitez utiliser ces paramètres.
  • Faites glisser solution.vssettings vers n'importe quel emplacement de la fenêtre Explorateur de solutions.
  • Quittez Visual Studio et la prochaine fois que vous ouvrirez une solution contenant solution.vssettings, il devrait charger ces paramètres.

Si la macro ne s'exécute pas, cela peut être dû à un correctif de sécurité MS. En fonction de this , ajoutez la chaîne suivante:

<AllowDComReflection enabled="true"/>

Sous la balise <runtime> dans les trois fichiers suivants:

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr.exe.config"
"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv.exe.config"
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe.config"

Assurez-vous de démarrer l'éditeur que vous utilisez pour modifier ces fichiers avec des privilèges d'administrateur (c'est-à-dire un clic droit sur le Bloc-notes et choisissez "Exécuter en tant qu'administrateur").

J'ai également trouvé n plug-in qui est censé faire la même chose que la macro suggérée ci-dessus mais pour une raison quelconque, il n'a rien fait après avoir exécuté son programme d'installation.

0
Chris Dragon

MISE À JOUR: semble que l'indentation n'est pas gérée par Resharper, donc cette réponse ne répond pas réellement à la question spécifique. Cependant, il s'applique en termes généraux; c'est-à-dire "Visual Studio, par paramètres de solution" au cas où quelqu'un trébucherait ici à la recherche de cela.


Si vous utilisez Resharper , vous pouvez enregistrer les paramètres de formatage (vraiment, tous les paramètres) pour la solution. Vous pouvez en outre spécifier si ce n'est que pour vous (c'est-à-dire non engagé dans le contrôle de source) ou les paramètres spécifiques à la solution partagée (c'est-à-dire s'engager dans le contrôle de source).

Resharper > Options > Code Editing > C# (or whatever language) > Formatting Style > Braces Layout

Puis en bas de la fenêtre, sous Save To choisissez "Solution XYZ personnelle" (ou partagée, selon votre objectif).

Cela crée un fichier xml YOURSOLUTION.sln.DotSettings.user avec des valeurs comme:

<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ANONYMOUS_METHOD_DECLARATION_BRACES/@EntryValue">NEXT_LINE</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/CASE_BLOCK_BRACES/@EntryValue">NEXT_LINE</s:String>

Resharper Settings - Save for Solution Only

0
drzaus

clang-format fournit des options assez sophistiquées pour formater votre code source.

Le plugin Visual Studio est assez rudimentaire, c'est-à-dire qu'il ne s'exécute pas automatiquement, mais il fait bien son travail (lorsqu'il est appelé manuellement, c'est-à-dire).

http://llvm.org/builds/

0
Rondom