Frage Visual Studio, pro Lösung Einrückungseinstellungen


Ich arbeite an ein paar verschiedenen Dingen und einige verwenden Tabs, einige verwenden 2 Leerzeichen für Einzüge, ein anderer Benutzer 4 Leerzeichen für Gedankenstriche usw.

Die Option, dies in Visual Studio zu setzen, ist in Extras-> Optionen-> Texteditor -> <Sprache> -> Tabs

Gibt es eine Möglichkeit, diese Einstellungen auf einer einzelnen Lösungsbasis zu überschreiben?


76
2017-07-31 11:44


Ursprung


Antworten:


Hier ist ein (zugegebenermaßen hacky) Weg, um zu erreichen, wonach Sie suchen:

1) Erstellen Sie ein Makro, das den Einzug ändert (Quelle)

 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) Haken Sie das auf, wenn Ihre Lösung geladen wird: Wählen Sie im Makro-Explorer EnvironmentEvents, wählen SolutionEvents in der ersten Dropdown-Liste, Opened in dieser Sekunde. Sie haben jetzt ein Makro, das jedes Mal ausgelöst wird, wenn Sie eine Lösung öffnen. Sie müssen nur Ihre Lösungen auf die erforderliche Einrückung abbilden.


16
2017-07-31 12:27



UPDATE: VS 2017 unterstützt EditorConfig nativ: https://blogs.msdn.microsoft.com/dotnet/2016/12/15/code-style-configuration-in-the-vs2017-rc-update/

In VS 2010 und höher gibt es eine Erweiterung, die die Einrückung basierend darauf festlegt .editorconfig Datei im Solution / Projektstamm:

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

Es ist auch ähnlich Erweiterung für Visual Studio-Code.


74
2017-07-12 15:47



Es gibt jetzt auch ein weiteres Add-In namens "Rebacer" ... Link ist hier: http://visualstudiogallery.msdn.microsoft.com/410e9b9f-65f3-4495-b68e-155567e543c58


6
2017-08-06 16:27



Von der VS-Erweiterung EditorConfig (http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328) Webseite:

Das EditorConfig-Projekt definiert ein einfaches Dateiformat für die Konfiguration   gemeinsame Text-Editor-Optionen wie die Eindruckgrößen. Diese   Konfigurationsdateien sind so konzipiert, dass sie neben der Quelle eines Projekts liegen   Code, so dass Texteditoren die richtigen Optionen für jede Datei einzeln verwenden können   Basis. Das EditorConfig-Projekt bietet Plugins für viele gebräuchliche Texte   Editoren, wodurch das Format vollständig plattformübergreifend ist.

(Hervorhebung von mir)

Vollständige Offenlegung: Ich konnte es nicht persönlich testen (weil ReSharper übernimmt).


3
2017-09-23 14:22



VS2017 RC hat Unterstützung für das .editorconfig-Format hinzugefügt.


3
2017-11-28 11:32



Sie können die Einstellung Tabs / Spaces einfügen mit einstellen props.Item("InsertTabs") = bool

Sieh dir das an: https://github.com/jamesfoster/VS-Whitespace-Macros


0
2018-05-04 10:18



AKTUALISIEREN: Scheint, als ob Einrückung nicht von Resharper verwaltet wird, daher adressiert diese Antwort nicht die spezifische Frage. Es gilt jedoch allgemein; d.h. "Visual Studio, pro Lösungseinstellungen" für den Fall, dass jemand hier stolpert.


Wenn Sie verwenden Nachschärfer, Sie können Formatierungseinstellungen (wirklich, irgendwelche Einstellungen) für nur die Lösung speichern. Sie können weiter spezifizieren, ob nur für Sie (d. H. Nicht an die Quellcodeverwaltung gebunden) oder geteilte lösungsspezifische Einstellungen (d. H. Commit an die Quellcodeverwaltung).

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

