Tùy chỉnh gedit Cú pháp làm nổi bật cho người giả?


14

Tôi muốn làm cho (có, thực sự) một cú pháp tô sáng tùy chỉnh cho gedit.

Sẽ chỉ có một vài mặt hàng khác nhau:

Một dòng bắt đầu với 2 tab. ----- Một màu. Một dòng bắt đầu với 3 tab. ----- Màu sắc khác. Một dòng bắt đầu với 4 tab. ----- Màu sắc khác. và một dòng bắt đầu với INT. hoặc EXT. ----- Màu sắc khác.

Đây là để viết kịch bản.

Tôi đã xem trang wiki định nghĩa ngôn ngữ cho gedit nhưng nó vượt quá đầu tôi.

Có một cách đơn giản tôi có thể làm điều này?

Câu trả lời:


15

Sau đây được lấy từ tài liệu tham khảo GtkSourceView, Định nghĩa ngôn ngữ v2.0 Hướng dẫn Tài liệu tham khảo .

Tạo tệp /usr/share/gtksourceview-2.0/lingu-specs/screenplay.lang (với quyền root), với các nội dung sau:

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

Đảm bảo tệp có thể đọc được trên thế giới bằng cách chạy

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

Khởi động lại gedit. Bây giờ bất kỳ tập tin có tên *.script rằng bạn mở trong gedit sẽ hiển thị loại "Kịch bản" trong thanh trạng thái ở dưới cùng. Các dòng được thụt vào với 2, 3 hoặc 4 tab phải có màu xanh lam, đỏ tươi và lục lam, và các dòng bắt đầu bằng INT. hoặc EXT. sẽ có màu đỏ và đậm.

Bạn có thể điều chỉnh điều này theo một số cách:

  • Các .script hậu tố tên tệp được đặt trên dòng 5, trong thuộc tính "globs". Bạn có thể thay đổi điều này theo cách rõ ràng và bao gồm nhiều giá trị nếu bạn muốn, được phân tách bằng dấu chấm phẩy ( ; ).

  • Các màu mà bạn có được cho thụt lề và INT. và EXT. các dòng phụ thuộc vào bảng màu cụ thể mà bạn đã chọn cho gedit. Chúng là màu sắc của bình luận, hằng số, định danh và kiểu câu lệnh (đó là những gì map-to="def:comment" v.v. làm). Để có kết quả khác nhau, bạn có thể thay đổi lược đồ màu gedit (Chỉnh sửa & gt; Tùy chọn & gt; Phông chữ và Màu sắc) hoặc sắp xếp lại map-to các giá trị trong <style> thẻ. Nếu bạn muốn kiểm soát nhiều hơn, bạn có thể tạo bảng màu của riêng mình như sau:

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

    Chỉnh sửa screenplay.xml (với quyền root). Thay thế ba dòng không bình luận đầu tiên bằng:

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

    Sau đó điều chỉnh màu sắc (và có thể cả các kiểu khác nữa, ví dụ: bold="true" ) của def: bình luận, def: hằng, def: định danh và def: các kiểu câu lệnh. Khởi động lại gedit một lần nữa và thay đổi lược đồ màu của gedit thành Screenplay để xem các màu mới của bạn. Lưu ý rằng đó là một thay đổi toàn cầu mặc dù; bạn có thể muốn thay đổi trở lại bảng màu thông thường của mình để chỉnh sửa các tệp khác.

Lưu ý rằng bất cứ khi nào bạn thay đổi tệp screenplay.lang hoặc screenplay.xml, bạn sẽ phải khởi động lại gedit để xem kết quả.


Điều đó đã làm nó! TUYỆT VỜI!
YAS

Cảm ơn, tôi đã có một trường hợp sử dụng tương tự, làm nổi bật các dòng khác nhau nhưng liên quan đến vật lý với cùng màu và điều này giúp ích rất nhiều.
Eloff
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.