Die Syntaxhervorhebung von Gedit funktioniert nicht für eine neue Sprache

Die Syntaxhervorhebung von Gedit funktioniert nicht für eine neue Sprache

Ich versuche, eine neue Sprachdefinition für Gedit zu erstellen. Die Sprache heißt nesC und ist im Wesentlichen von C abgeleitet, hat also die gleiche Struktur wie C.

Ich habe die Anweisungen zum Erstellen einer neuen Sprache im Gnome-Wiki befolgt.

Ich habe die Datei c.lang kopiert und eingefügt ~/.local/share/gtksourceview-3.0/language-specsund dann alle notwendigen Änderungen an der Datei vorgenommen, um C in nesC zu konvertieren.

Das Problem ist, dass eine Datei mit der Erweiterung .ncimmer noch schlicht schwarz ist, wenn ich sie öffne. Wenn ich jedoch zu Ansicht → Hervorhebungsmodus → Quellen gehe, ist die Option nesC vorhanden und bereits ausgewählt, was bedeutet, dass Gedit den Dateityp erkennt. Warum gibt es in diesem Fall keine Farben? Wenn ich C aus den Quellen auswähle, erhalte ich die Farben.

Ich habe außerdem eine MIME-Typ-Datei erstellt, wie im Gnome-Wiki-Artikel zum Erstellen einer neuen Sprache beschrieben.


In der Datei habe ich id=cin geändert id=nesc. Wenn ich es wieder in ändere id=c, funktioniert es. Warum sollte ich nicht verwenden nesc? Das Tutorial ändert den Wert eindeutig ( id=foo).

Antwort1

Du solltest dich ändernidAttribut an 2 Stellen, im Haupttag <language>und im Tag <context>(Kind von <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>

Und


  <definitions>
    <context id="nesc">
    </context>
  </definitions>
</language>`

(Aber ich weiß nicht, wie Sie den MIME-Typ benannt haben.)

verwandte Informationen