public TodoCommentIncrementalAnalyzer(Workspace workspace, TodoCommentIncrementalAnalyzerProvider owner, TodoCommentTokens todoCommentTokens) { _workspace = workspace; _owner = owner; _todoCommentTokens = todoCommentTokens; _state = new TodoCommentState(); }
private static async Task TestAsync(string codeWithMarker) { using (var workspace = await CSharpWorkspaceFactory.CreateWorkspaceFromLinesAsync(codeWithMarker)) { var commentTokens = new TodoCommentTokens(); var provider = new TodoCommentIncrementalAnalyzerProvider(commentTokens); var worker = (TodoCommentIncrementalAnalyzer)provider.CreateIncrementalAnalyzer(workspace); var document = workspace.Documents.First(); var documentId = document.Id; var reasons = new InvocationReasons(PredefinedInvocationReasons.DocumentAdded); await worker.AnalyzeSyntaxAsync(workspace.CurrentSolution.GetDocument(documentId), CancellationToken.None); var todoLists = worker.GetItems_TestingOnly(documentId); var expectedLists = document.SelectedSpans; Assert.Equal(todoLists.Length, expectedLists.Count); for (int i = 0; i < todoLists.Length; i++) { var todo = todoLists[i]; var span = expectedLists[i]; var line = document.InitialTextSnapshot.GetLineFromPosition(span.Start); var text = document.InitialTextSnapshot.GetText(span.ToSpan()); Assert.Equal(todo.MappedLine, line.LineNumber); Assert.Equal(todo.MappedColumn, span.Start - line.Start); Assert.Equal(todo.Message, text); } } }