Warum erhalte ich in einem Visual Studio 2010 C # -Codefenster immer wieder gemischte Tabulatoren und Leerzeichen?

87

Ich habe gerade in der letzten Stunde an einer C # -Datei (Global.asax.cs) in einer Webanwendung gearbeitet, und mir wurde die Aufforderung zum "Tabifizieren" oder was auch immer ungefähr viermal angezeigt. Jedes Mal, wenn ich mich entscheide, die Dateien zu tabellieren und zu speichern, werde ich später an einem scheinbar zufälligen Punkt erneut dazu aufgefordert.

Ich verwende ReSharper, aber dies passiert nicht, wenn ich zu Hause codiere, auch nicht mit ReSharper. Nur bei der Arbeit.

ProfK
quelle
3
Ist die Einstellung für den Tabulatoreinzug so festgelegt, dass die Leerzeichen tatsächlich vollständig in Tabulatoren konvertiert werden können?
ein CVn
Ich bekomme das jetzt auch in einer meiner Dateien. Ich habe es heute ein bis zwei Mal pro Stunde. Noch bevor die Datei zur Quellcodeverwaltung hinzugefügt wurde.
Sindre J
12
@LostHobbit Es ist wichtig, weil ein nerviger Dialog immer wieder auftaucht und meinen Fluss unterbricht.
ProfK

Antworten:

146

Verwenden Sie die Erweiterung Productivity Power Tools VS 2010? Wenn ja, gehen Sie zu Tools-> Options-> und wählen Sie Productivity Power Tools. Hier können Sie die Option deaktivieren Fix Mixed Tabs. Dadurch wird diese Warnung deaktiviert.

Elektrowerkzeuge für Visual Studio 2010

Elektrowerkzeuge für Visual Studio 2012

Elektrowerkzeuge für Visual Studio 2013

Elektrowerkzeuge für Visual Studio 2015

Justin Saraceno
quelle
20
Ich würde es vorziehen, die Warnung beizubehalten und stattdessen die gemischten Tabulatoren und Leerzeichen zu entfernen.
ProfK
2
@ProfK würde der zufällige Punkt, den Sie erneut erhalten, auch dann auftreten, wenn jemand anderes Änderungen an dieser Datei eincheckt (wenn Sie die Quellcodeverwaltung verwenden)? Möglicherweise haben Sie und jemand anderes in VS unterschiedlich definierte Tabulatoren.
Justin Saraceno
7
Schwer zu sehen, wie produktiv das ist. Deaktivieren Sie Registerkarten mit Extras + Optionen, Texteditor. Sie wurden im vorigen Jahrhundert verwendet, um Bytes zu speichern.
Hans Passant
6
@Hans, die Produktivität bei der Verwendung von Registerkarten ist hier überhaupt nicht relevant.
ProfK
35
Die Produktivität von Registerkarten wurde ausführlich diskutiert, und Registerkarten bieten mehr Vorteile als nur die Datengröße. Registerkarten haben konfigurierbare Breiten für Personen mit unterschiedlichen Einrückungseinstellungen, die an demselben Projekt arbeiten. Wenn jeder seinen VS so konfiguriert hat, dass er anstelle von Tabulatoren eine unterschiedliche Anzahl von Leerzeichen verwendet, wird der Code zu einem Chaos. Wenn jedoch jeder Tabulatoren verwendet und die Tabulatorbreite nach seinen visuellen Vorlieben konfiguriert, bleibt der Code sauber und jeder bekommt seinen Kuchen und isst ihn auch. Was ist wiederum der Vorteil der Verwendung von Leerzeichen?
TheXenocide
60

Die gemischten Tabulatoren und Leerzeichen stammen möglicherweise aus der Einstellung Ihres Visual Studio-Texteditors. Hier können Sie entscheiden, ob Visual Studio Leerzeichen oder Tabulatoren einfügen soll:

Extras / Optionen / -> Texteditor / Alle Sprachen / Registerkarten, wählen Sie die Option "Registerkarten behalten".

Filzen
quelle
6
Dies ist wirklich die richtige Antwort auf die gestellte Frage und das Ergebnis, das @ProfK erzielen wollte.
Reality Extractor
11

Wählen Sie die Option "Untabify", da VS standardmäßig Leerzeichen und keine Tabulatoren verwendet. Wenn Sie beim nächsten Hinzufügen einer Zeile "Tabifizieren" wählen, verwendet VS Leerzeichen und die Eingabeaufforderung wird immer wieder angezeigt.

pbb
quelle
9

Resharperverwendet separate Tab / Space- Einstellungen für Visual Studio. ResharperAktivieren Sie in den Optionen "Allgemeiner Formatierungsstil -> Ausrichten, wenn Registerkarten für Einrückungen verwendet werden". Diese Einstellung wird verwendet, wenn resharperCode formatiert wird (z. B. Refactoring usw.) und standardmäßig "User Spaces" verwendet wird.

Außerdem gibt es im Menü " Bearbeiten -> Erweitert " die Option "Leerzeichen anzeigen" (Strg + E, S), die nützlich sein kann!

Tirinoarim
quelle
Gute Option (das View Whitespace One)! +1
Ignacio Soler Garcia