Ejemplo n.º 1
0
        private static string GetGlyphCore(DefinitionSpan s, string filePath)
        {
            var glyph = s.Definition.Glyph;

            if (glyph != Glyph.Unknown)
            {
                return(glyph.GetGlyphNumber().ToString());
            }

            int result = 0;

            if (glyphs.TryGetValue(s.Definition.Kind, out result))
            {
                return(result.ToString());
            }

            if (!string.IsNullOrEmpty(filePath))
            {
                if (string.Equals(s.Definition.Kind, nameof(SymbolKinds.File), StringComparison.OrdinalIgnoreCase))
                {
                    return(GetFileNameGlyph(filePath));
                }
            }

            return("0");
        }
Ejemplo n.º 2
0
        private void ProcessDefinitionAndAddAdditionalReferenceSymbols(ISymbol symbol, DefinitionSpan symbolSpan, SyntaxToken token)
        {
            // Handle potentially virtual or interface member implementations
            if (symbol.Kind == SymbolKind.Method || symbol.Kind == SymbolKind.Property || symbol.Kind == SymbolKind.Event)
            {
                AddReferencesToOverriddenMembers(symbolSpan, symbol, relatedDefinition: symbolSpan.Definition.Id);

                AddReferencesToImplementedMembers(symbolSpan, symbol, symbolSpan.Definition.Id);
            }

            if (symbol.Kind == SymbolKind.Method)
            {
                IMethodSymbol methodSymbol = symbol as IMethodSymbol;
                if (methodSymbol != null)
                {
                    // Case: Constructor and Static Constructor
                    if (methodSymbol.MethodKind == MethodKind.Constructor || methodSymbol.MethodKind == MethodKind.StaticConstructor)
                    {
                        // Exclude constructors from default search
                        // Add a constructor reference with the containing type
                        symbolSpan.Definition.ExcludeFromDefaultSearch = true;
                        references.Add(symbolSpan.CreateReference(GetReferenceSymbol(methodSymbol.ContainingType, ReferenceKind.Constructor)));
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public static string GetGlyph(this DefinitionSpan s, string filePath = null)
 {
     return(GetGlyphCore(s, filePath) + ".png");
 }
Ejemplo n.º 4
0
 private static DefinitionSpan SetUid(this DefinitionSpan span, string uid)
 {
     span.Definition.Uid = uid;
     return(span);
 }
 public void AddDefinition(DefinitionSpan span)
 {
     BoundSourceFile.Definitions.Add(span);
 }
Ejemplo n.º 6
0
 public void Translate(ITextSnapshot textSnapshot)
 {
     DefinitionSpan = DefinitionSpan.Translated(textSnapshot);
 }