Visual Studio添加自定义代码片段
- 创建代码片段
- 代码片段模板
- 创建代码片段
- 导入代码片段
- Description(说明) 和 Shortcut(快捷方式) 字段
- 发布代码片段
- 先决条件
- 设置目录结构
- 添加 .pkgdef 文件
- 测试代码片段
- 代码片段中的特殊字符
记录一下如何在Visual Studio 中添加自定义的代码片段;
创建代码片段
代码片段模板
创建代码片段
- 在Visual Studio中创建一个新的XML文件,然后把让面复制上面的模板。
- 在
Title
元素中填写代码片段的标题。 - 在
Code
元素的Language
属性中填写代码片段的语言。对于 C#,使用 CSharp;对于 Visual Basic,使用 VB;对于 C++,使用 CPP ;对于JS,使用JavaScript。 - 另存文件未后缀为
.snippet
的文件,最好保存在一个固定的位置。
导入代码片段
- 可以使用
代码片段管理器
将代码片段导入Visual Studio安装, 通过选择“工具” > “代码片段管理器”打开它 。 单击“导入”按钮 。
请转到在前面的过程中保存代码片段的位置,选择该位置,然后单击“打开” 。
“导入代码片段”对话框随即打开,要求从右窗格中提供的选项中选择代码片段的添加位置 。 其中一个选项应为“我的代码片段” 。 选择它,单击“完成”,然后单击“确定” 。
代码片段会复制到以下某一位置,具体取决于代码语言:
%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets
%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets通过打开 C# 或 Visual Basic 项目来测试代码片段。 在编辑器中打开一个代码文件之后,依次选择右键单击菜单中的“代码片段” > “插入代码片段”,再选择“我的代码片段” 。 应看到一个名为 Square Root 的代码片段 。 双击该选项。
该代码片段代码已插入代码文件中。
Description(说明) 和 Shortcut(快捷方式) 字段
在
代码片段管理器
中查看说明
字段时,可以获得有关代码片段的详细信息。 快捷方式是用户为插入代码片段而键入的标记。 通过打开文件 %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets[Visual C# 或 Visual Basic]\My Code Snippet\SquareRoot.snippet,编辑已添加的代码片段 。由于要编辑在其中放置 Visual Studio 的目录中的文件,因此无需重新将其导入到 Visual Studio。
Header 元素应该类似于以下形式:
- 打开“代码片段管理器” 并选择代码片段。 在右窗格中,注意“说明”和“创建者”字段现在已填充 。
添加快捷方式,即可通过输入部分代码来提示一整段代码
再次保存代码片段文件。要测试快捷方式,请打开之前使用的项目,在编辑器中键入 sqrt 并按 Tab(Visual Basic 按一次,C# 按两次) 。
可以向朋友提供代码片段,然后让他们使用代码片段管理器在自己的计算机上安装代码片段。 但是,如果你有若干代码片段要分发或者希望进行范围更广泛的分发,则可以将代码片段文件包含到 Visual Studio 扩展中。 然后,Visual Studio 用户可安装扩展,以获得这些片段。
先决条件
安装“Visual Studio 扩展开发”工作负载,以访问“VSIX 项目”项目模板。
在此过程中,将使用相同的 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>
设置目录结构
在解决方案资源管理器中,选择项目节点,并添加一个文件夹,该文件夹的名称为想要代码片段在代码片段管理器中显示的名称。 在本例中,名称应为 HelloWorldVB。
将 .snippet 文件移动到 HelloWorldVB 文件夹 。
在解决方案资源管理器中选择 .snippet 文件,确保“属性”窗口中的“生成操作”设置为“内容”,“复制到输出目录”设置为“始终复制”,“包含在 VSIX 中”设置为“true”。
添加 .pkgdef 文件
将文本文件添加到 HelloWorldVB 文件夹,并将其命名为 HelloWorldVB.pkgdef。 此文件用于向注册表添加某些项。 在这种情况下,会将新子项添加到 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\16.0\Languages\CodeExpansions\Basic 密钥。
向文件中添加以下行。
通过检查此项,你可以看到如何指定不同的语言。
在解决方案资源管理器中,选择 .pkgdef 文件,并在“属性”窗口中确保:
- 将“生成操作”设置为“内容”
- 将“复制到输出目录”设置为“始终复制”
- 将“包含在 VSIX 中”设置为“true”
- 将.pkgdef 文件添加为 VSIX 清单中的资产。 在 source.extension.vsixmanifest 文件中,转到“资产”选项卡,然后单击“新建” 。
在“添加新资产”对话框中,将“类型”设置为“Microsoft.VisualStudio.VsPackage”,将“源”设置为“文件系统上的文件”,将“路径”设置为“HelloWorldVB.pkgdef”(它应显示在下拉列表中)。
测试代码片段
现在,可以确保代码片段在 Visual Studio 的实验实例中的工作。 实验实例是 Visual Studio 的第二份副本,它独立于用于编写代码的副本。 它可让在扩展上工作,而不会影响你的开发环境。
生成项目并启动调试。
将出现 Visual Studio 的第二个实例。在实验实例中,请转到“工具” > “代码片段管理器”,并将“语言”设置为“Basic” 。 将看到 HelloWorldVB 显示为一个文件夹,并且应能够展开该文件夹以查看 HelloWorldVB 代码片段 。
测试代码片段。 在实验实例中,打开 Visual Basic 项目,并打开一个代码文件。 将光标置于代码中的某处,右键单击,然后在上下文菜单中选择“插入片段”。
将看到 HelloWorldVB 显示为一个文件夹。 双击该选项。 将会看到一个弹出窗口“<插入片段: HelloWorldVB >”,该窗口中包含下拉列表“HelloWorldVB”。 单击 HelloWorldVB 下拉列表。
代码文件中添加了以下行:
- 在网上看了很多教程,说特殊字符使用
\\
来转义,但是试了一下对于$
来说\\
无法转义,正确使用$$
即可。
暂未尝试其他特殊字符。