Gedit 構文強調表示は新しい言語では機能しません

Gedit 構文強調表示は新しい言語では機能しません

私は Gedit 用の新しい言語定義を作成しようとしています。この言語は nesC と呼ばれ、基本的に C から派生したもので、結果として C の構造を共有しています。

新しい言語を作成する方法については、Gnome wiki の指示に従いました。

c.lang ファイルをコピーして に貼り付け~/.local/share/gtksourceview-3.0/language-specs、ファイルに必要な変更をすべて加え、C を nesC に変換しました。

問題は、拡張子 のファイルを開くと.nc、ファイルがまだ黒一色のままであることです。ただし、「表​​示」→「ハイライト モード」→「ソース」に移動すると、nesC オプションがあり、すでに選択されています。これは、Gedit がファイルの種類を検出していることを意味します。その場合、なぜ色がないのでしょうか。ソースから C を選択すると、色が表示されます。

また、新しい言語を作成する方法に関する Gnome wiki の記事に示されているように、MIME タイプ ファイルも作成しました。


ファイルで、id=cを に変更しましたid=nesc。 これを に戻すとid=c、動作します。 を使用してはいけないのはなぜですかnesc? チュートリアルでは、値 ( id=foo) を明確に変更しています。

答え1

あなたは変わるべきだid属性は、メイン タグ<language>と タグ<context>(の子<definitions>) の 2 か所にあります。


<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 タイプにどのような名前を付けたかはわかりません。)

関連情報