代码段快捷方式无处不在
我有一个代码片段string.Format(@"")
带有一个快捷键sf
,它插入片段并将光标置于两个双引号之间。 真的很方便。 我通常可以使用它,当然,只需输入sf
并按两次选项卡即可:
不过,我刚刚发现该快捷方式并不适用于所有位置。 例如,如果我正在构建此声明:
if(true) throw new FormatException() // <-- cursor is inside these parens
当我点击sf
,快捷方式不会出现在intellisense菜单中,如果我点击Tab两次,它不会生成片段。 为什么?
我曾尝试搜索“C#代码段快捷方式有时不起作用”,“C#代码段快捷方式不起作用”,“Visual Studio代码片段有时不起作用”等等,我找不到任何有用的东西关于它。
编辑:这是片段的定义:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
<Title>String.Format with @</Title>
<Author>Rory</Author>
<Description>
</Description>
<HelpUrl>
</HelpUrl>
<Shortcut>sf</Shortcut>
</Header>
<Snippet>
<Declarations>
<Literal Editable="true">
<ID>anchor</ID>
<ToolTip>
</ToolTip>
<Default>
</Default>
<Function>
</Function>
</Literal>
</Declarations>
<Code Language="csharp" Delimiter="$" Kind="method body"><![CDATA[string.Format(@"$selected$$end$")]]></Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
根据文档,Kind属性决定了你可以在哪里使用代码片段 - 你已经指定了“method body”,你应该指定“any”
我刚刚创建并测试了(在VS2013和VS2015中)我自己的代码片段,并且按预期工作:
这是它的样子:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
<Title>SnippetFile1</Title>
<Author>me@example.com</Author>
<Description>
</Description>
<HelpUrl>
</HelpUrl>
<Shortcut>sf</Shortcut>
</Header>
<Snippet>
<Code Language="csharp" Delimiter="$"><![CDATA[string.Format(@"$end$")]]></Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
为了创建和编辑片段,Snippet Designer是必备的。
链接地址: http://www.djcxy.com/p/29437.html上一篇: Code snippet shortcut doesn't work everywhere
下一篇: CSS metaphysics: WHY is page vertical alignment so difficult?