2015-10-29 14 views
10

È la cosa più esasperante e dopo 45 minuti di utilizzo di Google e test ho ceduto alle divinità del forum ... Non riesco a vivere senza indentazione automatica, anche se è solo su visualizzazione .cshtml fileIl rientro è rotto nei file di Visual Studio .cshtml

Sto usando VS2015 Community edition. I miei file cshtml hanno suonato bene fino ad ora ...

Per qualche strano motivo, il rientro si è rotto.

ho già provato l'ovvio:

  • Selezione del markup e premendo Ctrl + K e Ctrl + F
  • Rimozione e ri-aggiungendo il tag di chiusura (di solito ripristina trattini)
  • Entrando in Strumenti> Opzioni> Editor di testo> [inserisci lingua-o-tutto]> Schede e impostandole su smart.

Avevo appena installato ReSharper prima di notare il problema. Non sono sicuro se ciò lo abbia causato o meno, ma il problema è davvero nuovo e non ricordo di averlo visto prima.

anche strano, alcune cose fanno trattino, mentre altri non

Per coloro che hanno bisogno di un aiuto visivo, questo rientro mi frustra:

@{ 
    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

'Ora mi chiedo se si tratta di un problema di formattazione a livello di sistema dal momento che quanto sopra dovrebbe essere un elenco puntato, stupido StackExchange!' Hai bisogno di una linea vuota prima dei punti elenco :-) –

+0

Hai cercato in 'Resharper > Opzioni> Modifica codice> HTML | Rasoio | etc> Stile formattazione'? Ho trovato che le impostazioni predefinite non sembrano mai giocare bene con l'auto-formattazione VS e ha bisogno di un po 'di configurazione. Potresti aver perso alcune impostazioni durante la reinstallazione di Resharper. – learningcs

+0

Hai il '{' su una riga. Questo non funzionerà perché hai C# e Html misti su una riga. Metti il ​​'' sulla riga sotto il manubrio di apertura/squiggle/brace/bracket/thingamabob, quindi prova CTRL + K, CTRL + F (o CTRL + K, CTRL + D ... qualunque sia il tuo formato automatico tasti di scelta rapida) – Bardicer

risposta

15

Lei ha detto che è stato appena installato ReSharper prima di questo problema è iniziato si verificano, quindi è probabile che il problema sia causato da Resharper.

Per impostazione predefinita, Resharper esegue molte correzioni di formattazione aggiuntive durante la digitazione, ma è probabile che alcune di queste correzioni predefinite siano in conflitto con lo stile di codifica.

È possibile configurare le opzioni di formattazione del codice di ReSharper via Resharper > Options > Code Editing > HTML|Razor|etc > Formatting Style

In questo caso, il problema era l'impostazione Do not indent children of tag che non hai desiderate predefinite contenute.

+0

Grazie ancora rshepp, è stato! Mi piace molto ReSharper finora. – Methodician

+0

Grazie mille! Risposta eccellente, apprezzo molto le briciole di pane – RJB

2

Da 3 settimane (dall'aggiornamento a Visual Studio 2015 SP 2 dopo VS 2013) ho avuto il problema, che copia/incolla e commentava nei file cshtml distruggono il mio formato del mio file. È interessante notare che il rientro della tabulazione era nella colonna 7. Non capisco perché.

Dopo l'aggiornamento a VS 2015 SP 3, il problema non è stato bannato.

poi ho scoperto, che nel file mia cshtml un segno "@" ha distrutto la mia copia/incolla/commenti:

@model MAWGridModel<AktionGridRowModel> 
 

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

La "@" prima "Html.DevEpress () ... "distrutto tutto. Ecco lo snippet di codice che funziona per me. (Spero che davvero fare.)

@model MAWGridModel<AktionGridRowModel> 
 

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

Speriamo che ti aiuta.

+1

Stavo riscontrando un problema simile, ma nel mio caso si trattava di un blocco di commento '@ * ... * @' all'interno di un blocco di codice già avviato da @. Ho sostituito la notazione di commento '@ * ...' con tradizionale '//' e tutto tornerebbe normale. –

Problemi correlati