Спеціальне виділення синтаксису 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.