在Visual Studio中,如何将默认的XML汇总注释片段从三行更改为一行?单行上的Visual Studio XML汇总注释
/// <summary>
///
/// </summary>
我想这个短片断:
///<summary></summary>
我的总结往往是短暂的和额外的2号线是不必要的
目前,当我输入///
它提供了这个片段。
有没有这个或一些可自定义的代码/自定义插件的配置设置来解决这个问题。
在Visual Studio中,如何将默认的XML汇总注释片段从三行更改为一行?单行上的Visual Studio XML汇总注释
/// <summary>
///
/// </summary>
我想这个短片断:
///<summary></summary>
我的总结往往是短暂的和额外的2号线是不必要的
目前,当我输入///
它提供了这个片段。
有没有这个或一些可自定义的代码/自定义插件的配置设置来解决这个问题。
这是一个老问题,但我喜欢杰森威廉姆斯的建议,为此创建一个片段,所以我做到了。不是很复杂,但是复制和粘贴更容易:)
<?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几次。
只要它仍然是有效的xml,您可以手动设置注释的格式,但是您喜欢它。
最便宜的方法可能是禁用Visual Studio中的自动注释构建操作(工具>选项>文本编辑器> C#>为///生成XML文档注释),并使用代码段插入/// <summary></summary>
。
如果您希望默认格式为单行,并且/或者帮助保持格式整齐和可读,我的插件Atomineer Pro Documentation也可能是有趣的。其中很多选择是使用紧凑的1行格式来进行任何评论,这些评论足够短以适合单行。它是专门设计来做到这一点的,所以它可能会更好地满足您的需求。
最后的建议是,还有几个其他的插件(Resharper等)可以生成简单的样板文件xml doc-comments - 我相信这些插件中的一些可以配置为使用特定的文本片段。如果你已经有了这样一个插件,那么你可以通过稍微更高级的方式来调整你的需要的单行格式,这比上面提到的基本的Visual Studio调整可能更为先进。
这是一个有趣的插件,但这并不能解决我的问题。 – Eugene
它有一个选项(在第二个选项选项卡上),可以将简单注释限制为“简单”(单行)格式。为了达到此目的,您可能需要禁用作者/日期信息(可在选项的第一个选项卡中禁用)。然后这将生成一个单行注释,直到它需要跨越多行。 –
另一种方法是尝试关闭工具>选项TextEditor \ C#\ Advanced“为///生成XML文档注释”以禁用默认的Visual Studio处理(并关闭AtomineerUtils ///活键入帮助选项),然后为'///'添加一个代码片段,该代码片段只扩展为'///
我个人认为这应该是VS编辑器本身的一部分。我有created a ticket at user voice,你可以选择投票,如果你喜欢。
与此同时,片段的想法是一个很好的想法,但行为稍有不同。如果你想保持相同的行为,并且如果你愿意购买第三方附加组件,那么SubMain有一个名为“GhostDoc Pro”的产品,只需付出一点努力就可以为你做到这一点。 (请注意,他们有一个免费的非专业版“GhostDoc”,但我认为它不会起作用。)
如果你想走这条路线,下面是它的工作原理。
您需要编辑的T4模板,希望此采取有效的每个类型。
在顶部,修改
/// <summary>
///<# GenerateSummaryText(); #>
/// </summary>
是公正
/// <summary><# GenerateSummaryText(); #></summary>
GenerateSummaryText
,修改每个this.WriteLine
只是this.Write
在关闭选项页面之前,请进入“常规”(来自“规则”)并选中“文档时突出显示自动生成的摘要”。这会导致新插入的自动文本被选中,所以如果你不喜欢它,你可以开始输入。当然,如果您希望文本完全不会生成,那么您也可以这样做,但是您将不得不修改T4模板。具体来说,您需要有GenerateSummaryText
只使用一个单一的线,
this.Write(Context.ExecMacro("$(End)"));
这将对它不会产生任何文字,但会把光标2个<summary>
标记之间。
侧面说明:
如果任何人的方式来获得ReSharper的或其他附加工具来做到这一点知道,我会希望看到的是解决方案,以及 - 如果除了好奇之外没有别的原因。
但是当您在某个通话中指向某个鼠标时,MSVC不会突出显示此类文档 –
好的解决方案,尽管它具有缺点是不会自动创建其他XML文档字段,如参数和返回值等。 – RobinHood70