Aptallar için özel gedit Sözdizimi Vurgulama?


15

Gedit için özel bir sözdizimi vurgulamak (aslında) yapmak istiyorum.

Sadece birkaç farklı öğe olurdu:

2 sekmeyle başlayan bir satır. ----- Tek renk. 3 sekme ile başlayan bir satır. ----- Başka bir renk. 4 sekmeyle başlayan bir satır. ----- Başka bir renk. ve INT ile başlayan bir satır. veya EXT. ----- Başka Bir Renk.

Bu bir senaryo yazmak içindir.

Gedit için dil tanımı wiki sayfasına baktım ama başımın üstünde.

Bunu yapmanın basit bir yolu var mı?

Yanıtlar:


16

Aşağıdakiler GtkSourceView referans el kitabı, Language Definition v2.0 Tutorial ve Reference'dan türetilmiştir .

/Usr/share/gtksourceview-2.0/language-specs/screenplay.lang (kök olarak) dosyasını aşağıdaki içeriklerle oluşturun:

<?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>

Dosyanın çalıştırarak dünya tarafından okunabilir olduğundan emin olun

sudo chmod 0644 /usr/share/gtksourceview-2.0/language-specs/screenplay.lang

Gedit'i yeniden başlatın. Şimdi *.scriptgedit'te açtığınız herhangi bir dosya , alttaki durum çubuğunda "Senaryo" türünü göstermelidir. 2, 3 veya 4 sekme ile girintili çizgiler sırasıyla mavi, macenta ve mavi ve INT ile başlayan çizgiler olmalıdır. veya EXT. kırmızı ve koyu renkli olacak.

Bunu birkaç şekilde ayarlayabilirsiniz:

  • .scriptDosya adı soneki "globs" özelliğinde, 5. satırda yer almaktadır. Bunu açık bir şekilde değiştirebilir ve isterseniz noktalı virgülle ( ;) ayırarak birden çok değer ekleyebilirsiniz .

  • Girintili ve INT için aldığınız renkler. ve EXT. çizgiler gedit için seçtiğiniz renk düzenine bağlıdır. Yorum, sabit, tanımlayıcı ve ifade stillerinin renkleri (bunlar map-to="def:comment"vb.). Farklı sonuçlar elde etmek için gedit renk düzenini değiştirebilir (Düzenle> Tercihler> Yazı Tipleri ve Renkler) veya etiketlerdeki map-todeğerleri yeniden düzenleyebilirsiniz <style>. Daha fazla kontrol istiyorsanız, aşağıdaki gibi kendi renk düzeninizi oluşturabilirsiniz:

    cd /usr/share/gtksourceview-2.0/styles
    sudo cp classic.xml screenplay.xml
    

    Screenplay.xml dosyasını (kök olarak) düzenleyin. Yorum yapmayan ilk üç satırı şu şekilde değiştirin:

    <style-scheme id="screenplay" _name="Screenplay" version="1.0">
      <author>YAS</author>
      <_description>Screenplay color scheme</_description>
    

    Daha sonra bold="true"def: comment, def: sabit, def: tanımlayıcı ve def: deyim stillerinin renklerini (ve belki de diğer stilleri de ayarlayın ). Gedit'i yeniden başlatın ve yeni renklerinizi görmek için gedit'in renk düzenini Screenplay olarak değiştirin. Ancak bunun küresel bir değişiklik olduğunu unutmayın; diğer dosyaları düzenlemek için normal renk düzeninize geri dönmek isteyebilirsiniz.

Screenplay.lang veya screenplay.xml dosyalarını her değiştirdiğinizde, sonuçları görmek için gedit'i yeniden başlatmanız gerektiğini unutmayın.


Başardı! HARİKA!
YAS

Teşekkürler, aynı renkte ilgili ama fiziksel olarak farklı çizgileri vurgulayan benzer bir kullanım durumum vardı ve bu çok yardımcı oldu.
Eloff
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.