在 Visual Studio 中,如何将默认的 XML 摘要注释片段从三行更改为一行?
目前它在我输入时提供了这个片段///
:
/// <summary>
///
/// </summary>
我想要这个较短的片段:
///<summary></summary>
我的摘要通常很简短,多余的 2 行是不必要的。
是否有此配置设置或一些可自定义的代码/自定义插件来解决此问题。
在 Visual Studio 中,如何将默认的 XML 摘要注释片段从三行更改为一行?
目前它在我输入时提供了这个片段///
:
/// <summary>
///
/// </summary>
我想要这个较短的片段:
///<summary></summary>
我的摘要通常很简短,多余的 2 行是不必要的。
是否有此配置设置或一些可自定义的代码/自定义插件来解决此问题。
这是一个较老的问题,但我喜欢 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 几次。
就个人而言,我认为这应该是 VS 编辑器本身的一部分。我知道过去有人要求过。同时,片段的想法是一个不错的想法,但行为略有不同。如果您想保持相同的行为并且愿意购买第 3 方附加组件,那么 SubMain 有一个名为“GhostDoc Pro”的产品,只需稍加努力,它就会为您做到这一点。(请注意,他们有一个免费的非“专业版”版本“GhostDoc”,但我认为它不会起作用。)
如果你想走这条路,这就是它的工作原理。
安装 GhostDoc Pro 后,转到您的工具菜单。顶部将是一个新的弹出子菜单“GhostDoc Pro”。
转到工具 -> GhostDoc Pro -> 选项 -> 规则
您将需要为您希望它生效的每个类型编辑 T4 模板。
点击规则,然后点击“编辑”
在顶部,修改
/// <summary>
///<# GenerateSummaryText(); #>
/// </summary>
公正
/// <summary><# GenerateSummaryText(); #></summary>
在方法GenerateSummaryText
中,将每个修改this.WriteLine
为this.Write
点击确定保存,继续下一个模板。
在关闭选项页面之前,前往“General”(来自“Rules”)并检查“Highlight auto-generated summary when Document This”。这将导致新插入的自动文本被立即选择,因此如果您不喜欢它,您可以开始输入。当然,如果您更喜欢根本不生成文本,那么您也可以这样做,但您必须对 T4 模板进行更多修改。具体来说,您GenerateSummaryText
只需要使用一行,
this.Write(Context.ExecMacro("$(End)"));
这将使它不会生成任何文本,但会将光标放在 2 个<summary>
标签之间。
边注:
如果有人知道让 ReSharper 或其他附加工具执行此操作的方法,我也会有兴趣看到该解决方案——如果没有其他原因,只是出于好奇。
您可以根据自己的喜好手动设置注释格式,只要它仍然是有效的 xml。
最便宜的方法可能是禁用 Visual Studio 中的自动注释构建操作(工具 > 选项 > 文本编辑器 > C# > 为 /// 生成 XML 文档注释)并使用代码片段插入/// <summary></summary>
.
如果您希望默认格式为单行,和/或有助于保持格式整洁和可读,我的插件 Atomineer Pro 文档也可能会引起您的兴趣。在众多选项中,有一个选项是使用紧凑的 1 行格式来表示任何足够短以适合单行的注释。它是专门为此设计的,因此它可能会更好地满足您的需求。
最后的建议是,还有其他几个插件(Resharper 等)可以生成简单的样板 xml 文档注释 - 我相信其中一些插件可以配置为使用特定的文本片段。如果您已经有这样的插件,则可以调整您的插件以提供您需要的单行格式,以比上面建议的基本 Visual Studio 调整稍微高级的方式。
我今天试图这样做。我找不到将其更改为自动发生的方法,因此我想以后可以使用查找和替换以及正则表达式来做到这一点。这不是这个问题的好答案,但似乎没有一个好的答案,所有答案都是解决方法。这是一个很好的解决方法。
寻找:(/// <summary>)\r\n\s*///\s*(.*)\r\n\s*///\s*(</summary>)
代替:$1$2$3
寻找:(/// <summary>)\r\n\s*///\s*(.*)\r\n\s*///\s*(</summary>)
代替:\1\2\3