Спеціальне виділення синтаксису gedit для манекенів?


15

Я хочу зробити (мати насправді) підсвічування синтаксису для користувача gedit.

Було б лише кілька різних елементів:

Рядок, який починається з 2 вкладок. ----- Один колір. Рядок, який починається з 3 вкладок. ----- Ще один колір. Рядок, який починається з 4 вкладок. ----- Ще один колір. і лінія, яка починається з INT. або EXT ----- Ще один колір.

Це для написання сценарію.

Я подивився на вікі-сторінку визначення мови для gedit, але це над головою.

Чи є простий спосіб я це зробити?

Відповіді:


16

Далі була отримана з довідкового керівництва GtkSourceView, мова Визначення v2.0 Підручник і Reference .

Створіть файл /usr/share/gtksourceview-2.0/language-specs/screenplay.lang (як корінь) із таким вмістом:

<?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, повинен показувати тип "Екран" у рядку стану внизу. Рядки з відступом на 2, 3 або 4 вкладки повинні бути кольоровими синім, пурпуровим і блакитним відповідно, а лінії, що починаються з INT. або EXT буде червоним і сміливим.

Ви можете налаштувати це кількома способами:

  • .scriptСуфікс імені файлу задаються в рядку 5, у властивості «грудки». Ви можете змінити це очевидним чином і, якщо хочете, включити кілька значень, розділених крапками з комою ( ;).

  • Кольори, які ви отримуєте для відступів та INT. і EXT. лінії залежать від конкретної кольорової гами, яку ви вибрали для 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: коментар, def: константа, def: ідентифікатор та def: стилі операторів. Перезапустіть gedit ще раз та змініть колірну схему gedit на Screenplay, щоб побачити нові кольори. Зауважте, що це глобальна зміна; ви можете змінити свою звичайну колірну схему для редагування інших файлів.

Зауважте, що щоразу, коли ви змінюєте файли screenplay.lang або screenplay.xml, вам доведеться перезапустити gedit, щоб побачити результати.


Це зробили! ДУЖЕ!
ЯС

Дякую, у мене був подібний випадок використання, підкреслюючи пов'язані, але фізично розрізнені лінії однакового кольору, і це дуже допомогло.
Елофф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.