Change default XML comment snippet in Visual Studio
Asked Answered
I

3

27

When I hit /// in Visual Studio, is it possible to change the resulting snippet from this:

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

to this?:

/// <summary></summary>
Indiscerptible answered 15/12, 2008 at 17:30 Comment(1)
Reading this question in 2019, it is misleading because since VS2015(?) /// does not simply print /// <summary></summary> but also template elements for each parameter, generic type, and return value. If you are looking for that kind of customization keep on searching...Ld
D
17

Here is the solution working in at least VS2010.

Save the bottom code as a file summ.snippet.
Visual Studio 2010 / Tools / Code Snippet Manager
Click import, browse to file. Save with default options.

Now goto your code window and type summ + tab + tab

Result

/// <summary>  </summary>

with the cursor in the middle of the tag, ready to type.

Here is the contents of the summ.snippet

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">

    <CodeSnippet Format="1.0.0">
        <Header>
                <Title>Summary - inline</Title>
                <Description>Created inline summary comment tag</Description>
                <Author>Mike Vanderkley</Author>
                <Shortcut>summ</Shortcut>
                <SnippetTypes>
                        <SnippetType>Expansion</SnippetType>
                </SnippetTypes>
        </Header>
        <Snippet>
            <Code Language="csharp">
                <![CDATA[/// <summary> $end$ </summary>]]>
            </Code>
    </Snippet>
  </CodeSnippet>

</CodeSnippets>
Declivitous answered 7/4, 2011 at 0:35 Comment(3)
Clever! I'd still prefer to be able to use the standard /// shortcut, but this is far better than clearing up the linebreaks manually.Indiscerptible
The summ keyword starts to work after a while and you will forget all about the ///. I noticed that some of the attributes were missing having pasted in stackexchange. The version showing is now the correct version. Recommend re-importing and overwriting the old version.Declivitous
This still works (VS2015). Changed xmlns 2005 to 2015. Also works in vb changing /// to ''' and "csharp" to "vb". ThanksMuoimuon
H
9

It appears to me that what the /// generates is coded in: Macros.Samples.Utilities.InsertDocComments

Hoe answered 9/9, 2011 at 20:33 Comment(3)
This is the correct location to answer the question as it was asked.Jasen
Then I wonder how it could be changed in VS2013, which no longer supports macros.Milly
Cannot find this location in VisualStudio 2017. Do you now where I must look?Diverticulitis
A
4

I know that it was possible for VB in VS 2005 and VS 2008. Last I had checked, though, there was not a way to do it for C#, sadly. That has been a pet peeve of mine for some time, now.

Arthur answered 15/12, 2008 at 17:33 Comment(3)
Sadly, it has become a habit of mine to just go in and change it when it is inserted. It is almost like I do it on autopilot now. Not sure if any third-party apps or add-ins address this or not.Arthur
Yeah, I've been doing it manually, and I don't want to run a 3rd party app or add-in just for this. Thanks!Indiscerptible
How do you do this in VB? This question wants to know.Bowser

© 2022 - 2024 — McMap. All rights reserved.