1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis;

namespace SourceBrowser.Generator.Extensions
{
    public static class SymbolExtensions
    {

        /// <summary>
        /// Returns the SymbolId for a symbol. SymbolId is very closely 
        /// related to DocumentationCommentId, with some minor changes.
        /// </summary>
        public static string GetSymbolId(this ISymbol symbol)
        {
            string documentationCommentId = String.Empty;
            symbol = symbol.OriginalDefinition;
            documentationCommentId = symbol.GetDocumentationCommentId();
            if (documentationCommentId == null)
            {
                return null;
            }
            documentationCommentId = documentationCommentId.Replace("#ctor", "ctor");

            return documentationCommentId;
        }
    }
}