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的或其他附加工具來做到這一點知道,我會希望看到的是解決方案,以及 - 如果除了好奇之外沒有別的原因。