private async Task <IReadOnlyList <CompletionItem> > GetCompletionItems(string testCode) { var index = testCode.IndexOf("$$"); testCode = testCode.Remove(index, 2); var workspace = new TestWorkspace(); var document = workspace.OpenDocument( DocumentId.CreateNewId(), SourceText.From(testCode), LanguageNames.Hlsl); var completionProvider = new SymbolCompletionProvider(); var completionContext = new CompletionContext( completionProvider, document.LogicalDocuments[0], index, new TextSpan(), new CompletionTrigger(CompletionTriggerKind.Invoke), await document.GetOptionsAsync(), CancellationToken.None); await completionProvider.ProvideCompletionsAsync(completionContext); return(completionContext.Items); }
protected static CompletionModel GetCompletionModel(string query) { int position; var compilation = CompilationFactory.CreateQuery(query, out position); var semanticModel = compilation.GetSemanticModel(); var provider = new SymbolCompletionProvider(); var providers = new[] { provider }; return(semanticModel.GetCompletionModel(position, providers)); }