У меня есть файл синтаксиса со следующими определениями:
syn keyword pythonBuiltinFunc __import__ abs all any
\ bin bool bytearray
\ callable chr classmethod compile complex
\ delattr dict dir divmod
\ enumerate eval
\ filter float format frozenset
\ getattr globals hasattr hash hex
\ id input int isinstance issubclass iter
\ len list locals
\ map max min next
\ object oct open ord pow property
\ range repr reversed round
\ set setattr slice sorted
\ staticmethod str sum super
\ tuple type vars zip
\ nextgroup=pythonArgs skipwhite
Проблема в том, что это соответствует вхождению next
(например), даже когда на это имя ссылаются как на атрибут объекта, как в obj.next
, и это портит подсветку.
Хотя я мог бы купить, что полезно не скрывать встроенные имена, я не уверен, что куплю это для ограниченных имен.
Есть ли у кого-нибудь мысли о том, как применять приведенные выше определения, но исключить патологический случай, о котором я упоминал ниже? Я предполагаю, что я позволил бы пробел в шаблоне слова, но игнорировал бы его в совпадении?