Существует меню выбора синтаксиса. Пользователь берет файл.ру из эксплорера и
и применяет его, надеясь что это файл с синтаксисом. Это может оказаться другой файл.
Тогда нужно вернуть старый синтаксис.
Сейчас это выглядит так:
try:
self. Highlighter = myHighlighter(doc, new_syntax)
except:
self. Highlighter = myHighlighter(doc, old_syntax)
class myHighlighter(QSyntaxHighlighter):
def __init__(self, doc, syntax):
QSyntaxHighlighter.__init__(self, doc)
self.rules_from_syntax(syntax)
Проблема в том, что применение old_syntax не отменяет применения new_syntax и после перехода в except и окончания всех манипуляций все равно начинается highlihtBlock с синтаксисом new_syntax. А он пуст, например. Крах.
Как в случае ошибки отменить highlight new_syntax и сразу заняться old_syntax?