使用自定义代码段时,VS似乎总是在下一行展开代码段,创建一个不需要的空行。
我该如何防止这种情况?
自定义代码段:
<CodeSnippet Format="1.0.0">
<Header>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
<Title>Argument not null check</Title>
<Shortcut>an</Shortcut>
</Header>
<Snippet>
<Declarations>
<Literal Editable="true">
<ID>argument</ID>
<ToolTip>Argument name</ToolTip>
<Default>arg</Default>
</Literal>
</Declarations>
<Code Language="csharp" Kind="method body" Delimiter="$"><![CDATA[if ($argument$ == null)
throw new ArgumentNullException("$argument$");]]></Code>
</Snippet>
</CodeSnippet>
我期望(和喜欢)片段如何工作:
public void Concat(string a, string b)
{
an
an
return a + b;
}
...
public void Concat(string a, string b)
{
if (a == null)
throw new ArgumentNullException("a");
if (b == null)
throw new ArgumentNullException("b");
return a + b;
}
它是如何运作的:
public void Concat(string a, string b)
{
if (a == null)
throw new ArgumentNullException("a");
if (b == null)
throw new ArgumentNullException("b");
return a + b;
}
奇怪的是CodeContract片段按预期工作,但是比较xml我看不出它们是如何不同的,即使我使用单行自定义片段。
答案 0 :(得分:2)
我遇到了同样的问题并做了一些测试。当代码段不包含$end$
标记时,Visual Studio 2015似乎会插入一个空行。如果您在$end$
标记内的CDATA部分末尾插入<Code>
标记,则Visual Studio将停止在代码段的开头添加一个空白行。
对我来说似乎是一个错误。 Visual Studio 2013没有出现此问题。