Add marks where they were forgotten

This commit is contained in:
ZyX 2014-08-25 00:38:32 +04:00
parent 1cc1e35624
commit 9d7c5dd390

View File

@ -94,6 +94,10 @@ class DelayedEchoErr(EchoErr):
__bool__ = __nonzero__ __bool__ = __nonzero__
def new_context_item(key, value):
return ((value.keydict[key], value[key]),)
class Spec(object): class Spec(object):
def __init__(self, **keys): def __init__(self, **keys):
self.specs = [] self.specs = []
@ -189,7 +193,7 @@ class Spec(object):
item, item,
value.mark, value.mark,
data, data,
context + (('list item ' + unicode(i), item),), context + ((MarkedUnicode('list item ' + unicode(i), item.mark), item),),
echoerr echoerr
) )
else: else:
@ -230,7 +234,7 @@ class Spec(object):
item, item,
value.mark, value.mark,
data, data,
context + (('tuple item ' + unicode(i), item),), context + ((MarkedUnicode('tuple item ' + unicode(i), item.mark), item),),
echoerr echoerr
) )
if ihadproblem: if ihadproblem:
@ -399,7 +403,7 @@ class Spec(object):
value[key], value[key],
value.mark, value.mark,
data, data,
context + ((key, value[key]),), context + new_context_item(key, value),
echoerr echoerr
) )
if mhadproblem: if mhadproblem:
@ -430,7 +434,7 @@ class Spec(object):
value[key], value[key],
value.mark, value.mark,
data, data,
context + ((key, value[key]),), context + new_context_item(key, value),
echoerr echoerr
) )
if vhadproblem: if vhadproblem:
@ -821,7 +825,7 @@ highlight_keys = set(('highlight_group', 'name'))
def check_key_compatibility(segment, data, context, echoerr): def check_key_compatibility(segment, data, context, echoerr):
context_has_marks(context) context_has_marks(context)
havemarks(segment) havemarks(segment)
segment_type = segment.get('type', 'function') segment_type = segment.get('type', MarkedUnicode('function', None))
havemarks(segment_type) havemarks(segment_type)
if segment_type not in type_keys: if segment_type not in type_keys:
@ -909,9 +913,7 @@ def check_full_segment_data(segment, data, context, echoerr):
for name in names: for name in names:
try: try:
val = segment_data[name][key] val = segment_data[name][key]
# HACK to keep marks k = segment_data[name].keydict[key]
l = list(segment_data[name])
k = l[l.index(key)]
segment_copy[k] = val segment_copy[k] = val
except KeyError: except KeyError:
pass pass
@ -1251,7 +1253,7 @@ def check_args_variant(func, args, data, context, echoerr):
args[key], args[key],
args.mark, args.mark,
data, data,
context + ((key, args[key]),), context + new_context_item(key, args),
echoerr echoerr
) )
if khadproblem: if khadproblem: