VisualStudio 可以通过敲出缩写字符串,然后按两次tap按键自动展开成一段对应语义的代码。
举例(C#)
敲缩写cw:
然后按两次tap会自动展开成:
除此之外VisualStudio还有很多这样默认的缩写字符串,不一一列举了。
今天发现可以通过VisualStudio中的代码段管理器自定义这样的缩写字符串和其展开后的字符串。
可以看到名称为”cw“的配置文件定义了上面说的缩写“cw”的自动自动展开功能。
在资源管理器中的对应位置打开这个配置文件”cw.snippet“。
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>cw</Title>
<Shortcut>cw</Shortcut>
<Description>Console.WriteLine 的代码片段</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal Editable="false">
<ID>SystemConsole</ID>
<Function>SimpleTypeName(global::System.Console)</Function>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[$SystemConsole$.WriteLine($end$);]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
仔细看一下这份XML其实可以发现关键的地方就三处.
1.上面的Shortcut标签定义了缩写字符串。
2.中间Declaration标签定义了所需要的变量。
SimepleTypeName函数返回了一个命名空间或者一个类在当前文档中的最简形式。
例如,还是上面的例子,但我在文档开头引用了System的命名空间。
然后我再次敲cw双击tap展开成:
自动选择了WriteLine函数的最简形式。
3.最后Code标签定义的展开后的字符串格式。
其他的标签起什么作用我们不用深究。
ok,我想实现一个自定义功能,在VisualStudio中敲字符串"dl",然后按两次tap自动展开成UnityEngine.Debug.Log();
我们复制上面的那一份XML配置文件,然后命名为“Debug.Log.snippet",改动后内容如下:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Debug.Log</Title>
<Shortcut>dl</Shortcut>
<Description>Debug.Log 的代码片段</Description>
<Author>PuzzledBoy</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal Editable="false">
<ID>Debug</ID>
<Function>SimpleTypeName(UnityEngine.Debug)</Function>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[$Debug$.Log($end$);]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
保存,然后复制到配置文件所在的目录下,或者在代码段管理器中导入。
重启VisualStudio。
然后我们随便新建一个函数,在里面敲dl
双击tap自动展开:
So,对于使用非常频繁又很长的代码段,就可以通过在VisualStudio中自定义配置文件来减轻自己的工作量啦。
还可以观察代码段管理器中的其他配置文件,比如switch语句的自动展开也是很方便的:
敲缩写
双击tap:
填写一个枚举类型变量(假设定义了一个枚举变量ColorType,声明了一个ColorType类型的变量 test),然后按方向键”→“
自动把变量的所有可能的枚举类型都给你列出来了=。=
是不是很方便呢,有兴趣的同学可以自行参考这些配置文件,然后就可以写出很多方便的自动展开功能啦~~~