Как мне изменить шрифт Emacs для строк документации Python? - PullRequest
6 голосов
/ 27 февраля 2011

Я только начинаю изучать Python и использую Emacs в качестве моего редактора. В настоящее время Emacs использует один и тот же цвет для обычных строк (одинарные кавычки) и строк документации (тройные кавычки). Я хочу, чтобы строки документации были другого цвета, поэтому я использовал опцию меню «Параметры-> Настроить Emacs», чтобы изменить «font-lock-doc-face» на новый цвет и сохранить изменения. Однако Emacs продолжает сохранять строки документов того же цвета, что и обычные строки. Изменение цвета обычных строк также применяет изменение к строкам документов.

Казалось бы, Emacs рассматривает строки документов и обычные строки как одно и то же. Есть ли способ заставить Emacs правильно находить и окрашивать строки документации Python отдельно от обычных строк?

Редактировать: я использую Emacs 23.1.1 (пакет Kubuntu 10.10) со стандартными настройками режима Python. Я также использую пакет color-theme с темой полночи.

1 Ответ

1 голос
/ 27 февраля 2011

Интересно.Я собирался сказать, что из-за того, как работает таблица синтаксиса emacs, emacs считает """ и ''' пустой строкой, следующей за началом новой строки.

Вы можете легко проверить это в своей копии emacs, вставив следующий код в буфер python:

class MrsRobinson(object):
    '''
    What's that you say?
    '''
    pass

В emacs 23.1.1 [ update: и, очевидно, в stackoveflow!] это полностью нарушает подсветку синтаксиса для остальной части файла.

Я всегда использую """ специально, чтобы избежать проблем с апострофом в строках документов, поэтому я не заметил до этого момента, что вemacs 23.2.1, это как-то окончательно исправлено ...

(Да, в python.el есть новая функция python-quote-syntax)

Итак: в вашей версии emacs этоневозможно, потому что строки не анализируются правильно.Если вы обновитесь до последних версий emacs, вы сможете сделать это, изменив эту функцию в python.el, чтобы по-разному относиться к ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...