This helper class lets you implement IMessageSink with one or two delegates (a writer method, and an optional severity filter).
Inheritance: IMessageSink
Exemple #1
0
        private static MessageSinkFromDelegate ToMessageSink(IVsGeneratorProgress progressCallback)
        {
            var sink = new MessageSinkFromDelegate(
                (Symbol severity, object context, string message, object[] args) =>
            {
                if (MessageSink.GetSeverity(severity) >= MessageSink.GetSeverity(MessageSink.Warning))
                {
                    int line = 0, col = 0;
                    if (context is LNode)
                    {
                        var range = ((LNode)context).Range;
                        line      = range.Begin.Line;
                        col       = range.Begin.PosInLine;
                    }
                    progressCallback.GeneratorError(severity == MessageSink.Warning ? 1 : 0, 0u,
                                                    Localize.From(message, args), (uint)line - 1u, (uint)col);
                }
                else
                {
                    MessageSink.Console.Write(severity, context, message, args);
                }
            });

            return(sink);
        }
Exemple #2
0
		private static MessageSinkFromDelegate ToMessageSink(IVsGeneratorProgress progressCallback)
		{
			var sink = new MessageSinkFromDelegate(
				(Symbol severity, object context, string message, object[] args) =>
				{
					if (MessageSink.GetSeverity(severity) >= MessageSink.GetSeverity(MessageSink.Warning))
					{
						int line = 0, col = 0;
						if (context is LNode)
						{
							var range = ((LNode)context).Range;
							line = range.Begin.Line;
							col = range.Begin.PosInLine;
						}
						progressCallback.GeneratorError(severity == MessageSink.Warning ? 1 : 0, 0u,
							Localize.From(message, args), (uint)line - 1u, (uint)col);
					}
					else
						MessageSink.Console.Write(severity, context, message, args);
				});
			return sink;
		}