Подсветка синтаксиса Gedit не будет работать для нового языка

Подсветка синтаксиса Gedit не будет работать для нового языка

Я пытаюсь создать новое определение языка для 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>`

(Но я не знаю, как вы назвали пантомимный тип.)

Связанный контент