2016-06-13 49 views
7

一段時間以來,我有一個自定義的Visual Studio代碼片段來幫助在我的C#源文件中注入版權標題。它看起來是這樣的:帶有重要尾隨空白的Visual Studio 2015代碼片段

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

要注意對這個問題最重要的是在CDATA塊的最後兩個尾隨endlines。在2015年之前的Visual Studio版本中,我可以將光標置於文件的開頭,即第一個使用聲明的前面,輸入header+TAB,然後我的標題將在最後一個註釋和第一個註釋之間出現一個額外的空行宣言。

Visual Studio 2015似乎不遵守尾隨的空白。當我輸入header+TAB時,第一個使用聲明與最後一個註釋出現在同一行。

我在看一個錯誤,還是有一種方法來配置我的代碼片段,以便Visual Studio 2015會尊重結尾的空白?

+0

您是否試過在最後一行放置\ n? –

+0

謝謝@PaulSwetz。唉,這會導致代碼將文字「\ n」注入到我的源文件中。類似地,在CDATA塊外部添加' '(XML等效於\ r \ n')並不能解決問題。 – kbrimington

+0

常見的事情我看到VS帶來的代碼片段最多是代碼末尾$ end $ 開關示例 \t

回答

5

我看到在看附帶VS片段中的共同點是大部分的代碼與開關$end$

例結束:在結尾的空格結束

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

廣場$end$ ,如下所示:

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

$end$]]>