Dann unten im Fenster, unter Save To Wählen Sie "Lösung XYZ personal" (oder geteilt, abhängig von Ihrem Zweck).

Dies erstellt eine XML-Datei YOURSOLUTION.sln.DotSettings.user mit Werten wie:

<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
2017-07-09 14:21



Also, die akzeptierte Lösung sagt "Sie müssen nur Ihre Lösungen auf die erforderliche Einrückung zuordnen", was großartig ist, außer wie machen Sie das? Nachdem ich viel Zeit verschwendet habe, um das herauszufinden, habe ich eine Methode gefunden, die ich bevorzuge Hier. Diese Methode lädt eine beliebige Anzahl exportierter Einstellungen, die für jede Lösung unterschiedlich sein können. Einstellungen können alles beinhalten, von Einrückungen bis zu Farben oder sogar Fenster-Layout (denke ich).

  • Öffnen Sie in Visual Studio 2008 Extras> Makros> Makro-Explorer
  • Doppelklicken Sie auf MyMacros> Module1 (wenn Sie Modul1 nicht haben, klicken Sie mit der rechten Maustaste auf MyMacros und wählen Sie "Neues Modul ...", um es zu erstellen).
  • Doppelklicken Sie im Makro-Explorer-Fenster auf "EnvironmentEvents" auf der linken Seite.
  • Wählen Sie im Dropdown-Menü oben links "SolutionEvents".
  • Wählen Sie oben rechts die Option "Geöffnet".
  • Code zur Behandlung des SolutionEvents.Opened-Ereignisses wird automatisch hinzugefügt. Ändern Sie diesen Code wie folgt:

    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
    
  • Speichere das Makro.

  • Verwenden Sie Extras> Optionen, um Ihre Benutzeroberfläche so zu ändern, dass sie die Registerkarteneinstellungen und alles, was Sie sonst noch einstellen möchten, enthält.
  • Extras> Einstellungen importieren und exportieren ...> Ausgewählte Umgebungseinstellungen exportieren> Weiter
  • Um nur die Tab-Einstellungen zu exportieren, deaktivieren Sie 'Alle Einstellungen' und wählen dann Optionen> Texteditor> C / C ++
  • Klicken Sie auf Weiter und geben Sie 'solution.vssettings' als 'Was möchten Sie Ihre Einstellungsdatei nennen?' und speichern Sie die Datei dort, wo Sie eine Lösung haben, die Sie diese Einstellungen verwenden möchten.
  • Ziehen Sie solution.vssettings an einen beliebigen Speicherort im Projektmappen-Explorer.
  • Beenden Sie Visual Studio und beim nächsten Öffnen einer Lösung, die solution.vssettings enthält, sollten diese Einstellungen geladen werden.

Wenn das Makro nicht ausgeführt wird, liegt das möglicherweise an einem MS-Sicherheitspatch. Beyogen auf Dies, füge folgenden String hinzu:

<AllowDComReflection enabled="true"/>

Unter dem Tag <runtime> in den folgenden drei Dateien:

"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"

Achten Sie darauf, den Editor zu starten, den Sie verwenden, um diese Dateien mit Administratorrechten zu bearbeiten (dh klicken Sie mit der rechten Maustaste auf Editor und wählen Sie 'Als Administrator ausführen').

Ich habe auch gefunden ein Plug-in das sollte das gleiche wie das oben vorgeschlagene Makro tun, aber aus irgendeinem Grund hat es nichts getan, nachdem ich seinen Installer ausgeführt habe.


0
2018-05-23 21:02



Das clang-Format bietet recht ausgeklügelte Optionen zum Formatieren Ihres Quellcodes.

Das Visual Studio-Plug-in ist ziemlich rudimentär, d. H. Es wird nicht automatisch ausgeführt, aber es funktioniert gut (wenn es manuell aufgerufen wird).

http://llvm.org/builds/


0
2017-07-08 08:59