Как заставить SublimeText поддерживать аннотации Python 3?

Я протестировал SublimeText 2 и 3, и оба они содержат ошибки:

Если вы протестируете этот код, вы заметите, что весь код сразу после : не будет правильно выделен синтаксис.

def foo(a, b) -> str:
    # Nothing gets properly colored from here
    # A bunch of code…
    return "bar"

Я нашел несколько ссылок, объясняющих, как добавить свои собственные правила подсветки синтаксиса, но я не нашел, как изменить уже реализованные, чтобы исправить их.

EDIT: Теперь, зная, где изменить правила подсветки синтаксиса по умолчанию, благодаря MattDMo, я попытался изменить строку 385 моего файла.

        <key>end</key>
        <string>(\))\s*(?:(\:)|(.*$\n?))</string>

to

        <key>end</key>
        <string>(\))\s*(?:\->\s*[A-Za-z_][A-Za-z0-9_]*\s*)?(?:(\:)|(.*$\n?))</string>

Но это не сработало.


person jeromej    schedule 23.08.2013    source источник
comment
В настоящее время я работаю над улучшением встроенного синтаксиса Python, если кто-то хочет внести свой вклад в проект Пожалуйста, не стесняйтесь.   -  person MattDMo    schedule 23.08.2013
comment
@MattDMo Ваш Python.tmLanguage уже решил мою проблему? Если это так, вы также можете рассмотреть возможность публикации этого ответа.   -  person jeromej    schedule 23.08.2013
comment
К сожалению, пока нет, поэтому я не отправил ответ. На самом деле я недавно сам узнал об аннотациях - извините, я не читал каждого PEP :) - так что я посмотрю, смогу ли я что-нибудь понять.   -  person MattDMo    schedule 23.08.2013


Ответы (1)


Я создал свою собственную версию примерно 2 месяца назад, но в ней все еще есть несколько (серьезных) ошибок, поэтому не стесняйтесь сообщать об этих ошибках на этой странице github или вносить исправления:

https://github.com/petervaro/python

Несмотря на то, что существует версия Cython, которая генерируется из того же файла, что и сам Python ->, но это абсолютно незавершенный tmLanguage, так что не используйте его! :)


ОБНОВЛЕНИЕ: теперь оно "стабильно" и готово к серьезной работе, поэтому используйте его, делитесь им и, пожалуйста, сообщайте об ошибках! :)

person Peter Varo    schedule 13.09.2013