VS2019代码片段初识与自定义

前言:

我们在编写代码时,有时候为了省事儿,往往只需要在开发工具中输入for 后敲Tab键时即可触发代码自动补全功能,在实际开发中非常好用。

由此,我们为什么不能开发出自己的一套代码快速不全的小功能呢?

这样以后只需要敲几个字符后,按一下Tab键即可快速生成我们自定义的模板,可大大降低重复性的工作。

参考源码路径:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC#\Snippets\2052\Visual C#\

标准示例

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>for</Title>
      <Shortcut>for</Shortcut>
      <Description>for 循环的代码片段</Description>
      <Author>Microsoft Corporation</Author>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
        <SnippetType>SurroundsWith</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Declarations>
        <Literal>
          <ID>index</ID>
          <Default>i</Default>
          <ToolTip>索引</ToolTip>
        </Literal>
        <Literal>
          <ID>max</ID>
          <Default>length</Default>
          <ToolTip>最大长度</ToolTip>
        </Literal>
      </Declarations>
      <Code Language="csharp">
        <![CDATA[for (int $index$ = 0; $index$ < $max$; $index$++)
        {
        $selected$ $end$
        }]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

相关学习文档.

http://www.cnblogs.com/anderslly/archive/2009/02/16/vs2008-code-snippets.html


需要注意的点:

  • 把代码包含在 <![CDATA[ ]]>中,因为代码很可能会包含一些特殊字符
  • 操作方法:输入节中的代码简写单词后,按一次Tab键,即可直接打出代码片段,继续点击Tab键可在 $ 包含的英文单词中(如:index,max)进行切换修改,按下回车键后,默认代码片段修改完成,且光标回到$end$位置。
  • $包裹的可修改单词必须要加在节点下的 <Literal>节点中,并维护其中的值。
  • 相同的 $包裹单词,如:$index$,只要其中一个被修改,其他的也会跟着变。
  • 文件后缀名为: .snippet

编写自己的代码片段

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>ifcont</Title>
      <Shortcut>ifcont</Shortcut>
      <Description>if 语句的代码片段</Description>
      <Author>Lovebin</Author>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
        <SnippetType>SurroundsWith</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>      
      <Code Language="csharp"><![CDATA[if ($entity$.Contains("$new_b$"))
  {
    $selected$ $end$
  }]]>
      </Code>
      <Declarations>
        <Literal>
          <ID>entity</ID>
          <ToolTip>实体表</ToolTip>
          <Default>entity</Default>
        </Literal>
        <Literal>
          <ID>new_b</ID>
          <ToolTip>字段</ToolTip>
          <Default>new_b</Default>
        </Literal>
      </Declarations>
    </Snippet>
  </CodeSnippet>
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Getstring</Title>
      <Shortcut>Getstring</Shortcut>
      <Description>代码片段string</Description>
      <Author>Lovebin</Author>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
        <SnippetType>SurroundsWith</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>      
      <Code Language="csharp"><![CDATA[$entity$.GetAttributeValue<string>("$filedname$");$end$]]>
      </Code>
      <Declarations>      
        <Literal>
          <ID>filedname</ID>
          <ToolTip>字段</ToolTip>
          <Default>filedname</Default>
        </Literal>
        <Literal>
          <ID>entity</ID>
          <ToolTip>实体表</ToolTip>
          <Default>entity</Default>
        </Literal>
      </Declarations>
    </Snippet>
  </CodeSnippet>
  .....
</CodeSnippets>

   转载规则


《VS2019代码片段初识与自定义》 LoveBin 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录