diff --git a/src/EditorFeatures/Core/Extensibility/Navigation/INavigableItem.cs b/src/EditorFeatures/Core/Extensibility/Navigation/INavigableItem.cs index 7e7f27bbc033f549097b548eb09644d589343257..de75048991937eb83d8989afcebcb3a129a9caaf 100644 --- a/src/EditorFeatures/Core/Extensibility/Navigation/INavigableItem.cs +++ b/src/EditorFeatures/Core/Extensibility/Navigation/INavigableItem.cs @@ -19,9 +19,17 @@ internal interface INavigableItem /// bool DisplayFileLocation { get; } + /// + /// his is intended for symbols that are ordinary symbols in the language sense, and may be + /// used by code, but that are simply declared implicitly rather than with explicit language + /// syntax. For example, a default synthesized constructor in C# when the class contains no + /// explicit constructors. + /// + bool IsImplicitlyDeclared { get; } + Document Document { get; } TextSpan SourceSpan { get; } ImmutableArray ChildItems { get; } } -} +} \ No newline at end of file diff --git a/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.DeclaredSymbolNavigableItem.cs b/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.DeclaredSymbolNavigableItem.cs index 7723f441f6fe99268a9a15239992d2835f062dd4..e3ca2dfd64ffbffe1ec7482104369442fc605007 100644 --- a/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.DeclaredSymbolNavigableItem.cs +++ b/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.DeclaredSymbolNavigableItem.cs @@ -28,6 +28,12 @@ internal class DeclaredSymbolNavigableItem : INavigableItem private readonly Lazy _lazyDisplayString; private readonly Lazy _lazySymbol; + /// + /// DeclaredSymbolInfos always come from some actual declaration in source. So they're + /// never implicitly declared. + /// + public bool IsImplicitlyDeclared => false; + public DeclaredSymbolNavigableItem(Document document, DeclaredSymbolInfo declaredSymbolInfo) { Document = document; diff --git a/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.SymbolLocationNavigableItem.cs b/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.SymbolLocationNavigableItem.cs index 68d162c418ac0f913e67a0895f68434a78113858..9e79d50fd2cefe9db121570404e3c6f200a11d1e 100644 --- a/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.SymbolLocationNavigableItem.cs +++ b/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.SymbolLocationNavigableItem.cs @@ -31,13 +31,9 @@ private class SymbolLocationNavigableItem : INavigableItem public string DisplayString => _displayString; - public Glyph Glyph - { - get - { - return _symbol.GetGlyph(); - } - } + public Glyph Glyph => _symbol.GetGlyph(); + + public bool IsImplicitlyDeclared => _symbol.IsImplicitlyDeclared; public Document Document { @@ -47,13 +43,7 @@ public Document Document } } - public TextSpan SourceSpan - { - get - { - return _location.SourceSpan; - } - } + public TextSpan SourceSpan => _location.SourceSpan; public ImmutableArray ChildItems => ImmutableArray.Empty; }