Viusal Studio 代码片段管理
2022/6/18 23:23:15
本文主要是介绍Viusal Studio 代码片段管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
什么是代码片段?
所谓代码片段,指的是一小段可以重复拿来修改使用的代码块。
比如一些常见的 for 循环、类的定义等等。
// for 循环 for(size_t i = 0; i < length; i++) { } // 类的定义 class MyClass { public: MyClass(); ~MyClass(); private: }; MyClass::MyClass() { } MyClass::~MyClass() { }
在 Visual Studio 中,提供了一种快速生成代码片段的快捷方式,具体用法如下:
当你在编辑器中输入 for 之后,IDE 会弹出相关的代码片段,如 “for” 、"foreach"、 “forr” 等,首选项为 “for”,并为其提供了提示文字:for,“for”循环的代码片段。
然后按下 Tab 时,自动生成 for 循环代码片段:
同理,当你输入 class 时,按下 Tab 也会自动生成相应的代码片段:
代码片段从哪读取的?
在 VS 的顶部功能栏,选择 工具 > 代码片段管理:
弹出如下界面:
这里记录了所有语言的代码片段集合、以及对应的存储位置,并且提供了自定义代码片段功能,此处的 “My CSS Snippets” 就是用来读取用户自定义的代码片段的。
我们选择在语言中下拉选择 “Visual C++”,然后选择左下角窗口中的 Visual C++ 文件夹,找到 for:
可以看到这里记录了 for 这个代码片段,右侧对其进行了解释。
注意到上方提供了位置路径,我们打开它,并找到 "for.snippet",文件内容如下:
<?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>type</ID> <Default>size_t</Default> <ToolTip>控制变量类型</ToolTip> </Literal> <Literal> <ID>index</ID> <Default>i</Default> <ToolTip>索引</ToolTip> </Literal> <Literal> <ID>max</ID> <Default>length</Default> <ToolTip>最大长度</ToolTip> </Literal> </Declarations> <Code Language="cpp"><![CDATA[for ($type$ $index$ = 0; $index$ < $max$; $index$++) { $selected$ $end$ }]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
该文件使用的是 xml 语法,定义了 for 循环代码片段。
代码片段是如何被定义的?
xml 语言具有层级关系,下面按照标签包裹关系分析以下 for 循环代码片段是如何被定义的。
一个代码片段被定义在一组 CodeSnippet
中,其内部又分为 Header
和 Snippet
。
Header 中定义了代码片段的标题(Title)、快捷方式(Shortcut)、说明(Description)、作者(Author)、以及代码片段的类型(SnippetType)。以上代码内容编号后与界面元素对应关系如下:
类型(SnippetType)中有两种可选类型:
- SurroundsWith表示代码片段可以将已有的代码包裹进代码片段中。
- Expansion表示代码片段可以在光标处插入。
这部分代码主要定义了快捷方式的基本信息,负责输出代码片段内容的在 Snippet
中。
Snippet 中,将代码片段分成变量申明(Declarations) 和代码块(Code)。
Declarations 中由 Literal
包裹着的为一个变量。变量具有 ID、提示语(ToolTip)、默认值(Default)。当需要申明多个变量时,可以在 Declarations 中写入多组 Literal 。
Code 中,需要指明语言类型 Language="cpp",然后开始定义代码内容。
这里语法是这样的:
<![CDATA[你的代码内容]]>
在Literal 中申明的变量可以用一对美元符号包裹起来,放在代码内容里,自行转换成其值。
其中 $selected$
表示的是被选中的已有代码,与SurroundsWith类型对应,实现已有片段的包裹。$end$
表示代码插入后,光标停留的位置。
假设我想把 int a=10; 这段代码包裹一层 for 循环。那么选择代码,右键>外侧代码>Visual C++>for,双击for(或者按下回车)即可。
写一个自己的代码片段
掌握上面的规则后,我们可以自己DIY代码片段了。
假设我现在要实现一个函数代码功能快速注释的功能,希望输入 funcdef
时,自动给我生成以下格式的注释模板
/** * @brief * * @param[in] * @param[out] * @return */
则可在自定义文件夹中写入自己的 snippets 文件
内容如下:
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>funcdef</Title> <Shortcut>funcdef</Shortcut> <Description>函数功能注释</Description> <Author>GShang</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="cpp"> <![CDATA[/** * @brief $end$ * * @param[in] * @param[out] * @return */]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
注意代码片段最左边为左对齐
效果如下:
参考资料
- 代码片段 - Visual Studio (Windows) | Microsoft Docs
- 建议该章节全部看一遍,了解整个代码片段的来龙去脉
- 用VS2005为自定义代码段而制作代码段来定义代码段
这篇关于Viusal Studio 代码片段管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?