Изменение файлов gtksourceview с добавлением стиля
Я хочу изменить способ отображения маркеров списка файлов уценки в GEdit
в теме tomorrow_night-eighties.xml
, который я скачал с https://wiki.gnome.org/Projects/GtkSourceView/StyleSchemes. Я знаю, что GEdit загружает свои языковые спецификации из
/usr/share/gtksourceview-3.0/language-specs/
Файл языка разметки markdown.lang
, Стили находятся в моем каталоге пользователей:
~/.local/share/gtksourceview-2.0/styles
Я сделал следующее:
Я добавил:
<style name="markdown:list-marker" foreground="#cc99cc" bold="true"/>
к списку доступных стилей в стиле document.in моего пользователя.local/share/....
папка.Я изменил в спецификации языка:
<style id="list-marker" _name="List Marker" map-to="markdown:list-marker"/>
в<styles>...</styles>
регион / тег, чтобы сделать его доступным для ссылки ниже.
Моя тема настроена на tomorrow_night-eighties.xml
один у меня в моем ~/.local/share/gtksourceview-2.0/styles
и файл уценки открывается. После изменения GEdit больше не выделяет маркеры списка.
Чего я не понимаю, так это того, чего не хватает? Я только изменил ссылку и ввел новый стиль, но не изменил регулярное выражение, так почему же это мешает выделению?
2 ответа
Похоже, что GEdit не замечает автоматически изменения в этих файлах, и нужно повторно импортировать стили в настройках и просто для уверенности также перезапустить GEdit, если языковой файл изменился.
Ошибка с идентификаторами для
<context>
а также
<language>
теги при создании
id=
атрибут, возможно, также для
<style>
ярлык.
Приведенный ниже набор прототипов тестов был запущен в этой среде:
linuxuser@ubuntu:~$ gedit -V
gedit - Version 3.28.1
linuxuser@ubuntu:~$ uname -a
Linux ubuntu 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:00 UTC 2019 i686 i686 i686 GNU/Linux
linuxuser@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
Языковой файл набора тестов, демонстрирующий эту ошибку:
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file is part of GtkSourceView
special mods for extended background highlighting and comments MJS aka etx 2021
id (mandatory)
Identifier for the description.
This is used for external references and must be unique among language descriptions.
It can contain a string of letters, digits, hyphens ("-") and underscores ("_"). NOT!!!
as follows for id attribute of both tags language & context
empirical evidence gathered via simultaneously changing both id's to be identical
fails reliably: xRef
fail unreliably: x-ref X_-ef3
but aOk: xref xref3 x-ref3
-->
<language id="xRef" name="C..C xref augment cpp" version="2.0" _section="other">
<definitions>
<context id="special-multiline-comment" style-ref="def:note" > <!-- hi-liter -->
<start>/(\* .. .. .. \*)+/</start>
<end>\%{0@start}</end>
</context>
<!--Main context-->
<context class="no-spell-check" id="xRef" >
<include>
<context ref="special-multiline-comment"/> <!-- override MUST precede to supercede -->
<!-- actual language definition: editing hi lite stuff plus everything from C++ -->
<context ref="cpp:cpp"/>
</include>
</context>
</definitions>
</language>