protected override Task <TestWorkspace> CreateWorkspaceFromFileAsync(string code, ParseOptions options) { return(CSharpWorkspaceFactory.CreateWorkspaceFromFileAsync(code, (CSharpParseOptions)options)); }
public async Task GenerateBaseline() { Console.WriteLine(typeof(FactAttribute)); var text = Resources.ProximityExpressionsGetterTestFile; using (var workspace = await CSharpWorkspaceFactory.CreateWorkspaceFromLinesAsync(text)) { var languageDebugInfo = new CSharpLanguageDebugInfoService(); var hostdoc = workspace.Documents.First(); var snapshot = hostdoc.TextBuffer.CurrentSnapshot; var document = workspace.CurrentSolution.GetDocument(hostdoc.Id); var builder = new StringBuilder(); var statements = (await document.GetSyntaxRootAsync(CancellationToken.None)).DescendantTokens().Select(t => t.GetAncestor <StatementSyntax>()).Distinct().WhereNotNull(); // Try to get proximity expressions at every token position and the start of every // line. var index = 0; foreach (var statement in statements) { builder.AppendLine("[WpfFact, Trait(Traits.Feature, Traits.Features.DebuggingProximityExpressions)]"); builder.AppendLine("public void TestAtStartOfStatement_" + index + "()"); builder.AppendLine("{"); var token = statement.GetFirstToken(); var line = snapshot.GetLineFromPosition(token.SpanStart); builder.AppendLine(" //// Line " + (line.LineNumber + 1)); builder.AppendLine(); if (line.LineNumber > 0) { builder.AppendLine(" //// " + snapshot.GetLineFromLineNumber(line.LineNumber - 1).GetText()); } builder.AppendLine(" //// " + line.GetText()); var charIndex = token.SpanStart - line.Start; builder.AppendLine(" //// " + new string(' ', charIndex) + "^"); builder.AppendLine(" var tree = GetTree(\"ProximityExpressionsGetterTestFile.cs\");"); builder.AppendLine(" var terms = CSharpProximityExpressionsService.Do(tree, " + token.SpanStart + ");"); var proximityExpressionsGetter = new CSharpProximityExpressionsService(); var terms = await proximityExpressionsGetter.GetProximityExpressionsAsync(document, token.SpanStart, CancellationToken.None); if (terms == null) { builder.AppendLine(" Assert.Null(terms);"); } else { builder.AppendLine(" Assert.NotNull(terms);"); var termsString = terms.Select(t => "\"" + t + "\"").Join(", "); builder.AppendLine(" AssertEx.Equal(new[] { " + termsString + " }, terms);"); } builder.AppendLine("}"); builder.AppendLine(); index++; } var str = builder.ToString(); Console.WriteLine(str); } }
protected override TestWorkspace CreateWorkspace(string markup) { return(CSharpWorkspaceFactory.CreateWorkspaceFromFile(markup)); }
protected override TestWorkspace CreateTestWorkspace(string initialMarkup) { return(CSharpWorkspaceFactory.CreateWorkspaceFromLines(initialMarkup)); }
protected CSharpCodeFixVerifier(CSharpWorkspaceFactory workspaceFactory) : base(workspaceFactory) { }