2015-10-29 6 views
10

Es ist die ärgerlichste Sache und nach 45 Minuten Googeln und Testen habe ich zu den Forum Götter ausgehöhlt ... Ich kann einfach nicht ohne automatische Einrückung leben, auch wenn es nur auf .cshtml Ansicht ist DateienEinrückung ist in Visual Studio .cshtml Dateien gebrochen

Ich benutze VS2015 Community Edition. Meine Cshtml-Dateien haben bis jetzt gut gespielt ...

Aus irgendeinem seltsamen Grund brach die Einrückung.

Ich habe bereits versucht, das Offensichtliche:

  • das Markup auswählen und Strg + K und Strg + F
  • aus- und erneut Hinzufügen der End-Tag (in der Regel setzt Einzüge)
  • in Schlagen Gehen Extras> Optionen> Texteditor> [Sprache einfügen]> Registerkarten und auf Smart festlegen.

Ich hatte gerade ReSharper installiert, bevor ich das Problem bemerkte. Ich bin mir nicht sicher, ob das das verursacht hat oder nicht, aber das Problem ist tatsächlich neu und ich kann mich nicht erinnern, es vorher gesehen zu haben.

Auch seltsam, einige Dinge indent tun, während andere nicht tun

Für diejenigen, die eine Sehhilfe benötigen, frustriert diese Einbuchtung mich:

@{ 
    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width"/> 
    <title>Index</title> 
</head> 
<body> 
<h1>Posts Index</h1> 
@if (true) 
{ 
<text> 
    <p>True is true!</p> 
</text> 
} 
</body> 
</html> 
+0

'Jetzt frage ich mich, ob es sich um ein systemweites Formatierungsproblem handelt, da das obige eine Aufzählungsliste sein soll, dummer StackExchange!' Du brauchst eine leere Zeile vor dem Aufzählungszeichen :-) –

+0

Hast du in 'Resharper nachgeschaut > Optionen> Code Editing> HTML | Razor | etc> Formatierungsstil? Ich habe festgestellt, dass die Standardeinstellungen nie mit der automatischen VS-Formatierung kompatibel sind und eine Konfiguration erfordern. Möglicherweise haben Sie einige Einstellungen verloren, wenn Sie Resharper möglicherweise neu installiert haben. – learningcs

+0

Sie haben die '{' in einer Zeile. Dies wird nicht funktionieren, weil Sie C# und Html in einer Zeile gemischt haben. Setzen Sie die '' in die Zeile unter dem öffnenden Lenker/Squiggle/Klammer/Klammer/Dingamabob, dann versuchen Sie STRG + K, STRG + F (oder STRG + K, STRG + D ... was auch immer Ihre automatischen Format Hotkeys sind) – Bardicer

Antwort

15

Sie haben erwähnt, dass Sie nur ReSharper installiert ist, bevor dieses Problem begann auftreten, so dass Ihr Problem höchstwahrscheinlich von Resharper verursacht wird.

Standardmäßig führt Resharper viele zusätzliche Formatierungsfixes bei der Eingabe aus, aber wahrscheinlich finden Sie eine Reihe dieser Standardkorrekturen im Konflikt mit Ihrem Codierungsstil.

Sie können ReSharper Code Formatierungsoptionen über Resharper > Options > Code Editing > HTML|Razor|etc > Formatting Style

In diesem Fall Ihr Problem war die Einstellung Do not indent children of enthaltenen Variablen konfigurieren, die Sie standardmäßig nicht haben wollte.

+0

Danke nochmal rshepp, das wars! Ich mag ReSharper bisher sehr. – Methodician

+0

Vielen Dank! Ausgezeichnete Antwort, wirklich schätzen die Brotkrumen – RJB

2

Seit 3 ​​Wochen (seit Update auf Visual Studio 2015 SP 2 nach VS 2013) hatte ich das Problem, dass Kopieren/Einfügen und Kommentar in Cshtml-Dateien mein Format meiner Datei zerstören. Interessanterweise war der Tab Einzug in Spalte 7. Ich verstehe nicht warum.

Nach dem Update auf VS 2015 SP 3 wurde das Problem nicht gebannt.

Dann fand ich heraus, dass in meinem cshtml ein "@" -Dateien Zeichen meiner Kopieren/Einfügen/Kommentare zerstört:

@model MAWGridModel<AktionGridRowModel> 
 

 
@if (Model != null) 
 
{ 
 
    @Html.DevExpress().GridView(settings => 
 
    { 
 
     settings.Name = "MAWAktionenErgebnisGrid"; 
 
    ... 
 
    }).Bind(Model).GetHtml(); 
 
}

Das "@" vor „Html.DevEpress () ... "alles zerstört. Hier der Codeausschnitt, der für mich funktioniert. (Ich hoffe, es wird wirklich tun.)

@model MAWGridModel<AktionGridRowModel> 
 

 
    @if (Model != null) 
 
    { 
 
     Html.DevExpress().GridView(settings => 
 
     { 
 
      settings.Name = "MAWAktionenErgebnisGrid"; 
 
     ... 
 
     }).Bind(Model).Render(); 
 
    }

Hoffentlich es Ihnen hilft.

+1

Ich hatte ein ähnliches Problem, aber in meinem Fall war es ein '@ * ... * @' Kommentarblock in einem bereits @ -Started Code-Block. Ich ersetzte die '@ * ...' Kommentarnotation durch traditionelle '//' und alles würde wieder normal ausgerichtet. –