
Я пытаюсь создать новое определение языка для Gedit. Язык называется nesC, и он в основном является производным от C, в результате чего разделяет структуру C.
Я следовал инструкциям на вики-сайте Gnome по созданию нового языка.
Я скопировал файл c.lang и вставил его в ~/.local/share/gtksourceview-3.0/language-specs
, а затем внес в файл все необходимые изменения для преобразования C в nesC.
Проблема в том, что когда я открываю файл с расширением .nc
, он все еще просто черного цвета. Однако, если я перехожу в Вид → Режим подсветки → Источники, опция nesC там есть и уже выбрана, что означает, что Gedit определяет тип файла. В таком случае, почему нет цветов? Когда я выбираю C из источников, я получаю цвета.
Я также создал файл типа MIME, как указано в статье вики Gnome о том, как создать новый язык.
В файле я изменил 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>`
(Но я не знаю, как вы назвали пантомимный тип.)