Visual Studio XML summary comment on single line

前端 未结 3 2012
-上瘾入骨i
-上瘾入骨i 2021-01-11 11:24

In Visual Studio, how do I change the default XML summary comment snippet from three lines to one line?

Currently it provides this snippet when I type ///

3条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-11 11:32

    Personally, I think this should be part of the VS editor itself. I know it's been requested in the past. In the meantime, the snippet idea is a good one, but the behavior is slightly different. If you want to keep the same behavior and if you are willing to purchase a 3rd party add-on, then SubMain has a product called "GhostDoc Pro" that, with a little bit of effort, will do this for you. (Note that they have a free, non-"pro" version, "GhostDoc", but I don't think it will work.)

    If you want to go this route, here's how it works.

    1. After installing GhostDoc Pro, go to your Tools menu. At the top will be a new fly-out submenu, "GhostDoc Pro".

    2. Go to Tools -> GhostDoc Pro -> Options -> Rules

    3. You will need to edit the T4 template for EACH type that you want this to take effect on.

    4. Click on the rule and then hit "Edit"

    5. At the top, modify

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

      to be just

         /// <# GenerateSummaryText(); #>
      
    6. In the method GenerateSummaryText, modify each this.WriteLine to be just this.Write

    7. Hit OK to save, move on to the next template.

    8. Before closing the options page, head up to "General" (from "Rules") and check the "Highlight auto-generated summary when Document This". This will cause the newly inserted auto-text to be selected off the bat so if you don't like it, you can just start typing. Of course, if you prefer to have the text just not generated at all, then you can do that, too, but you will have to modify the T4 templates a bit more. Specifically, you'll need to have GenerateSummaryText just use a single line,

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

    This will have it not generate any text, but will put the cursor between the 2

    tags.


    Side Note:

    If anyone knows of a way to get ReSharper or other add-on tools to do this, I'd be interested in seeing that solution as well--if for no other reason than just curiosity.

提交回复
热议问题