
我正在嘗試為 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=c
為id=nesc
.如果我把它改回id=c
,那麼它就有效。為什麼我不應該使用nesc
?本教程清楚地更改了值 ( id=foo
)。
答案1
你應該改變id
屬性在 2 個地方,在主標籤<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 的。)