Пользовательский gedit Подсветка синтаксиса для чайников?
Я хочу сделать (на самом деле) пользовательскую подсветку синтаксиса для gedit.
Там будет всего несколько разных предметов:
Строка, которая начинается с 2 вкладок. ----- Один цвет. Строка, которая начинается с 3-х вкладок. ----- Другой цвет. Строка, которая начинается с 4 вкладок. ----- Другой цвет. и строка, которая начинается с INT. или EXT. ----- Другой цвет.
Это для написания сценария.
Я посмотрел на вики-страницу определения языка для gedit, но это далеко над моей головой.
Есть ли простой способ, которым я мог бы сделать это?
1 ответ
Следующее было взято из справочного руководства по GtkSourceView, Учебное пособие по определению языка v2.0 и справочник.
Создайте файл /usr/share/gtksourceview-2.0/language-specs/screenplay.lang (с правами root) со следующим содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<language id="screenplay" _name="Screenplay" version="2.0" _section="Markup">
<metadata>
<property name="mimetypes">text/plain</property>
<property name="globs">*.script</property>
</metadata>
<styles>
<style id="indent2" _name="2x indented" map-to="def:comment" />
<style id="indent3" _name="3x indented" map-to="def:constant" />
<style id="indent4" _name="4x indented" map-to="def:identifier" />
<style id="intext" _name="INT. or EXT." map-to="def:statement" />
</styles>
<definitions>
<context id="screenplay">
<include>
<context id="indent4" style-ref="indent4">
<start>^\t\t\t\t</start>
<end>$</end>
</context>
<context id="indent3" style-ref="indent3">
<start>^\t\t\t</start>
<end>$</end>
</context>
<context id="indent2" style-ref="indent2">
<start>^\t\t</start>
<end>$</end>
</context>
<context id="intext" style-ref="intext">
<start>^(INT|EXT)\.</start>
<end>$</end>
</context>
</include>
</context>
</definitions>
</language>
Убедитесь, что файл доступен для чтения всем, запустив
sudo chmod 0644 /usr/share/gtksourceview-2.0/language-specs/screenplay.lang
Перезапустите Gedit. Теперь любой файл с именем *.script
то, что вы открываете в gedit, должно показывать тип "Сценарий" в строке состояния внизу. Строки с двумя, тремя или четырьмя вкладками должны иметь синий, пурпурный и голубой цвета соответственно, а строки начинаются с INT. или EXT. будет красным и жирным лицом.
Вы можете настроить это несколькими способами:
.script
Суффикс имени файла задается в строке 5 в свойстве globs. Вы можете изменить это очевидным образом и включить несколько значений, если хотите, через точку с запятой (;
).Цвета, которые вы получаете за отступ и INT. и вн. линии зависят от конкретной цветовой схемы, которую вы выбрали для gedit. Это цвета комментариев, констант, идентификаторов и стилей операторов (вот что
map-to="def:comment"
и т. д.) Чтобы получить другие результаты, вы можете изменить цветовую схему gedit ("Правка"> "Настройки"> "Шрифты и цвета") или изменитьmap-to
значения в<style>
теги. Если вы хотите больше контроля, вы можете создать свою собственную цветовую схему следующим образом:cd /usr/share/gtksourceview-2.0/styles sudo cp classic.xml screenplay.xml
Отредактируйте screenplay.xml (как root). Замените первые три строки без комментариев:
<style-scheme id="screenplay" _name="Screenplay" version="1.0"> <author>YAS</author> <_description>Screenplay color scheme</_description>
Затем настройте цвета (и, возможно, другие стили, например,
bold="true"
) стилей def:comment, def:constant, def:identifier и def: Снова перезапустите gedit и измените цветовую схему gedit на Screenplay, чтобы увидеть новые цвета. Обратите внимание, что это глобальное изменение; Вы можете вернуться к своей обычной цветовой схеме для редактирования других файлов.
Обратите внимание, что каждый раз, когда вы изменяете файлы screenplay.lang или screenplay.xml, вам нужно будет перезапустить gedit, чтобы увидеть результаты.