public CSharpSpellingAnalyzer( SpellingData spellingData, SpellingFixerOptions options) { _spellingData = spellingData; _options = options; }
public static void WriteSpellingDiagnostic( SpellingDiagnostic diagnostic, SpellingFixerOptions options, SourceText sourceText, string baseDirectoryPath, string indentation, Verbosity verbosity) { WriteDiagnostic(diagnostic.Diagnostic, baseDirectoryPath, default(IFormatProvider), indentation, verbosity); TextSpan span = diagnostic.Span; TextLineCollection lines = sourceText.Lines; int lineIndex = lines.IndexOf(span.Start); TextLine line = lines[lineIndex]; int start = Math.Max(0, lineIndex - options.CodeContext); for (int i = start; i < lineIndex; i++) { WriteTextLine(i); } int index = span.Start - line.Span.Start; string text = line.ToString(); Write(indentation, verbosity); Write(text.Substring(0, index), ConsoleColor.DarkGray, verbosity); Write(diagnostic.Value, ConsoleColor.Cyan, verbosity); WriteLine(text.Substring(index + diagnostic.Length), ConsoleColor.DarkGray, verbosity); int max = Math.Min(lines.Count - 1, lineIndex + options.CodeContext); for (int i = lineIndex + 1; i <= max; i++) { WriteTextLine(i); } void WriteTextLine(int i) { Write(indentation, verbosity); WriteLine(lines[i].ToString(), ConsoleColor.DarkGray, verbosity); } }
public override ImmutableArray <Diagnostic> AnalyzeSpelling( SyntaxNode node, SpellingData spellingData, SpellingFixerOptions options, CancellationToken cancellationToken = default) { var diagnostics = new List <Diagnostic>(); var analysisContext = new SpellingAnalysisContext( diagnostic => diagnostics.Add(diagnostic), spellingData, options, cancellationToken); CSharpSpellingWalker walker = CSharpSpellingWalker.Create(analysisContext); walker.Visit(node); return(diagnostics.ToImmutableArray()); }
public override DiagnosticAnalyzer CreateAnalyzer( SpellingData spellingData, SpellingFixerOptions options) { return(new CSharpSpellingAnalyzer(spellingData, options)); }