Visual Studio添加自定义代码片段

  • ​​创建代码片段​​
  • ​​代码片段模板​​
  • ​​创建代码片段​​
  • ​​导入代码片段​​
  • ​​Description(说明) 和 Shortcut(快捷方式) 字段​​
  • ​​发布代码片段​​
  • ​​先决条件​​
  • ​​设置目录结构​​
  • ​​添加 .pkgdef 文件​​
  • ​​测试代码片段​​
  • ​​代码片段中的特殊字符​​

记录一下如何在Visual Studio 中添加自定义的代码片段;

创建代码片段

代码片段模板

`<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title></Title>
<Author></Author>
<Shortcut></Shortcut>
<Description></Description>
</Header>
<Snippet>
<Code Language="">
<![CDATA[]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>`

![](https://s2.51cto.com/images/blog/202211/12004933_636e7d1dd9f1277497.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

* 1
* 2
* 3
* 4
* 5
* 6
* 7
* 8
* 9
* 10
* 11
* 12
* 13
* 14
* 15
* 16

创建代码片段

  1. 在Visual Studio中创建一个新的XML文件,然后把让面复制上面的模板。
  2. 在​​Title​​元素中填写代码片段的标题。
  3. 在​​Code​​​元素的​​Language​​属性中填写代码片段的语言。对于 C#,使用 CSharp;对于 Visual Basic,使用 VB;对于 C++,使用 CPP ;对于JS,使用JavaScript。
  4. 另存文件未后缀为​​.snippet​​的文件,最好保存在一个固定的位置。

导入代码片段

  1. 可以使用​​代码片段管理器​​将代码片段导入Visual Studio安装, 通过选择“工具” > “代码片段管理器”打开它 。
  2. Visual Studio添加自定义代码片段_c#


  3. Visual Studio添加自定义代码片段_代码片段_02

  4. 单击“导入”按钮 。

  5. 请转到在前面的过程中保存代码片段的位置,选择该位置,然后单击“打开” 。

  6. “导入代码片段”对话框随即打开,要求从右窗格中提供的选项中选择代码片段的添加位置 。 其中一个选项应为“我的代码片段” 。 选择它,单击“完成”,然后单击“确定” 。

  7. 代码片段会复制到以下某一位置,具体取决于代码语言:

    %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets
    %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets

  8. 通过打开 C# 或 Visual Basic 项目来测试代码片段。 在编辑器中打开一个代码文件之后,依次选择右键单击菜单中的“代码片段” > “插入代码片段”,再选择“我的代码片段” 。 应看到一个名为 Square Root 的代码片段 。 双击该选项。

    该代码片段代码已插入代码文件中。

Description(说明) 和 Shortcut(快捷方式) 字段

  1. 在​​代码片段管理器​​中查看​​说明​​字段时,可以获得有关代码片段的详细信息。 快捷方式是用户为插入代码片段而键入的标记。 通过打开文件 %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets[Visual C# 或 Visual Basic]\My Code Snippet\SquareRoot.snippet,编辑已添加的代码片段 。

    由于要编辑在其中放置 Visual Studio 的目录中的文件,因此无需重新将其导入到 Visual Studio。

  2. Header 元素应该类似于以下形式:

    `<Header>
    <Title>Square Root</Title>
    <Author>Myself</Author>
    <Description>Calculates the square root of 16.</Description>
    </Header>`

    * 1
    * 2
    * 3
    * 4
    * 5
  3. 打开“代码片段管理器” 并选择代码片段。 在右窗格中,注意“说明”和“创建者”字段现在已填充 。
  4. Visual Studio添加自定义代码片段_代码片段_03

  5. 添加快捷方式,即可通过输入部分代码来提示一整段代码

    `<Header>
    <Title>Square Root</Title>
    <Author>Myself</Author>
    <Description>Calculates the square root of 16.</Description>
    <Shortcut>sqrt</Shortcut>
    </Header>`

    * 1
    * 2
    * 3
    * 4
    * 5
    * 6
  6. 再次保存代码片段文件。要测试快捷方式,请打开之前使用的项目,在编辑器中键入 sqrt 并按 Tab(Visual Basic 按一次,C# 按两次) 。

发布代码片段

可以向朋友提供代码片段,然后让他们使用代码片段管理器在自己的计算机上安装代码片段。 但是,如果你有若干代码片段要分发或者希望进行范围更广泛的分发,则可以将代码片段文件包含到 Visual Studio 扩展中。 然后,Visual Studio 用户可安装扩展,以获得这些片段。

先决条件

安装“Visual Studio 扩展开发”工作负载,以访问“VSIX 项目”项目模板。

Visual Studio添加自定义代码片段_代码片段_04


在此过程中,将使用相同的 Hello World 代码片段,该代码片段创建自创建代码片段。 本文提供了片段 XML,因此无需返回创建片段。

  • 根据“空 VSIX 项目”模板创建一个新项目,并将该项目命名为 TestSnippet。

  • 在 TestSnippet 项目中,添加一个新的 XML 文件,并将其命名为 VBCodeSnippet.snippet。 将内容替换为以下 XML:```

    ​<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Hello World VB</Title> <Shortcut>HelloWorld</Shortcut> <Description>Inserts code</Description> <Author>MSIT</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> <SnippetType>SurroundsWith</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="VB"> <![CDATA[Console.WriteLine("Hello, World!")]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>​

    Visual Studio添加自定义代码片段_代码片段_05


    设置目录结构

    1. 在解决方案资源管理器中,选择项目节点,并添加一个文件夹,该文件夹的名称为想要代码片段在代码片段管理器中显示的名称。 在本例中,名称应为 HelloWorldVB。

    2. 将 .snippet 文件移动到 HelloWorldVB 文件夹 。

    3. 在解决方案资源管理器中选择 .snippet 文件,确保“属性”窗口中的“生成操作”设置为“内容”,“复制到输出目录”设置为“始终复制”,“包含在 VSIX 中”设置为“true”。

    添加 .pkgdef 文件

    1. 将文本文件添加到 HelloWorldVB 文件夹,并将其命名为 HelloWorldVB.pkgdef。 此文件用于向注册表添加某些项。 在这种情况下,会将新子项添加到 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\16.0\Languages\CodeExpansions\Basic 密钥。

    2. 向文件中添加以下行。

      `// Visual Basic
      [$RootKey$\Languages\CodeExpansions\Basic\Paths]
      "HelloWorldVB"="$PackageFolder$"`

      * 1
      * 2
      * 3
    3. 通过检查此项,你可以看到如何指定不同的语言。

    4. 在解决方案资源管理器中,选择 .pkgdef 文件,并在“属性”窗口中确保:

      • 将“生成操作”设置为“内容”
      • 将“复制到输出目录”设置为“始终复制”
      • 将“包含在 VSIX 中”设置为“true”
      • 将.pkgdef 文件添加为 VSIX 清单中的资产。 在 source.extension.vsixmanifest 文件中,转到“资产”选项卡,然后单击“新建” 。
    5. 在“添加新资产”对话框中,将“类型”设置为“Microsoft.VisualStudio.VsPackage”,将“源”设置为“文件系统上的文件”,将“路径”设置为“HelloWorldVB.pkgdef”(它应显示在下拉列表中)。

    测试代码片段

    1. 现在,可以确保代码片段在 Visual Studio 的实验实例中的工作。 实验实例是 Visual Studio 的第二份副本,它独立于用于编写代码的副本。 它可让在扩展上工作,而不会影响你的开发环境。

    2. 生成项目并启动调试。
      将出现 Visual Studio 的第二个实例。

    3. 在实验实例中,请转到“工具” > “代码片段管理器”,并将“语言”设置为“Basic” 。 将看到 HelloWorldVB 显示为一个文件夹,并且应能够展开该文件夹以查看 HelloWorldVB 代码片段 。

    4. 测试代码片段。 在实验实例中,打开 Visual Basic 项目,并打开一个代码文件。 将光标置于代码中的某处,右键单击,然后在上下文菜单中选择“插入片段”。

    5. 将看到 HelloWorldVB 显示为一个文件夹。 双击该选项。 将会看到一个弹出窗口“<插入片段: HelloWorldVB >”,该窗口中包含下拉列表“HelloWorldVB”。 单击 HelloWorldVB 下拉列表。

      代码文件中添加了以下行:

      `Console.WriteLine("Hello, World!")` 

      * 1
    代码片段中的特殊字符
    1. 在网上看了很多教程,说特殊字符使用​​\\​​来转义,但是试了一下对于​​$​​来说​​\\​​无法转义,正确使用​​$$​​即可。

    暂未尝试其他特殊字符。