<string>s/^/ID: /</string>
operacion:
# ошибка записи операторов операций без правого операнда
- match: ({{left_operand}}\s*?)\K(\!|\+|-|\/|\*)(?!\s*?{{right_operand}})
scope: invalid.illegal.expected-mapping-key.qsp avs.error avs.wrongoperator1
# ошибка записи операторов больше-равно и меньше-равно без правого операнда
- match: ({{left_operand}}\s*?)\K(<=|>=)(?!\s*?{{right_operand}})
scope: invalid.illegal.expected-mapping-key.qsp avs.error avs.wrongoperator2
# ошибка записи операторов больше-равно и меньше-равно без левого операнда или отдельной строкой
- match: (^\s*?|\&\s*?|\(\s*?|\{\s*?|\[\s*?)\K(<=|>=)(?=\s*?{{right_operand}}*)
scope: invalid.illegal.expected-mapping-key.qsp avs.error avs.wrongoperator3
# подсветка правильно записанных операторов больше-равно и меньше-равно
- match: (<=|>=) # допустимые в QSP => и =< в данной подсветке не поддерживаются
scope: support.function.qsp avs.operacion1
# ошибка записи операторов > < = без правого операнда
- match: ({{left_operand}}\s*?)\K(<|>|=)(?!\s*?{{right_operand}})
scope: invalid.illegal.expected-mapping-key.qsp avs.error avs.wrongoperator5
# ошибка записи операторов больше-равно и меньше-равно без левого операнда или отдельной строкой
- match: (^\s*?|\&\s*?|\(\s*?|\{\s*?|\[\s*?)\K(<|>|=)(?=\s*?{{right_operand}}*)
scope: invalid.illegal.expected-mapping-key.qsp avs.error avs.wrongoperator6
# подсветка правильно записанных операторов > < =
- match: (<|>|=)
scope: support.function.qsp avs.operacion5
# подсветка всех операторов для операций, в т.ч. скобок и прочего
- match: '(?i:(!|\:|\;|\[|\]|\(|\)|\&|\+|\/|\*|=|-|(>|<)=?|=?(>|<)))'
scope: support.function.qsp avs.operacion9