示例#1
0
 public CSharpSpellingAnalyzer(
     SpellingData spellingData,
     SpellingFixerOptions options)
 {
     _spellingData = spellingData;
     _options      = options;
 }
示例#2
0
        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));
 }