Gedit 语法高亮功能不适用于新语言

Gedit 语法高亮功能不适用于新语言

我正在尝试为 Gedit 创建一种新的语言定义。该语言称为 nesC,它基本上是从 C 派生而来的,因此共享 C 结构。

我按照 Gnome wiki 上的说明来了解如何创建新语言。

我复制了 c.lang 文件并将其粘贴到~/.local/share/gtksourceview-3.0/language-specs,然后对该文件进行了所有必要的更改,以将 C 转换为 nesC。

问题是,当我打开扩展名为 的文件时.nc,它仍然是纯黑色。但是,如果我转到“查看”→“突出显示模式”→“源”,nesC 选项就在那里并且已被选中,这意味着 Gedit 正在检测文件类型。在这种情况下,为什么没有颜色?当我从源中选择 C ​​时,我得到了颜色。

我还创建了一个 mime 类型文件,如 Gnome wiki 文章中有关如何创建新语言所示。


在文件中,我将其更改id=cid=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-type 的。)

相关内容