Gedit에 새로운 언어 추가

Gedit에 새로운 언어 추가

Gedit에 새 언어를 추가해야 합니다. 문제는 이제 Gedit의 언어 메뉴에 포함되어 있지만 구문이 강조 표시되지 않고 Gedit가 파일 접미사에서만 언어를 식별할 수 없다는 것입니다.

MIME-TYPE을 설명하는 .lang 파일과 XML 파일을 만들었습니다.

LANG file - /usr/share/gtksourceview-3.0/language-specs/test.lang
MIME-TYPE file - /usr/share/mime/packages/test.xml

생성 후 MIME 데이터베이스를 업데이트했습니다.

sudo update-mime-database /usr/share/mime

다음에 시도할 사항

test.xml1) 대신 파일을 /usr/share/mime/applications폴더 에 복사 해 보았지만 /usr/share/mime/packages작동하지 않았습니다.

/etc/mime.types2) MIME 유형을 다음과 같이 넣어 보았습니다 .

text/x-test test

또한 효과가 없습니다.


테스트 언어

<?xml version="1.0" encoding="UTF-8"?>
<language id="test" _name="Test" version="1.0" _section="Source">
    <metadata>
        <property name="mimetypes">text/x-test</property>
        <property name="globs">*.test</property>
        <property name="line-comment-start">//</property>
        <property name="block-comment-start">/*</property>
        <property name="block-comment-end">*/</property>
    </metadata>

    <styles>
       <style id="comment" _name="Comment" map-to="def:comment"/>
       <style id="keyword" _name="Keyword" map-to="def:keyword"/>
    </styles>

    <definitions>
        <context id="if0-comment" style-ref="comment">
          <start>\%{preproc-start}if\b\s*0\b</start>
          <end>\%{preproc-start}(endif|else|elif)\b</end>
          <include>
            <context id="if-in-if0">
              <start>\%{preproc-start}if(n?def)?\b</start>
              <end>\%{preproc-start}endif\b</end>
              <include>
                <context ref="if-in-if0"/>
                <context ref="def:in-comment"/>
              </include>
            </context>
            <context ref="def:in-comment"/>
          </include>
        </context>

        <context id="keywords" style-ref="keyword">
            <keyword>hello</keyword>
            <keyword>hi</keyword>
        </context>

        <!--Main context-->
        <context id="test">
            <include>
                <context ref="if0-comment"/>
                <context ref="keywords"/>
            </include>
        </context>

    </definitions>
</language>

테스트.xml

<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info" >
  <mime-type type="text/x-test">
    <sub-class-of type="text/plain"/>
    <comment xml:lang="en">TEST language document</comment>
    <comment xml:lang="cs">Dokument v jazyce TEST</comment>
    <glob pattern="*.test"/>
  </mime-type>
</mime-info>

답변1

마침내 나는 그것을 알아 냈습니다. ~에 따르면GTK 언어 참조 version태그의 속성은 <language>이어야 합니다 2.0.

따라서 올바른 <language>라벨은 다음과 같습니다.

<language id="test" _name="Test" version="2.0" _section="Source">

관련 정보