สร้างไฮไลต์ไวยากรณ์ที่กำหนดเองใน gedit


8

ตามคำถามของฉันเมื่อนานมานี้ฉันยังคงพยายามปรับแต่งความสามารถในการจัดการโชคชะตาของฉัน จอแสดงผลในเทอร์มินัลนั้นยอดเยี่ยมเหลืออยู่เพียงสิ่งเดียว - การเน้นไวยากรณ์ใน Gedit เมื่อฉันเพิ่มแก้ไขหรือลบโชคชะตาแต่ละรายการ

ไฟล์ฟอร์จูนที่กำหนดเองของฉันอยู่ในรูปแบบนี้:

Friend: "Whats a good movie?"
Me: "Snakes on a plane"
Friend: "Whats it about?"
Me: "Horses... horses on a boat..."
@AYYSIAN
%
Me on my wedding: you still like me, right?
@ComedyPosts
%
Mum: Son I'd love to meet your girlfriend...
Me: Me too...
@ComedyTruth
%
Doctor: "Ok, so what's wrong, how are you feeling?"
Me: *Looks at mum waiting for her to explain*
@ChildhoodFact
%
Friend: 75% of people are good at maths...
Me: Mmmmh, I guess then am in the remaining 18%...
@TheFunnyTeens
%
I loved the Titanic. My favorite character was the iceberg
@__GrumpyCat

มันเป็นพื้นa tweet, @nameและ%ตัวอักษร จากนั้นทำซ้ำ

เมื่อฉันเปิดมันใน Gedit ทุกอย่างจะเป็นสีดำ
ฉันกำลังมองหาวิธีสร้างไฟล์ที่เน้นไวยากรณ์ที่จะแปลงเป็น%สีฟ้าและเป็น@nameสีม่วงแดง ทวีตยังคงเป็นสีดำ

บันทึก:

  1. ไฟล์ฟอร์จูนเป็นประเภท mime text/plainและมีรูปแบบที่กำหนดแตกต่างจากไฟล์ข้อความธรรมดาอื่นเท่านั้น
  2. ไฟล์ฟอร์จูนไม่มีส่วนขยาย

คำตอบ:


8

สร้างและเปิดไฟล์ภาษาโชคของคุณ:

sudo touch /usr/share/gtksourceview-3.0/language-specs/fortune.lang
sudo -i gedit /usr/share/gtksourceview-3.0/language-specs/fortune.lang

วางต่อไปนี้:

<?xml version="1.0" encoding="UTF-8"?>
<language id="fortune" _name="Fortune" version="2.0" _section="Markup">
  <metadata>
    <property name="mimetypes">text/plain</property>
    <property name="globs">*.</property>
  </metadata>

  <styles>
    <style id="at"      _name="@ sign"  map-to="def:constant" />
    <style id="percent" _name="percent sign"  map-to="def:comment" />
  </styles>
  <definitions>
    <context id="fortune">
      <include>
        <context id="at" style-ref="at">
          <start>@</start>
          <end>$</end>
        </context>
        <context id="percent" style-ref="percent">
          <start>%</start>
          <end>$</end>
        </context>
      </include>
    </context>
  </definitions>
</language>

ตรวจสอบให้แน่ใจว่าสามารถเข้าถึงได้:

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

รีสตาร์ท gedit

การอ้างอิง - คำตอบแหล่งที่มาของฉัน

สรรพนามของฉันคือเขา / เขา


ขอบคุณมากจะลองทำดู สิ่งหนึ่งที่แม้ว่าไฟล์ฟอร์จูนไม่มีส่วนขยายเหตุผลสำหรับtext/plainประเภท mime นั่นหมายความว่า<property name="globs">*.fort</property>จะกลายเป็น<property name="globs">*</property>?
Parto

@Parto นั่นจะใช้กับไฟล์ทั้งหมดที่ไม่มีส่วนขยาย แต่ส่วนใหญ่เป็น. txt ที่ใช้ได้ เปลี่ยนเป็น<property name="globs">*.</property>และฉันได้อัปเดตคำตอบด้วยสิ่งนี้!
ทิม

2
ขอบคุณมาก ฉันเพิ่งใช้สิ่งนี้เพื่อเพิ่มTwig syntax ที่เน้นไปที่ gedit
TRiG

@TRiG ดีใจที่ได้ช่วย!
ทิม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.