Предыстория: для тех, кто не знаком с ней, Sublime Text (и TextMate) обеспечивает подсветку синтаксиса и другие функции через области действия, которые определяются в файлах определения языка .tmLanguage
, в основном набор регулярных выражений для идентификации различные конструкции в данном языке, такие как определения функций, различные типы строк, зарезервированные слова и т.д.
Я поддерживаю пакет Python Improved (доступный через Контроль пакетов, если вам интересно), который призван стать лучшим определением языка для Python. Вы можете прочитать об этом на GitHub, если хотите, но одна из ключевых особенностей заключается в том, что он действительно поддерживается, в отличие от многих возвышенных языков, которые не менялись и не обновлялись годами.
Вопрос: недавно я сосредоточился на материалах с двойным подчеркиванием __magic__
, и после нахождения этого превосходного трактата Рэйфа Кеттлера о магических функциях я смог расширить эту часть определения языка немного. Однако мне повезло меньше, если я нашел хороший список имен встроенных магических переменных или магических атрибутов, таких как __class__
или __doc__
. Я просмотрел раздел Data Model в документации, но он оставляет желать лучшего для моих целей и, кажется, фокусируется в основном на именах магических методов.
Итак, мой вопрос: что должно быть включено в область действия support.variable.magic.python
? Это его определение до сих пор:
\b__(all|bases|class|debug|dict|doc|file|members|metaclass|methods|module|name|slots|weakref)__\b
Одной из причин, по которой я начал этот проект, было больше узнать о Python, и я определенно добился успеха, но я застрял в этом.
Просто чтобы прояснить, я не ищу любимый сторонний ресурс (хотя, если у вас есть удобная ссылка, я был бы признателен за это), и я не пытаюсь начать самоуверенное обсуждение. Все, что я пытаюсь выяснить, это то, выглядит ли этот список разумным, как есть, или есть какие-либо явные ошибки. Если вы хотите быть самоуверенным, откройте вопрос, и я буду более чем счастлив обсудить.
Спасибо!