Esempio n. 1
0
        /// <summary>
        /// Writes error or warning to console, with corresponding line and
        /// suggestions if available
        /// </summary>
        /// <param name="log">Console</param>
        /// <param name="item">Error log item</param>
        public static void WriteError(this ConsoleLog log,
                                      LogItem item)
        {
            var builder = new StringBuilder("     ");

            for (var i = 0; i < item.Start.Col - 1; i++)
            {
                if (item.Line[i] == '\t')
                {
                    builder.Append('\t');
                }
                else
                {
                    builder.Append(' ');
                }
            }
            builder.Append('^');

            log.NewLine()
            .LogLine(item.Level, item.Message)
            .NewLine()
            .Info(string.Format("{0,4}| ", item.Start.Ln))
            .InfoLine(item.Line)
            .LogLine(item.Level, builder.ToString())
            .NewLine();

            if (item.Suggestions != null)
            {
                log.NormalLine(item.Suggestions)
                .NewLine();
            }
        }
Esempio n. 2
0
        public void LogMessage(Importance importance, string message)
        {
            switch (importance)
            {
            case Importance.High:
                log.HighLine(message);
                break;

            case Importance.Normal:
                log.NormalLine(message);
                break;

            case Importance.Low:
                log.LowLine(message);
                break;
            }
        }