代码段快捷方式无处不在

我有一个代码片段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?