Вопрос или проблема
Как я могу добавить регулярные выражения для дополнительного языка синтаксиса?
Gedit (редактор текста по умолчанию) использует GTKSourceView для подсветки синтаксиса. Он использует XML файлы для определения, как подсвечивать разные синтаксисы.
На сайте GTKSourceView есть учебник и справочный документ. Готовые определения файлов исходного кода хранятся в /usr/share/gtksourceview-2.0/language-specs/
или /usr/share/gtksourceview-3.0/language-specs/
, вы можете ознакомиться с ними, чтобы учиться на примерах.
Также на сайте Gedit есть менее глубокий учебник.
После того как вы создадите свой новый язык спецификаций, перезапустите gedit, и он автоматически добавит его в свой список языков.
Я предполагаю, что вы говорите о gedit (помеченном как “редактор текста” в меню Ubuntu).
Gedit использует GtkSourceView для подсветки синтаксиса. Вам нужно создать определение языка для GtkSourceView.
Вот учебник: https://developer.gnome.org/gtksourceview/stable/lang-tutorial.html
обновление 2021: ссылка не работает. теперь здесь: https://developer-old.gnome.org/gtksourceview/stable/lang-tutorial.html
я не знаю, почему это теперь “developer-old”. возможно, устарело. я не смог найти новый учебник. но я не искал много.
вот новые учебники для разработчиков GNOME: https://developer.gnome.org/documentation/tutorials.html
я не нашел там учебника по подсветке синтаксиса для gedit.
После долгих поисков и многочисленных попыток в разных каталогах я нашел каталог, в который нужно поместить определение языка:
/usr/share/libgedit-gtksourceview-300/language-specs
Ответ или решение
Для добавления новой синтаксической подсветки в редактор Gedit, который использует библиотеку GTKSourceView для своих функций подсветки синтаксиса, требуется выполнить несколько шагов, включая создание XML-файла спецификации языка. Данная инструкция предоставляет все необходимые детали работы с такими файлами.
Шаг 1: Ознакомьтесь с документацией
Прежде чем начать, рекомендуется ознакомиться с некоторыми основными ресурсами:
- Руководство по созданию языка — здесь вы можете узнать о структуре файлов и правилах написания спецификаций.
- Примерные файлы языков находятся в директориях
/usr/share/gtksourceview-2.0/language-specs/
и/usr/share/gtksourceview-3.0/language-specs/
. Это хороший способ изучить уже готовые конфигурации.
Шаг 2: Создайте новый файл спецификации языка
- Создайте файл спецификации: Создайте новый XML-файл с расширением
.lang
. Для этого вы можете использовать существующий файл в качестве шаблона, который наиболее близок по структуре к языку, для которого вы хотите добавить подсветку.
Пример минимального содержимого XML-файла:
<language id="myLanguage" version="1.0" mime="text/x-myLanguage" name="My Language">
<properties>
<property name="line-comment" value="#"/>
</properties>
<scope>
<contexts>
<context id="root" style="default">
<match>
<rule>...</rule> <!-- Ваши регулярные выражения -->
</match>
</context>
</contexts>
</scope>
</language>
- Определите регулярные выражения: Внутри
<match>
вы определяете правила для подсветки синтаксиса с использованием регулярных выражений. Эти выражения будут определять, какие части кода будут подсвечиваться.
Шаг 3: Поместите файл в правильный каталог
Поместите созданный вами файл в каталог, отвечающий за спецификации языков для Gedit. В большинстве систем это:
/usr/share/libgedit-gtksourceview-300/language-specs/
Проверьте версию GTKSourceView, так как путь может немного отличаться в зависимости от вашей системы.
Шаг 4: Перезапустите Gedit
После того как вы скопировали файл в нужный каталог, перезапустите Gedit. После этого ваш новый язык должен появиться в списке доступных языков для подсветки синтаксиса. Вы можете проверить это, открыв новый файл и выбрав ваш язык из меню "Документ" → "Синтаксис".
Заключение
Создание новой подсветки синтаксиса в Gedit — это процесс, который требует внимательности и экспериментов с регулярными выражениями. Не стесняйтесь обращаться к документации и примерам, чтобы улучшить свои навыки. Если у вас возникнут дополнительные вопросы, всегда можно найти помощь на форумах или в сообществах, связанных с Gedit и GTKSourceView.