14

Visual Studioで、デフォルトのXMLサマリーコメントスニペットを3行から1行に変更するにはどうすればよいですか?

現在、次のように入力すると、このスニペットが提供されます///

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

この短いスニペットが欲しいです:

///<summary></summary>

私の要約はしばしば簡潔であり、余分な2行は不要です。

これまたはこれを修正するためのカスタマイズ可能なコード/カスタムアドオンの構成設定はありますか?

4

4 に答える 4

6

これは古い質問ですが、このためのスニペットを作成するという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キーを数回押します。

于 2013-08-22T17:46:28.367 に答える
3

個人的には、これはVSエディター自体の一部である必要があると思います。私はそれが過去に要求されたことを知っています。それまでの間、スニペットのアイデアは良いものですが、動作は少し異なります。同じ動作を維持したい場合で、サードパーティのアドオンを購入する場合は、SubMainに「GhostDocPro」という製品があり、少しの努力でこれを実行できます。(無料の非「プロ」バージョンの「GhostDoc」があることに注意してください。ただし、機能しないと思います。)

このルートに行きたい場合は、次のように機能します。

  1. GhostDoc Proをインストールした後、[ツール]メニューに移動します。上部には、新しいフライアウトサブメニュー「GhostDocPro」があります。

  2. [ツール]->[GhostDocPro]->[オプション]->[ルール]に移動します

  3. これを有効にする各タイプのT4テンプレートを編集する必要があります。

  4. ルールをクリックして、[編集]をクリックします

  5. 上部で、変更します

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

    ただあるために

       /// <summary><# GenerateSummaryText(); #></summary>
    
  6. メソッドGenerateSummaryTextで、それぞれを次のように変更this.WriteLineしますthis.Write

  7. [OK]をクリックして保存し、次のテンプレートに進みます。

  8. オプションページを閉じる前に、(「ルール」から)「一般」に移動し、「これを文書化するときに自動生成された要約を強調表示する」を確認します。これにより、新しく挿入された自動テキストがすぐに選択されるため、気に入らない場合は、入力を開始できます。もちろん、テキストをまったく生成しないようにしたい場合は、それも可能ですが、T4テンプレートをもう少し変更する必要があります。GenerateSummaryText具体的には、1行だけを使用する必要があります。

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

これにより、テキストは生成されませんが、2つの<summary>タグの間にカーソルが置かれます。


サイドノート:

ReSharperや他のアドオンツールを使ってこれを行う方法を誰かが知っているなら、好奇心以外の理由がなければ、その解決策も見てみたいと思います。

于 2016-02-11T00:07:27.747 に答える
2

有効なxmlである限り、コメントを好きなように手動でフォーマットできます。

最も安価なアプローチは、Visual Studioで自動コメント作成アクションを無効にし([ツール]>[オプション]>[テキストエディター]>[C#]> ///のXMLドキュメントコメントを生成する)、コードスニペットを使用してを挿入すること/// <summary></summary>です。

デフォルトのフォーマットを1行にしたい場合、および/またはフォーマットを整理して読みやすくしたい場合は、私のアドインで あるAtomineerProドキュメントも興味深いかもしれません。多くのオプションの中には、1行に収まるほど短いコメントにコンパクトな1行形式を使用するオプションがあります。これを行うように特別に設計されているため、ニーズに合わせて機能する可能性があります。

最後の提案は、単純な定型xmlドキュメントコメントを生成できる他のいくつかのアドイン(Resharperなど)があることです-これらのアドインのいくつかは、特定のテキストスニペットを使用するように構成できると思います。すでにそのようなアドインをお持ちの場合は、上記で提案した基本的なVisual Studioの調整よりも少し高度な方法で、必要な1行形式を提供するように調整できる可能性があります。

于 2011-12-04T16:46:13.983 に答える
1

私は今日これをやろうとしていました。自動的に発生するように変更する方法が見つからなかったため、後で検索と置換、正規表現を使用して変更できると考えました。この質問に対する良い答えではありませんが良い答えがあるようには見えず、すべての答えは回避策です。これは良い回避策です。

正規表現を使用したVS

探す:(/// <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

于 2021-12-02T21:15:51.280 に答える