在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