Exemple #1
0
            private async Task ReportSymbolInformationAsync(
                INavigateToSearchResult result,
                CancellationToken cancellationToken
                )
            {
                var location = await ProtocolConversions
                               .TextSpanToLocationAsync(
                    result.NavigableItem.Document,
                    result.NavigableItem.SourceSpan,
                    cancellationToken
                    )
                               .ConfigureAwait(false);

                Contract.ThrowIfNull(location);
                _progress.Report(
                    new VSSymbolInformation
                {
                    Name          = result.Name,
                    ContainerName = result.AdditionalInformation,
                    Kind          = ProtocolConversions.NavigateToKindToSymbolKind(result.Kind),
                    Location      = location,
                    Icon          = new ImageElement(result.NavigableItem.Glyph.GetImageId())
                }
                    );
            }
Exemple #2
0
 public Task AddItemAsync(
     Project project,
     INavigateToSearchResult result,
     CancellationToken cancellationToken
     )
 {
     return(ReportSymbolInformationAsync(result, cancellationToken));
 }
 static async Task <SymbolInformation> CreateSymbolInformation(INavigateToSearchResult result, CancellationToken cancellationToken)
 {
     return(new SymbolInformation
     {
         Name = result.Name,
         Kind = ProtocolConversions.NavigateToKindToSymbolKind(result.Kind),
         Location = await ProtocolConversions.TextSpanToLocationAsync(result.NavigableItem.Document, result.NavigableItem.SourceSpan, cancellationToken).ConfigureAwait(false),
     });
 }
 public Task AddItemAsync(
     Project project,
     INavigateToSearchResult result,
     CancellationToken cancellationToken
     )
 {
     ReportMatchResult(project, result);
     return(Task.CompletedTask);
 }
Exemple #5
0
            public async Task AddItemAsync(Project project, INavigateToSearchResult result, CancellationToken cancellationToken)
            {
                var node = await _graphBuilder.CreateNodeAsync(result, cancellationToken).ConfigureAwait(false);

                if (node != null)
                {
                    // _context.OutputNodes is not threadsafe.  So ensure only one navto callback can mutate it at a time.
                    lock (this)
                        _context.OutputNodes.Add(node);
                }
            }
 public NavigateToItemDisplay(
     IThreadingContext threadingContext,
     IUIThreadOperationExecutor threadOperationExecutor,
     IAsynchronousOperationListener asyncListener,
     INavigateToSearchResult searchResult)
 {
     _threadingContext        = threadingContext;
     _threadOperationExecutor = threadOperationExecutor;
     _asyncListener           = asyncListener;
     _searchResult            = searchResult;
 }
Exemple #7
0
 static bool IsMember(INavigateToSearchResult result)
 {
     switch (result.Kind)
     {
     case NavigateToItemKind.Constant:
     case NavigateToItemKind.Event:
     case NavigateToItemKind.Field:
     case NavigateToItemKind.Method:
     case NavigateToItemKind.Property:
         return(true);
     }
     return(false);
 }
Exemple #8
0
 static bool IsType(INavigateToSearchResult result)
 {
     switch (result.Kind)
     {
     case NavigateToItemKind.Class:
     case NavigateToItemKind.Delegate:
     case NavigateToItemKind.Enum:
     case NavigateToItemKind.Structure:
     case NavigateToItemKind.Interface:
         return(true);
     }
     return(false);
 }
Exemple #9
0
 internal static SerializableNavigateToSearchResult Dehydrate(INavigateToSearchResult result)
 {
     return new SerializableNavigateToSearchResult
     {
         AdditionalInformation = result.AdditionalInformation,
         Kind = result.Kind,
         MatchKind = result.MatchKind,
         IsCaseSensitive = result.IsCaseSensitive,
         Name = result.Name,
         SecondarySort = result.SecondarySort,
         Summary = result.Summary,
         NavigableItem = SerializableNavigableItem.Dehydrate(result.NavigableItem)
     };
 }
 internal static SerializableNavigateToSearchResult Dehydrate(INavigateToSearchResult result)
 {
     return(new SerializableNavigateToSearchResult
     {
         AdditionalInformation = result.AdditionalInformation,
         Kind = result.Kind,
         MatchKind = result.MatchKind,
         IsCaseSensitive = result.IsCaseSensitive,
         Name = result.Name,
         SecondarySort = result.SecondarySort,
         Summary = result.Summary,
         NavigableItem = SerializableNavigableItem.Dehydrate(result.NavigableItem)
     });
 }
Exemple #11
0
            private void ReportMatchResult(Project project, INavigateToSearchResult result)
            {
                var navigateToItem = new NavigateToItem(
                    result.Name,
                    result.Kind,
                    GetNavigateToLanguage(project.Language),
                    result.SecondarySort,
                    result,
                    GetMatchKind(result.MatchKind),
                    result.IsCaseSensitive,
                    _displayFactory);

                _callback.AddItem(navigateToItem);
            }
Exemple #12
0
            private void ReportMatchResult(Project project, INavigateToSearchResult result)
            {
                var matchedSpans = result.NameMatchSpans.SelectAsArray(t => t.ToSpan());

                var patternMatch = new PatternMatch(GetPatternMatchKind(result.MatchKind),
                                                    punctuationStripped: true, result.IsCaseSensitive, matchedSpans);

                var navigateToItem = new NavigateToItem(
                    result.Name,
                    result.Kind,
                    GetNavigateToLanguage(project.Language),
                    result.SecondarySort,
                    result,
                    patternMatch,
                    _displayFactory);

                _callback.AddItem(navigateToItem);
            }
Exemple #13
0
        static bool MatchesTag(string tag, INavigateToSearchResult result)
        {
            if (string.IsNullOrWhiteSpace(tag))
            {
                return(true);
            }

            switch (tag)
            {
            case "type":
            case "t":
                return(IsType(result));

            case "class":
                return(result.Kind == NavigateToItemKind.Class);

            case "struct":
                return(result.Kind == NavigateToItemKind.Structure);

            case "interface":
                return(result.Kind == NavigateToItemKind.Interface);

            case "delegate":
                return(result.Kind == NavigateToItemKind.Delegate);

            case "member":
            case "m":
                return(IsMember(result));

            case "method":
                return(result.Kind == NavigateToItemKind.Method);

            case "property":
                return(result.Kind == NavigateToItemKind.Property);

            case "field":
                return(result.Kind == NavigateToItemKind.Field || result.Kind == NavigateToItemKind.Constant);

            case "event":
                return(result.Kind == NavigateToItemKind.Event);
            }

            return(false);
        }
            public async Task AddItemAsync(Project project, INavigateToSearchResult result, CancellationToken cancellationToken)
            {
                var location = await ProtocolConversions.TextSpanToLocationAsync(
                    result.NavigableItem.Document, result.NavigableItem.SourceSpan, result.NavigableItem.IsStale, _context, cancellationToken).ConfigureAwait(false);

                if (location == null)
                {
                    return;
                }

                _progress.Report(new VSSymbolInformation
                {
                    Name          = result.Name,
                    ContainerName = result.AdditionalInformation,
                    Kind          = ProtocolConversions.NavigateToKindToSymbolKind(result.Kind),
                    Location      = location,
                    Icon          = VSLspExtensionConversions.GetImageIdFromGlyph(result.NavigableItem.Glyph)
                });
            }
Exemple #15
0
        internal static string GetDisplayStringForNavigableItem(this INavigateToSearchResult item, string loc)
        {
            switch (item.Kind)
            {
            case NavigateToItemKind.Class:
                return(GettextCatalog.GetString("class ({0})", loc));

            case NavigateToItemKind.Delegate:
                return(GettextCatalog.GetString("delegate ({0})", loc));

            case NavigateToItemKind.Enum:
                return(GettextCatalog.GetString("enumeration ({0})", loc));

            case NavigateToItemKind.Event:
                return(GettextCatalog.GetString("event ({0})", loc));


            case NavigateToItemKind.Constant:
            case NavigateToItemKind.Field:
                return(GettextCatalog.GetString("field ({0})", loc));

            case NavigateToItemKind.EnumItem:
                return(GettextCatalog.GetString("enum member ({0})", loc));

            case NavigateToItemKind.Interface:
                return(GettextCatalog.GetString("interface ({0})", loc));

            case NavigateToItemKind.Method:
            case NavigateToItemKind.Module:
                return(GettextCatalog.GetString("method ({0})", loc));

            case NavigateToItemKind.Property:
                return(GettextCatalog.GetString("property ({0})", loc));

            case NavigateToItemKind.Structure:
                return(GettextCatalog.GetString("struct ({0})", loc));

            default:
                return(GettextCatalog.GetString("symbol ({0})", loc));
            }
        }
Exemple #16
0
        internal static IconId GetStockIconForNavigableItem(this INavigateToSearchResult item)
        {
            switch (item.Kind)
            {
            case NavigateToItemKind.Class:
                return(Class);

            case NavigateToItemKind.Delegate:
                return(Delegate);

            case NavigateToItemKind.Event:
                return(Event);

            case NavigateToItemKind.Enum:
                return(Enum);

            case NavigateToItemKind.Constant:
            case NavigateToItemKind.Field:
            case NavigateToItemKind.EnumItem:
                return(Field);

            case NavigateToItemKind.Interface:
                return(Interface);

            case NavigateToItemKind.Method:
            case NavigateToItemKind.Module:
                return(Method);

            case NavigateToItemKind.Property:
                return(Property);

            case NavigateToItemKind.Structure:
                return(Struct);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Exemple #17
0
		internal static IconId GetStockIconForNavigableItem (this INavigateToSearchResult item)
		{
			switch (item.Kind) {
			case NavigateToItemKind.Class:
				return Class;

			case NavigateToItemKind.Delegate:
				return Delegate;

			case NavigateToItemKind.Event:
				return Event;

			case NavigateToItemKind.Enum:
				return Enum;

			case NavigateToItemKind.Constant:
			case NavigateToItemKind.Field:
			case NavigateToItemKind.EnumItem:
				return Field;

			case NavigateToItemKind.Interface:
				return Interface;

			case NavigateToItemKind.Method:
			case NavigateToItemKind.Module:
				return Method;

			case NavigateToItemKind.Property:
				return Property;

			case NavigateToItemKind.Structure:
				return Struct;
			default:
				throw new ArgumentOutOfRangeException ();
			}
		}
 public DeclaredSymbolInfoResult(string match, string matchedString, int rank, INavigateToSearchResult result) : base(match, matchedString, rank)
 {
     this.result = result;
 }
 public Dev15NavigateToItemDisplay(INavigateToSearchResult searchResult)
     : base(searchResult)
 {
 }
 public NavigateToItemDisplay(INavigateToSearchResult searchResult, NavigateToIconFactory iconFactory)
 {
     _searchResult = searchResult;
     _iconFactory  = iconFactory;
 }
                static async Task ReportSymbolInformation(IProgress <SymbolInformation> progress, INavigateToSearchResult result, CancellationToken cancellationToken)
                {
                    var location = await ProtocolConversions.TextSpanToLocationAsync(result.NavigableItem.Document, result.NavigableItem.SourceSpan, cancellationToken).ConfigureAwait(false);

                    Contract.ThrowIfNull(location);
                    progress.Report(new SymbolInformation
                    {
                        Name     = result.Name,
                        Kind     = ProtocolConversions.NavigateToKindToSymbolKind(result.Kind),
                        Location = location,
                    });
                }
Exemple #22
0
 internal static SerializableNavigateToSearchResult Dehydrate(INavigateToSearchResult result)
 => new(result.AdditionalInformation,
 protected AbstractNavigateToItemDisplay(INavigateToSearchResult searchResult)
 {
     SearchResult = searchResult;
 }
Exemple #24
0
 public NavigateToItemDisplay(IThreadingContext threadingContext, INavigateToSearchResult searchResult)
 {
     _threadingContext = threadingContext;
     _searchResult     = searchResult;
 }
Exemple #25
0
 protected AbstractNavigateToItemDisplay(INavigateToSearchResult searchResult)
 {
     SearchResult = searchResult;
 }
 public NavigateToItemDisplay(INavigateToSearchResult searchResult, NavigateToIconFactory iconFactory)
 {
     _searchResult = searchResult;
     _iconFactory = iconFactory;
 }
 public Dev14NavigateToItemDisplay(INavigateToSearchResult searchResult, NavigateToIconFactory iconFactory)
     : base(searchResult)
 {
     _iconFactory = iconFactory;
 }
Exemple #28
0
 public Dev14NavigateToItemDisplay(INavigateToSearchResult searchResult, NavigateToIconFactory iconFactory)
     : base(searchResult)
 {
     _iconFactory = iconFactory;
 }
Exemple #29
0
 public NavigateToItemDisplay(INavigateToSearchResult searchResult)
 => _searchResult = searchResult;
 private void ReportMatchResult(Project project, INavigateToSearchResult result)
 {
     var navigateToItem = new NavigateToItem(
         result.Name,
         result.Kind,
         GetNavigateToLanguage(project.Language),
         result.SecondarySort,
         result,
         result.MatchKind,
         result.IsCaseSensitive,
         _displayFactory);
     _callback.AddItem(navigateToItem);
 }
 public Dev15NavigateToItemDisplay(INavigateToSearchResult searchResult) 
     : base(searchResult)
 {
 }