示例#1
0
        static void printDiagnostics(SourceText line, Diagnostic diagnostic, int lineIndex, int character)
        {
            Console.WriteLine();

            var lineInfo   = line.Lines[lineIndex];
            var prefixSpan = TextSpan.FromBound(lineInfo.Start, diagnostic.Span.Start);
            var suffixSpan = TextSpan.FromBound(diagnostic.Span.End, lineInfo.End);

            var prefix = line.ToString(prefixSpan);
            var error  = line.ToString(diagnostic.Span);
            var suffix = line.ToString(suffixSpan);

            Console.ForegroundColor = ConsoleColor.DarkCyan;
            Console.Write($"\t{prefix}");
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.Write(error);
            Console.ForegroundColor = ConsoleColor.DarkCyan;
            Console.WriteLine(suffix);
            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.Write($"[{lineIndex+1} {character}] : ");
            Console.WriteLine(diagnostic);
        }