summaryrefslogtreecommitdiff
path: root/giscanner/message.py
diff options
context:
space:
mode:
authorDieter Verfaillie <dieterv@optionexplicit.be>2015-03-11 21:59:04 +0100
committerDieter Verfaillie <dieterv@optionexplicit.be>2015-06-24 22:16:31 +0200
commit537d3431d7cc198d890a6bae9949273996b04daa (patch)
treeab15077b52a085057d85940079ffecf8f4116468 /giscanner/message.py
parent68ce6d2e48365560921dd751b9bc6a3803b0c37d (diff)
downloadgobject-introspection-537d3431d7cc198d890a6bae9949273996b04daa.tar.gz
scanner: centralize caret error message handling
Not doing this manually all over the place makes the code slightly more readable. https://bugzilla.gnome.org/show_bug.cgi?id=689454
Diffstat (limited to 'giscanner/message.py')
-rw-r--r--giscanner/message.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/giscanner/message.py b/giscanner/message.py
index 1a0a6c52..34f23f94 100644
--- a/giscanner/message.py
+++ b/giscanner/message.py
@@ -94,7 +94,7 @@ class MessageLogger(object):
def get_error_count(self):
return self._error_count
- def log(self, log_type, text, positions=None, prefix=None):
+ def log(self, log_type, text, positions=None, prefix=None, marker_pos=None, marker_line=None):
"""
Log a warning, using optional file positioning information.
If the warning is related to a ast.Node type, see log_node().
@@ -126,6 +126,9 @@ class MessageLogger(object):
elif log_type == FATAL:
error_type = "Fatal"
+ if marker_pos is not None and marker_line is not None:
+ text = '%s\n%s\n%s' % (text, marker_line, ' ' * marker_pos + '^')
+
if prefix:
text = ('%s: %s: %s: %s: %s\n' % (last_position, error_type,
self._namespace.name, prefix, text))
@@ -179,9 +182,9 @@ def log_node(log_type, node, text, context=None, positions=None):
ml.log_node(log_type, node, text, context=context, positions=positions)
-def warn(text, positions=None, prefix=None):
+def warn(text, positions=None, prefix=None, marker_pos=None, marker_line=None):
ml = MessageLogger.get()
- ml.log(WARNING, text, positions, prefix)
+ ml.log(WARNING, text, positions, prefix, marker_pos, marker_line)
def warn_node(node, text, context=None, positions=None):
@@ -193,11 +196,11 @@ def warn_symbol(symbol, text):
ml.log_symbol(WARNING, symbol, text)
-def error(text, positions=None, prefix=None):
+def error(text, positions=None, prefix=None, marker_pos=None, marker_line=None):
ml = MessageLogger.get()
- ml.log(ERROR, text, positions, prefix)
+ ml.log(ERROR, text, positions, prefix, marker_pos, marker_line)
-def fatal(text, positions=None, prefix=None):
+def fatal(text, positions=None, prefix=None, marker_pos=None, marker_line=None):
ml = MessageLogger.get()
- ml.log(FATAL, text, positions, prefix)
+ ml.log(FATAL, text, positions, prefix, marker_pos, marker_line)