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?
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.
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 .
Il existe également un autre complément appelé "Rebracer" maintenant ... le lien est ici: http://visualstudiogallery.msdn.Microsoft.com/410e9b9f-65f3-4495-b68e-15567e543c58
À 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).
VS2017 RC a ajouté la prise en charge du format .editorconfig.
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
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).
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.
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.
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>
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).