Indentare correttamente il codice in un template T4 di Visual Studio

di , in .NET Framework,

Quando generiamo un file tramite il motore di templating di Visual Studio, una delle cose più ostiche è la gestione dell'indentazione del codice. Infatti capita dfi ritrovarsi generato del codice perfettamente valido, ma indentato in un modo incomprensibile. Per eliminare il problema, possiamo prendere il controllo completo sull'indentazione utilizzando i metodi PushIndent e PopIndent, WriteLine. Il primo metodo un livello di indentazione, il secondo elimina un livello di indentazione e il terzo metodo scrive sull'output utilizzando l'attuale livello di indentazione.

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>

<#
WriteLine(CurrentIndent + "class Person {");
PushIndent("  ");
WriteLine(CurrentIndent + "public void Greet() {");
PushIndent("  ");
WriteLine(CurrentIndent + "// code");
PopIndent();
WriteLine(CurrentIndent + "}");
PopIndent();
WriteLine(CurrentIndent + "}");
#>

In questo esempio creiamo la prima riga della classe Person senza alcuna indentazione. Successivamente aggiungiamo un'indentazione di due caratteri e creiamo il metodo Greet che verà quindi indentato correttamente così come il suo contenuto sottoposto a un'ulteriore indentazione. Infine, eliminiamo un'indentazione e chiudiamo il metodo, eliminiamo un'altra indentazione e chiudiamo la classe. Il risultato finale è il seguente.

class Person {
  public void Greet() {
    // code
  }
}

Se vogliamo ripulire tutte le indentazioni in un colpo solo, possiamo utilizzare il metodo ClearIndent.

Commenti

Visualizza/aggiungi commenti

Indentare correttamente il codice in un template T4 di Visual Studio (#486) 1010 1
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi