public static async Task <ImmutableArray <ISymbol> > GetRecommendedSymbolsAtPositionAsync( Document document, int position, OptionSet?options = null, CancellationToken cancellationToken = default) { var solution = document.Project.Solution; var semanticModel = await document.GetRequiredSemanticModelAsync(cancellationToken).ConfigureAwait(false); options ??= solution.Options; var context = document.GetRequiredLanguageService <ISyntaxContextService>().CreateContext(document, semanticModel, position, cancellationToken); var languageRecommender = document.GetRequiredLanguageService <IRecommendationService>(); return(languageRecommender.GetRecommendedSymbolsInContext(context, RecommendationServiceOptions.From(options, document.Project.Language), cancellationToken).NamedSymbols); }
public static IEnumerable <ISymbol> GetRecommendedSymbolsAtPosition( SemanticModel semanticModel, int position, Workspace workspace, OptionSet?options = null, CancellationToken cancellationToken = default) { var solution = workspace.CurrentSolution; options ??= solution.Options; var document = solution.GetRequiredDocument(semanticModel.SyntaxTree); var context = document.GetRequiredLanguageService <ISyntaxContextService>().CreateContext(document, semanticModel, position, cancellationToken); var languageRecommender = document.GetRequiredLanguageService <IRecommendationService>(); return(languageRecommender.GetRecommendedSymbolsInContext(context, RecommendationServiceOptions.From(options, document.Project.Language), cancellationToken).NamedSymbols); }