12

在Visual Studio中,如何将默认的XML汇总注释片段从三行更改为一行?单行上的Visual Studio XML汇总注释

/// <summary> 
/// 
/// </summary> 

我想这个短片断:

///<summary></summary> 

我的总结往往是短暂的和额外的2号线是不必要的

目前,当我输入///它提供了这个片段。

有没有这个或一些可自定义的代码/自定义插件的配置设置来解决这个问题。

回答

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几次。

+0

但是当您在某个通话中指向某个鼠标时,MSVC不会突出显示此类文档 –

+0

好的解决方案,尽管它具有缺点是不会自动创建其他XML文档字段,如参数和返回值等。 – RobinHood70

3

只要它仍然是有效的xml,您可以手动设置注释的格式,但是您喜欢它。

最便宜的方法可能是禁用Visual Studio中的自动注释构建操作(工具>选项>文本编辑器> C#>为///生成XML文档注释),并使用代码段插入/// <summary></summary>

如果您希望默认格式为单行,并且/或者帮助保持格式整齐和可读,我的插件Atomineer Pro Documentation也可能是有趣的。其中很多选择是使用紧凑的1行格式来进行任何评论,这些评论足够短以适合单行。它是专门设计来做到这一点的,所以它可能会更好地满足您的需求。

最后的建议是,还有几个其他的插件(Resharper等)可以生成简单的样板文件xml doc-comments - 我相信这些插件中的一些可以配置为使用特定的文本片段。如果你已经有了这样一个插件,那么你可以通过稍微更高级的方式来调整你的需要的单行格式,这比上面提到的基本的Visual Studio调整可能更为先进。

+0

这是一个有趣的插件,但这并不能解决我的问题。 – Eugene

+0

它有一个选项(在第二个选项选项卡上),可以将简单注释限制为“简单”(单行)格式。为了达到此目的,您可能需要禁用作者/日期信息(可在选项的第一个选项卡中禁用)。然后这将生成一个单行注释,直到它需要跨越多行。 –

+1

另一种方法是尝试关闭工具>选项TextEditor \ C#\ Advanced“为///生成XML文档注释”以禁用默认的Visual Studio处理(并关闭AtomineerUtils ///活键入帮助选项),然后为'///'添加一个代码片段,该代码片段只扩展为'///

' –

2

我个人认为这应该是VS编辑器本身的一部分。我有created a ticket at user voice,你可以选择投票,如果你喜欢。

与此同时,片段的想法是一个很好的想法,但行为稍有不同。如果你想保持相同的行为,并且如果你愿意购买第三方附加组件,那么SubMain有一个名为“GhostDoc Pro”的产品,只需付出一点努力就可以为你做到这一点。 (请注意,他们有一个免费的非专业版“GhostDoc”,但我认为它不会起作用。)

如果你想走这条路线,下面是它的工作原理。

  1. 安装GhostDoc Pro后,进入您的工具菜单。顶部将是一个新的弹出式子菜单,“GhostDoc Pro”。
  2. 进入工具 - > GhostDoc临 - >选项 - >规则
  3. 您需要编辑的T4模板,希望此采取有效的每个类型。

    1. 点击规则,然后点击 “编辑”
    2. 在顶部,修改

      /// <summary> 
      ///<# GenerateSummaryText(); #> 
      /// </summary> 
      

      是公正

      /// <summary><# GenerateSummaryText(); #></summary> 
      
    3. 在该方法中GenerateSummaryText,修改每个this.WriteLine只是this.Write
    4. 点击确定保存,转到下一个模板。
  4. 在关闭选项页面之前,请进入“常规”(来自“规则”)并选中“文档时突出显示自动生成的摘要”。这会导致新插入的自动文本被选中,所以如果你不喜欢它,你可以开始输入。当然,如果您希望文本完全不会生成,那么您也可以这样做,但是您将不得不修改T4模板。具体来说,您需要有GenerateSummaryText只使用一个单一的线,

    this.Write(Context.ExecMacro("$(End)")); 
    

    这将对它不会产生任何文字,但会把光标2个<summary>标记之间。


侧面说明:

如果任何人的方式来获得ReSharper的或其他附加工具来做到这一点知道,我会希望看到的是解决方案,以及 - 如果除了好奇之外没有别的原因。