2016-06-13 11 views
7

Per un po 'di tempo ho avuto uno snippet di codice di Visual Studio personalizzato per aiutare a iniettare un'intestazione di copyright nei miei file di origine C#. Sembra qualcosa di simile:Snippet di codice di Visual Studio 2015 con spazi finali significativi

<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 
    <Header> 
    <Title>File Header</Title> 
    <Author>Me</Author> 
    <Shortcut>header</Shortcut> 
    <Description>Inserts a standard copyright header.</Description> 
    <SnippetTypes> 
     <SnippetType>Expansion</SnippetType> 
    </SnippetTypes> 
    </Header> 
    <Snippet> 
    <Declarations> 
     <Literal> 
     <ID>FileName</ID> 
     <ToolTip>The name of the C# code file.</ToolTip> 
     <Default>FileName</Default> 
     </Literal> 
    </Declarations> 
    <Code Language="CSharp"><![CDATA[// ----------------------------------------------------------------------- 
// <copyright file="$FileName$.cs" company="Company Name"> 
// Copyright © 2011-2016 by Company Name. All rights reserved. 
// </copyright> 
// ----------------------------------------------------------------------- 

]]></Code> 
    </Snippet> 
</CodeSnippet> 

La cosa importante da notare per questa domanda è le due linee di fondo rovesciata alla fine del blocco CDATA. Nelle edizioni di Visual Studio precedenti al 2015, potevo posizionare il cursore all'inizio di un file, subito prima della prima dichiarazione using, digitare header+TAB e la mia intestazione comparirebbe con una riga vuota aggiuntiva tra l'ultimo commento e il primo utilizzo dichiarazione.

Visual Studio 2015 sembra non onorare gli spazi bianchi finali. Quando digito header+TAB, la prima dichiarazione using viene visualizzata sulla stessa riga dell'ultimo commento.

Sto guardando un bug, o c'è un modo per configurare il mio frammento di codice in modo che Visual Studio 2015 onorerà gli spazi bianchi finali?

+0

Hai provato a inserire un \ n sull'ultima riga? –

+0

Grazie a @PaulSwetz. Ahimè, questo fa sì che lo snippet inserisca il testo letterale, '\ n' sul mio file sorgente. Allo stesso modo, l'aggiunta di ' ' al di fuori del blocco CDATA (equivalente XML di '\ r \ n') non risolve il problema. – kbrimington

+0

La cosa comune Sto vedendo guardando i frammenti che vengono con VS è la fine del codice con $ end $ Esempio da switch \t

risposta

5

La cosa comune che vedo guardando i frammenti che vengono con VS è più il codice termina con $end$

Esempio da interruttore:

<Code Language="csharp"><![CDATA[switch ($expression$) { $cases$ }*$end$*]]> </Code> 

Luogo $end$ alla fine del spazio bianco in coda , così:

<![CDATA[// ----------------------------------------------------------------------- 
// <copyright file="$FileName$.cs" company="Company Name"> 
// Copyright © 2011-2016 by Company Name. All rights reserved. 
// </copyright> 
// ----------------------------------------------------------------------- 

$end$]]> 
Problemi correlati