Example #1
0
        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);
        }
Example #2
0
        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);
        }