Вам нужно отредактировать файл определения языка, чтобы добавить новый раздел.Определение языка - python.lang
, а для меня - /usr/share/gtksourceview-2.0/language-specs
.
Сначала вам нужно добавить стиль для идентификатора стиля, который вы собираетесь создать:
<style id="class-name" _name="Python Class Name" map-to="def:type"/>
Затем вам нужно добавить новый контекст к этому файлу в разделе <context-id="python"
:
<context id="class-name" style-ref="class-name" style-inside="true">
<start>\%{string-prefix}def\ </start>
<end>\(</end>
<include>
<context ref="python"/>
<context ref="format"/>
<context ref="escaped-char"/>
</include>
</context>
Вам нужен style-inside="true"
, чтобы не применять стили к def
или (
что мы соответствуем.Из документов:
style-inside (необязательно) Если этот атрибут имеет значение "true", тогда стиль выделения будет применен к области между началом и концом совпадений;в противном случае весь контекст будет выделен.
Сохраните это, затем перезапустите gedit, и имя функции должно быть стилизовано так же, как и ошибка, например, текст AttributeError
будет.Вы можете изменить строку map-to
в верхней части языкового файла, чтобы изменить стиль, применяемый к именам функций.
Преимущество повторного использования существующего стиля вместо определения нового стиля для имен классов состоит в том, что онбудет работать со всеми темами gedit, которые вы установите в будущем - их не нужно изменять, чтобы добавить секцию имен функций, специфичную для python.стиль на "def".Перемещение раздела «имя-класса» (мой код выше) ниже раздела «ключевые слова», который уже существует, исправляет это, поскольку оно перемещает наше изменение ниже в иерархии.Будет обновлено изображение, когда я получу шанс.
До:
После: