새로운 언어에서는 Gedit 구문 강조가 작동하지 않습니다

새로운 언어에서는 Gedit 구문 강조가 작동하지 않습니다

Gedit에 대한 새로운 언어 정의를 만들려고 합니다. nesC라고 불리는 언어는 기본적으로 C에서 파생되어 결과적으로 C 구조를 공유합니다.

나는 새 언어를 만드는 방법에 대한 Gnome 위키의 지침을 따랐습니다.

c.lang 파일을 복사하여 에 붙여 넣은 ~/.local/share/gtksourceview-3.0/language-specs다음 C를 nesC로 변환하기 위해 파일에 필요한 모든 변경을 수행했습니다.

문제는 확장자가 .인 파일을 열 때 .nc여전히 일반 검정색이라는 것입니다. 그러나 보기 → 강조 모드 → 소스로 이동하면 nesC 옵션이 이미 선택되어 있으며 이는 Gedit가 파일 형식을 감지하고 있음을 의미합니다. 그렇다면 왜 색상이 없습니까? 소스에서 C를 선택하면 색상이 표시됩니다.

또한 새 언어를 만드는 방법에 대한 Gnome 위키 기사에 표시된 대로 MIME 형식 파일을 만들었습니다.


파일 id=c에서는 id=nesc. 다시 으로 변경하면 id=c작동합니다. 왜 사용하면 안 됩니까 nesc? 튜토리얼에서는 값( id=foo)을 명확하게 변경합니다.

답변1

당신은 변화해야id기본 태그 <language>와 태그 <context>( 의 하위 태그 <definitions>) 두 곳에 속성이 있습니다.


<language id="nesc" _name="nesC" version="2.0" _section="Source">
  <metadata>
    <property name="mimetypes">text/x-nesc</property>
    <property name="globs">*.nesc;*.nc</property>
  </metadata>

그리고


  <definitions>
    <context id="nesc">
    </context>
  </definitions>
</language>`

(하지만 mime-type이라는 이름을 어떻게 지었는지 모르겠습니다.)

관련 정보