Visual Studio 2015 Code Snippet,具有重要的尾随空格

时间:2016-06-13 15:00:27

标签: c# visual-studio-2015 code-snippets

有一段时间我有一个自定义的Visual Studio代码片段来协助在我的C#源文件中注入版权标题。它看起来像这样:

<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块末尾的两个尾随终点线。在2015年之前的Visual Studio版本中,我可以将光标放在文件的开头,就在第一次使用声明之前,键入header+TAB,我的标题会在最后一条评论之间显示一个额外的空行和第一个使用声明。

Visual Studio 2015似乎不尊重尾随空格。当我输入header+TAB时,第一个使用声明与最后一个注释出现在同一行。

我是在查看错误,还是有办法配置我的代码段,以便Visual Studio 2015能够支持尾随空格?

1 个答案:

答案 0 :(得分: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$]]>