在Visual Studio中,如何将默认的XML摘要注释片段从三行更改为一行?
目前,当我输入///
时,它会提供此代码段:
/// <summary>
///
/// </summary>
我想要这个更短的代码段:
///<summary></summary>
我的摘要通常很简短,额外的2行是不必要的。
是否有针对此或某些可自定义代码/自定义插件的配置设置来解决此问题。
答案 0 :(得分:4)
这是一个较老的问题,但我喜欢杰森威廉姆斯建议为此创建一个片段,所以我做了。不是很复杂,但复制和粘贴更容易:)
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Single line summary</Title>
<Shortcut>summary</Shortcut>
</Header>
<Snippet>
<Code Language="csharp">
<![CDATA[/// <summary>$end$</summary>]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
您可以通过(可能很明显)更改<Shortcut>
值来更改快捷方式。
将其粘贴到名为SingleLineSummary.snippet
的新文件中,并将其保存在文件夹%USERPROFILE%\Documents\Visual Studio 2012\Code Snippets\Visual C#\My Code Snippets
中(修改为适合您的Windows和Visual Studio版本)。
如果你不熟悉片段,要使用它只需将光标放在方法/属性/ etc之上,开始输入summary
,然后点击TAB几次。
答案 1 :(得分:3)
就个人而言,我认为这应该是VS编辑器本身的一部分。如果您愿意,我可以选择投票。{/ p>
与此同时,片段的想法很好,但行为略有不同。如果你想保持相同的行为,如果你愿意购买第三方插件,那么SubMain有一个名为&#34; GhostDoc Pro&#34;只需要一点努力,就可以为你做到这一点。 (请注意,他们有一个免费的,非&#34; pro&#34;版本,&#34; GhostDoc&#34;,但我认为它不会起作用。)
如果你想走这条路,可以看看它是如何运作的。
您需要为要使其生效的EACH类型编辑T4模板。
在顶部,修改
/// <summary>
///<# GenerateSummaryText(); #>
/// </summary>
只是
/// <summary><# GenerateSummaryText(); #></summary>
GenerateSummaryText
中,将每个this.WriteLine
修改为this.Write
在关闭选项页面之前,请前往&#34; General&#34; (来自&#34;规则&#34;)并在记录这个&#34;时检查&#34;突出显示自动生成的摘要。这将导致新插入的自动文本被选中,所以如果您不喜欢它,您可以开始输入。当然,如果您希望文本根本不生成,那么您也可以这样做,但您必须更多地修改T4模板。具体而言,您需要GenerateSummaryText
只使用一行
this.Write(Context.ExecMacro("$(End)"));
这将使其不生成任何文本,但会将光标放在2 <summary>
标记之间。
旁注:
如果有人知道如何使用ReSharper或其他附加工具来做到这一点,我也有兴趣看到这个解决方案 - 如果没有其他原因而不仅仅是好奇心。
答案 2 :(得分:2)
您可以根据需要手动设置注释的格式,只要它仍然有效xml。
最便宜的方法可能是禁用Visual Studio中的自动注释构建操作(工具&gt;选项&gt;文本编辑器&gt; C#&gt;为///生成XML文档注释)并使用代码段插入{ {1}}。
如果您希望默认格式为单行,和/或帮助保持格式整洁和可读,我的插件Atomineer Pro Documentation也可能是您感兴趣的。在众多选项中,有一种选择是使用紧凑的1行格式进行任何足够短以适合单行的注释。它专门为此而设计,因此可以更好地满足您的需求。
最后一个建议是,有几个其他加载项(Resharper等)可以生成简单的样板文件xml文档注释 - 我相信其中一些加载项可以配置为使用特定的文本片段。如果您已经有这样的插件,可能会调整您的插件以提供您需要的单行格式,其方式略高于上面建议的基本Visual Studio调整。