Visual Studio XML 单行摘要注释

问题描述 投票:0回答:4

在 Visual Studio 中,如何将默认 XML 摘要注释片段从三行更改为一行?

目前,当我输入

///
时,它会提供此片段:

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

我想要这个较短的片段:

///<summary></summary>

我的总结通常很简短,多余的两行是不必要的。

是否有针对此问题的配置设置或某些可自定义代码/自定义插件来解决此问题。

visual-studio comments xml-documentation code-documentation
4个回答
8
投票

这是一个较旧的问题,但我喜欢 Jason Williams 为此创建一个片段的建议,所以我这样做了。 不是很复杂,但是复制粘贴更容易:)

<?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 版本)。

如果您不熟悉代码片段,要使用它,只需将光标放在方法/属性/等上方,开始输入

summary
,然后按 TAB 几次。


3
投票

我个人认为这应该是VS编辑器本身的一部分。我知道过去曾有人要求过。 与此同时,片段想法是一个很好的想法,但行为略有不同。 如果您想保持相同的行为并且愿意购买第 3 方附加组件,那么 SubMain 有一款名为“GhostDoc Pro”的产品,只需付出一点努力,即可为您做到这一点。 (请注意,他们有一个免费的非“专业”版本“GhostDoc”,但我认为它不会起作用。)

如果您想走这条路,请按照以下方式操作。

  1. 安装 GhostDoc Pro 后,转到“工具”菜单。顶部将是一个新的弹出子菜单“GhostDoc Pro”。

  2. 转到工具 -> GhostDoc Pro -> 选项 -> 规则

  3. 您需要编辑您希望其生效的每种类型的 T4 模板。

  4. 单击规则,然后点击“编辑”

  5. 在顶部修改

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

    公正

       /// <summary><# GenerateSummaryText(); #></summary>
    
  6. 在方法

    GenerateSummaryText
    中,将每个
    this.WriteLine
    修改为
    this.Write

  7. 点击“确定”保存,继续下一个模板。

  8. 在关闭选项页面之前,前往“常规”(来自“规则”)并选中“记录此内容时突出显示自动生成的摘要”。 这将导致立即选择新插入的自动文本,因此如果您不喜欢它,您可以开始输入。 当然,如果您希望根本不生成文本,那么您也可以这样做,但您将需要对 T4 模板进行更多修改。 具体来说,您需要

    GenerateSummaryText
    只需使用一行,

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

这不会生成任何文本,但会将光标放在 2 个

<summary>
标签之间。


边注:

如果有人知道如何使用 ReSharper 或其他附加工具来执行此操作,我也有兴趣查看该解决方案 - 如果只是出于好奇而没有其他原因。


2
投票

您可以手动设置注释的格式,只要您喜欢,只要它保持有效的 xml。

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

/// <summary></summary>

如果您希望默认格式为单行,和/或帮助保持格式整洁和可读,我的插件Atomineer Pro Documentation也可能感兴趣。在众多选项中,有一个选项是对足够短以适合单行的任何注释使用紧凑的 1 行格式。它是专门为此而设计的,因此它可能会更好地满足您的需求。

最后的建议是,还有其他几个插件(Resharper 等)可以生成简单的样板 xml 文档注释 - 我相信其中一些插件可以配置为使用特定的文本片段。如果您已经有这样的插件,则可以调整您的插件以提供您需要的单行格式,其方式比上面建议的基本 Visual Studio 调整稍微更高级。


2
投票

我今天正尝试这样做。我找不到一种方法来将其更改为自动发生,所以我想我可以随后使用查找、替换和正则表达式来完成此操作。这不是这个问题的一个很好的答案,但它似乎不是一个好的答案,并且所有答案都是解决方法。这是一个很好的解决办法。 与正则表达式对比

找到:

(/// <summary>)\r\n\s*///\s*(.*)\r\n\s*///\s*(</summary>)

替换:

$1$2$3

Notepad++ 与正则表达式

找到:

(/// <summary>)\r\n\s*///\s*(.*)\r\n\s*///\s*(</summary>)

替换:

\1\2\3

高级

这不仅仅是摘要。

找到:

/// <(summary|param|return|remarks)([^>]*)>\s*\r?\n\s*///(\s*(.*))\s*\r?\n\s*/// </(summary|param|return|remarks)>

替换:

/// <$1$2>$4</$1>
    

© www.soinside.com 2019 - 2024. All rights reserved.