28

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

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

to this?:

/// <summary></summary>
1
  • 2
    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... Commented Jul 10, 2019 at 6:51

3 Answers 3

18

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>
Sign up to request clarification or add additional context in comments.

3 Comments

Clever! I'd still prefer to be able to use the standard /// shortcut, but this is far better than clearing up the linebreaks manually.
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.
This still works (VS2015). Changed xmlns 2005 to 2015. Also works in vb changing /// to ''' and "csharp" to "vb". Thanks
9

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

3 Comments

This is the correct location to answer the question as it was asked.
Then I wonder how it could be changed in VS2013, which no longer supports macros.
Cannot find this location in VisualStudio 2017. Do you now where I must look?
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.

3 Comments

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.
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!
How do you do this in VB? This question wants to know.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.