Arbeiten mit Farbschemata

Überblick

Farbschemata definieren die Farben des Text-Editierbereichs und der Syntaxhervorhebung. Ein Farbschema umfasst die folgenden Punkte:

  • Der Textstil für die Syntaxhervorhebung durch die Standard-Stilattribute. Zum Beispiel die Textfarbe und die ausgewählte Textfarbe.

  • Der Hintergrund des Textbearbeitungsbereichs, einschließlich der Textauswahl und der aktuellen Zeile.

  • Die Symbolumrandung des Textbereichs, deren Hintergrund, die Trennlinie, die Zeilennummern, die Zeilenumbruchmarkierungen, die geänderten Zeilenmarkierungen und die Quelltextausblendung.

  • Textmarkierungen wie die Suchmarkierungen, die Einrückung und die Zeilenmarkierungen für Tabulator-/Leerzeichen, zusammengehörende Klammern und die Rechtschreibprüfung.

  • Lesezeichen und Textbausteine.

Um Verwechslungen zu vermeiden, liegt das Folgende außerhalb des Anwendungsbereichs:

  • Die Schriftart und Schriftgröße.

  • Die Farben der Textbearbeitung, wie z. B. die Textgrafik auf der Bildlaufleiste, die Menüs, die Unterfensterleiste, die Fensterfarbe usw. In KDE Anwendungen, wie Kate oder KDevelop, werden diese Farben durch das globale KDE Plasma™,Farbschema definiert, die im Modul Farben in den Systemeinstellungen oder von der Anwendung selbst im Menü EinstellungenFarbschema festgelegt werden.

Die Farbschemata „Breeze-Hell“ und „Breeze-Dunkel“ mit der Syntaxhervorhebung für „C++“.

Die Farbschemata Breeze-Hell und Breeze-Dunkel mit der Syntaxhervorhebung für C++.

Farbschemata für KSyntaxHighlighting

Das Framework KSyntaxHighlighting enthält die Syntax-Highlighting-Engine und ist eine Bibliothek, die die Farbschemata bereitstellt und verwaltet. Die Bibliothek ist Teil von von KDE-Frameworks™ und wird in KDE-Texteditoren wie Kate, KWrite, Kile und KDevelop verwendet. Diese Abhängigkeit sieht wie folgt aus:

Abhängigkeit von KDE-Frameworks™ 5 Bibliotheken von Texteditoren.

Abhängigkeit von KDE-Frameworks™-Bibliotheken von Texteditoren.

KSyntaxHighlighting enthält eine Vielzahl von eingebauten Schemata, die auf der Seite Farbschemata der Webseite des Kate-Editors zu finden sind.

Das Framework KTextEditor enthält eine Benutzeroberfläche zum Erstellen und Bearbeiten von Farbschemata und ermöglicht das Importieren und Exportieren von Schemata. Sie können diesen Dialog in den Einstellungen des Texteditors öffnen. Weitere Informationen finden Sie im Abschnitt „Die GUI der Farbschemata“.

Die GUI zur Bearbeitung von Farbschemata in den Einstellungen von Kate.

Die GUI zur Bearbeitung von Farbschemata in den Einstellungen von Kate.

In den KDE-Texteditoren wie Kate oder KDevelop werden die Farbschemata von KSyntaxHighlighting seit KDE Frameworks™ 5.75 vom 10. Oktober 2020 verwendet. Zuvor wurden die Farbschemata von Kate (KConfig-basierte Schema-Einstellungen) verwendet und die sind nun veraltet. Es ist jedoch möglich, die alten Kate-Schemata in die KSyntaxHighlighting-Farbschemata umzuwandeln. Das KSyntaxHighlighting-Quelltextarchiv enthält das Skript utils/kateschema_to_theme_converter.py und den Ordner utils/schema-converter/ mit weiteren Hilfsprogrammen für diesen Zweck.

Das JSON-Format der Farbschemata

Überblick

Farbschemata werden in Dateien im JSON-Format mit der Dateierweiterung .theme gespeichert.

Im KSyntaxHighlighting-Quelltext befinden sich die JSON-Dateien der eingebauten Schemata im Ordner data/themes/. Die eingebauten Schemata werden in die Bibliothek KSyntaxHighlighting kompiliert, daher ist der Zugriff auf sie über den Quelltext oder durch Exportieren aus der GUI zur Verwaltung der Schemata von KTextEditor möglich.

Sie können auch auf einfache Weise zusätzliche oder benutzerdefinierte Schemata hinzuzufügen, die aus dem Dateisystem geladen werden. Benutzerdefinierte Schemadateien befinden sich im Ordner org.kde.syntax-highlighting/themes/ in Ihrem persönlichen Ordner, den Sie mit dem Befehl qtpaths --paths GenericDataLocation finden können, üblicherweise $HOME/.local/share/ und /usr/share/.

Bei Flatpak- und Snap-Paketen funktioniert der obige Ordner nicht, da der Speicherort der Daten für jede Anwendung unterschiedlich ist. In einer Flatpak-Anwendung ist der Speicherort der benutzerdefinierten Schemadateien normalerweise $HOME/.var/app/flatpak-package-name/data/org.kde.syntax-highlighting/themes/ und in einer Snap-Anwendung ist dieser Ort $HOME/snap/snap-package-name/current/.local/share/org.kde.syntax-highlighting/themes/.

Auf Windows®-Systemen finden Sie diese Dateien unter %USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes. %USERPROFILE%. Dabei ist %USERPROFILE% normalerweise C:\Users\user-name.

Zusammenfassend lässt sich sagen, dass der Ordner für benutzerdefinierte Schemata bei den meisten Einrichtungen wie folgt aussieht:

Für lokale Benutzer$HOME/.local/share/org.kde.syntax-highlighting/themes/
Für alle Benutzer/usr/share/org.kde.syntax-highlighting/themes/
Für Flatpak-Pakete$HOME/.var/app/flatpak-package-name/data/org.kde.syntax-highlighting/themes/
Für Snap-Pakete$HOME/snap/snap-package-name/current/.local/share/org.kde.syntax-highlighting/themes/
Unter Windows®%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes

Wenn mehrere Schemadateien mit demselben Namen existieren, wird die Datei mit der höchsten Revision geladen.

Dit JSON-Struktur

Der Aufbau einer JSON-Datei wird auf dieser Webseite erläutert. Grundsätzlich besteht eine Datei im JSON-Format aus:

  • Sammlungen von Schlüssel/Wert-Paaren, getrennt durch Kommas und gruppiert in { }, auch Objekte genannt.

  • Sortierte Listen von Werten, getrennt durch Kommas und gruppiert in [ ], auch Feld genannt.

Die Bezeichnungen Schlüssel, Wert, Objekt und Feld werden hier verwendet. Falls Sie zum ersten Mal mit JSON-Dateien arbeiten, helfen die folgenden Beispiele beim Verständnis.

Hauptabschnitte der JSON-Farbschemadateien

Das Basisobjekt der Farbschemadateien im JSON-Format enthält die folgenden Schema-Schlüssel:

  • metadata: Dies ist obligatorisch. Der Wert ist ein Objekt mit den Metadaten des Schemas wie Name, Revision und Lizenz.

    Ausführliche Informationen dazu unter „Metadaten“.

  • Editor-Farben: Dies ist obligatorisch. Der Wert ist ein Objekt mit den Farben des Textbearbeitungsbereichs wie dem Hintergrund, dem Symbolrand und der Textdekoration.

    Ausführliche Informationen dazu unter „Editor-Farben“.

  • Textstile: Dies ist obligatorisch. Der Wert ist ein Objekt mit dem AttributStandard-Textstil der Syntaxhervorhebung. Jedes Attribut definiert seine Textfarbe, seine gewählte Textfarbe, oder ob es zum Beispiel fett oder kursiv sein soll. Die Textstile können aus den Attributen der Syntaxdefinitionsdateien referenziert werden.

    Ausführliche Informationen dazu unter „Standardtextstile“.

  • custom-styles: Ist optional. Definiert Textstile für die Attribute bestimmter Definitionen von Syntaxhervorhebungen. In einer Hervorhebungsdefinition wie Python oder Markdown können Sie einen anderen Textstil angeben, der den in text-styles definierten Standard überschreibt.

    Ausführliche Informationen dazu unter „Benutzerdefinierte Textstile für Hervorhebungen“.

Die Sprache JSON unterstützt keine Kommentare. Sie können jedoch mit dem optionalen Schlüssel _comments im Basisobjekt Kommentare schreiben. Wenn sie zum Beispiel ein bestehendes Schema anpassen, können Sie die URL des ursprünglichen Archivs angeben. Der praktischste Weg ist die Verwendung eines Felds mit Zeichenfolgen.

Nachfolgend finden Sie eine Beispieldatei für das Schema Breeze-Hell-. Um das Beispiel nicht zu lang werden zu lassen, enthalten die Objekte editor-colors und text-styles nicht alle alle erforderlichen Schlüssel. Sie können die vollständige Datei des Schemas Breeze-Hell aus dem KSyntaxHighlighting-Quelltextarchiv herunterladen.

{
    "_comments": [
        "This is a comment.",
        "If this theme is an adaptation of another, put the link to the original repository."
    ],
    "metadata": {
        "name" : "Breeze Light",
        "revision" : 5,
        "copyright": [
            "SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org>",
            "SPDX-FileCopyrightText: 2016 Dominik Haumann <dhaumann@kde.org>"
        ],
        "license": "SPDX-License-Identifier: MIT"
    },
    "editor-colors": {
        "BackgroundColor" : "#ffffff",
        "CodeFolding" : "#94caef",
        "BracketMatching" : "#ffff00",
        "CurrentLine" : "#f8f7f6",
        "IconBorder" : "#f0f0f0",
        "IndentationLine" : "#d2d2d2",
        "LineNumbers" : "#a0a0a0",
        "CurrentLineNumber" : "#1e1e1e",
        The other editor color keys...

    },
    "text-styles": {
        "Normal" : {
            "text-color" : "#1f1c1b",
            "selected-text-color" : "#ffffff",
            "bold" : false,
            "italic" : false,
            "underline" : false,
            "strike-through" : false
        },
        "Keyword" : {
            "text-color" : "#1f1c1b",
            "selected-text-color" : "#ffffff",
            "bold" : true
        },
        "Function" : {
            "text-color" : "#644a9b",
            "selected-text-color" : "#452886"
        },
        "Variable" : {
            "text-color" : "#0057ae",
            "selected-text-color" : "#00316e"
        },
        The other text style keys...

    },
    "custom-styles": {
        "ISO C++": {
            "Data Type": {
                "bold": true,
                "selected-text-color": "#009183",
                "text-color": "#00b5cf"
            },
            "Keyword": {
                "text-color": "#6431b3"
            }
        },
        "YAML": {
            "Attribute": {
                "selected-text-color": "#00b5cf",
                "text-color": "#00b5cf"
            }
        }
    }
}

Metadaten

Das JSON Objekt des Schlüssels metadata enthält die wichtigsten Informationen über das Schema. Dieses Objekt hat die folgenden Schlüssel:

  • Name: Dies ist eine Zeichenfolge mit dem Name der Sprache. Dies wird in den Menüs und Dialogen angezeigt und ist verpflichtend.

  • revision: Es ist eine ganze Zahl. die die aktuelle Revision der Schemadatei angibt. Wann immer Sie eine Farbschemadatei aktualisieren, müssen Sie diese Zahl vergrößern. Diese Wert ist erforderlich.

  • Lizenz: Eine Zeichenfolge, die die Lizenz des Schemas definiert, unter Verwendung des Lizenzbezeichner SPDX-License-Identifier aus dem Standard SPDX-Lizenzkommunikationsformat. Dies ist optional.

    Die vollständige Liste der SPDX-Lizenzbezeichner können Sie hier einsehen.

  • copyright: Ein Feld mit Zeichenfolgen, das die Autoren des Schemas angibt, mit SPDX-FileCopyrightText aus dem Standard SPDX-Lizenzkommunikationsformat. Dies ist optional.

"metadata": {
    "name" : "Breeze Light",
    "revision" : 5,
    "copyright": [
        "SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org>",
        "SPDX-FileCopyrightText: 2016 Dominik Haumann <dhaumann@kde.org>"
    ],
    "license": "SPDX-License-Identifier: MIT"
}

Farben im Detail:

In diesem Abschnitt werden all verfügbaren Attribute und Einstellungen für Farben aufgeführt:

Editor-Farben

Entspricht den Farben im Editorbereichs.

In der JSON-Schemadatei ist der Wert des entsprechenden Schlüssels editor-colors ein object wobei jeder Schlüssel auf eine Attribut-Farbe des des Texteditors verweist. Hier sind alle verfügbaren Schlüssel notwendig, ihre Werte sind Zeichenfolgen mit hexadezimalen Farbcodes wie #00B5CF.

In der GUI zum Verwalten von Schemata für KTextEditor können diese Attribute auf der Karteikarte Farben ändern.

Folgende Schlüssel sind verfügbar: Die Schlüssel aus der JSON-Datei sind fett, die Namen in der GUI sind in Klammern angegeben.

Hintergrundfarben des Editors
BackgroundColor (Textbereich)

Dies ist die Standardhintergrundfarbe für den Editorbereich, die vorherrschende Farbe im Editorbereich.

TextSelection (Ausgewählter Text)

Dies ist die Hintergrundfarbe für ausgewählten Text.

CurrentLine (Aktuelle Zeile)

Setzt die Farbe für die aktuelle Zeile. Die Farbe ist ein klein wenig anders als die normale Hintergrundfarbe, sodass Sie die aktuelle Zeile schnell wiederfinden.

SearchHighlight (Suchen-Hervorhebung)

Die Farbe für den Text, der bei der letzten Suche gefunden wurde.

ReplaceHighlight (Ersetzen-Hervorhebung)

Die Farbe für den Text, der bei der letzten Suche gefunden wurde.

Symbolrand
IconBorder (Hintergrundbereich)

Diese Farbe wird für den Hintergrund des Symbolrandes und des Zeilennummerrandes an der linken Seite des Editorfensters verwendet.

LineNumbers (Zeilennummern)

Diese Farbe wird für die Zeilennummern am linken Rand des Editorbereiches verwendet.

CurrentLineNumber (Aktuelle Zeilennummer)

Diese Farbe wird verwendet, um die Zeilennummer der aktuellen Zeile darzustellen und wird auf der linken Seite der Ansicht eingeblendet. Wenn Sie dies etwas anders als fürLineNumbers einstellen, erleichtert das die aktuellen Zeile im Blick zu behalten.

Separator (Trennlinie)

Diese Farbe wird verwendet, um die senkrechte Linie zu zeichnen, die den Symbolrand vom Hintergrund des Textbereichs trennt.

WordWrapMarker (Markierungen für Zeilenumbrüche)

Diese Farbe wird benutzt, wenn am linken Rand angezeigt wird, dass Zeilen dynamisch umgebrochen und eingerückt sind, sowie auch für die Markierung von festen Zeilenumbrüchen.

CodeFolding (Quelltextausblendung)

Mit dieser Farbe wird der Abschnitt des Quelltextes hervorgehoben, der beim Klicken auf den Pfeil zur Quelltextausblendung am linken Rand des Dokuments ausgeblendet wird Weitere Informationen finden Sie im Abschnitt Quelltextausblendung.

ModifiedLines (Geänderte Zeilen)

Mit dieser Farbe werden links neben dem Dokument Zeilen hervorgehoben, die in dieser Sitzung geändert wurden aber noch nicht gespeichert sind. Weitere Informationen finden Sie unter „Kennzeichnung von Änderungen in Textzeilen“.

SavedLines (Gespeicherte Zeilen)

Mit dieser Farbe werden links neben dem Dokument Zeilen hervorgehoben, die in dieser Sitzung geändert wurden und bereits gespeichert sind. Weitere Informationen finden Sie unter „Kennzeichnung von Änderungen in Textzeilen“.

Textdekorationen
SpellChecking (Linie für Rechtschreibfehler)

Dies legt die Farbe der Linie fest, die zum Markieren von Rechtschreibfehlern verwendet wird.

TabMarker (Markierungen für Tabulatoren und Leerzeichen)

Diese Farbe wird für dir Markierung von Tabulatoren und Leerzeichen verwendet, wenn Symbole für Wortzwischenräume angezeigt werden.

IndentationLine (Einrückungslinie)

Diese Farbe wird verwendet,um eine Linie links von eingerückten Textblöcken anzuzeigen, wenn diese Funktion aktiviert ist.

BracketMatching (Hervorhebung für Klammern)

Diese Farbe wird für den Hintergrund von zusammengehörenden Klammern verwendet.

Markierungsfarben
MarkBookmark (Lesezeichen)

Mit dieser Farbe werden Lesezeichen angezeigt. Beachten Sie, dass diese Farbe eine Deckkraft von 22 % (und 33 % für die aktuelle Zeile) in Bezug auf den Hintergrund hat. Weitere Informationen finden Sie unter „Lesezeichen benutzen“.

MarkBreakpointActive (Aktiver Haltepunkt)

In dieser Farbe wird vom GDB-Modul ein aktiver Haltepunkt angezeigt, Beachten Sie, dass diese Farbe eine Deckkraft gegenüber dem Hintergrund hat. Weitere Informationen finden Sie in der Dokumentation zum GDB-Modul.

MarkBreakpointReached (Erreichter Haltepunkt)

In dieser Farbe wird vom GDB-Modul ein Haltepunkt angezeigt, der bei der Fehlersuche erreicht wurde. Beachten Sie, dass diese Farbe eine Deckkraft gegenüber dem Hintergrund hat. Weitere Informationen finden Sie in der Dokumentation zum GDB-Modul.

MarkBreakpointDisabled (Nicht aktiver Haltepunkt)

In dieser Farbe wird vom GDB-Modul ein nicht aktiver Haltepunkt angezeigt, Beachten Sie, dass diese Farbe eine Deckkraft gegenüber dem Hintergrund hat. Weitere Informationen finden Sie in der Dokumentation zum GDB-Modul.

MarkExecution (Ausführung)

In dieser Farbe wird vom GDB-Modul die zur Zeit ausgeführte Zeile angezeigt, Beachten Sie, dass diese Farbe eine Deckkraft gegenüber dem Hintergrund hat Weitere Informationen finden Sie in der Dokumentation zum GDB-Modul.

MarkWarning (Warnung)

Mit dieser Farbe wird vom Erstellen-Modul eine Zeile eingefärbt, für die Compiler eine Warnung ausgegeben hat. Beachten Sie, dass diese Farbe eine Deckkraft gegenüber dem Hintergrund hat. Weitere Informationen finden Sie in der Dokumentation zum Erstellen-Modul.

MarkError (Fehler)

Mit dieser Farbe wird vom Erstellen-Modul eine Zeile eingefärbt, für die Compiler einen Fehler ausgegeben hat Beachten Sie, dass diese Farbe eine Deckkraft gegenüber dem Hintergrund hat. Weitere Informationen finden Sie in der Dokumentation zum Erstellen-Modul.

Textvorlagen & Textbausteine
TemplateBackground (Hintergrund)

In dieser Farbe wird der Hintergrund eines Textbausteins in Kate angezeigt. Weitere Informationen dazu finden Sie in der Dokumentation zu Kate-Textbausteinen.

TemplatePlaceholder (Editierbarer Platzhalter)

In dieser Farbe wird ein Platzhalter eines Textbausteins in Kate angezeigt, den Sie zur manuellen Bearbeitung anklicken können. Weitere Informationen dazu finden Sie in der Dokumentation zu Kate-Textbausteinen.

TemplateFocusedPlaceholder (Editierbarer Platzhalter mit Fokus)

In dieser Farbe wird der gerade bearbeitete Platzhalter eines Textbausteins in Kate angezeigt Weitere Informationen dazu finden Sie in der Dokumentation zu Kate-Textbausteinen.

TemplateReadOnlyPlaceholder (Nicht editierbarer Platzhalter)

Diese Farbe wird im Textbausteinmodul von Kate verwendet, um Platzhalter zu kennzeichnen, der nicht manuell editiert werden kann und zum Beispiel automatisch ausgefüllt wird. Weitere Informationen finden Sie in der Dokumentation zu Kate-Textbausteinen.

Standardtextstile

Die Stile für Standardtext sind von den Stilen für Hervorhebungen abgeleitet, sodass der Editor Texte immer in der gleichen Form anzeigen kann. So sind zum Beispiel Kommentare unabhängig vom Textformat oder der Programmiersprache des Quelltextdokuments immer in der gleichen Farbe gekennzeichnet.

Anmerkung

Diese Textstile können von den Standardstilen in den Definitionen der XML-Dateien zur Syntaxhervorhebung referenziert werden. Zum Beispiel entspricht das Attribut Normal dem Attribut dsNormal in den XML-Dateien, und DataType entspricht dsDataType. Weitere Informationen finden Sie in der „Verfügbare Standardstile“Dokumentation zur Syntaxhervorhebung.

Tipp

Achten Sie darauf, lesbare Farben mit gutem Kontrast zu wählen, besonders in Kombination mit dem Editor-Farben. Siehe auch „Kontrast von Textfarben“.

In der JSON-Datei, hat der jeweilige Schlüssel text-styles als Wert ein Objekt, wobei jeder Schlüssel dem Namen eines Standard-Textstils in den in den Definitionen für die Syntaxhervorhebung entspricht. Hier sind alle verfügbaren Stil-Schlüsselwörter für Text obligatorisch , diese sind unten aufgeführt.

"text-styles": {
    "Normal" : {
        "text-color" : "#1f1c1b",
        "selected-text-color" : "#ffffff",
        "bold" : false,
        "italic" : false,
        "underline" : false,
        "strike-through" : false
    },
    "Keyword" : {
        "text-color" : "#1f1c1b",
        "selected-text-color" : "#ffffff",
        "bold" : true
    },
    "Function" : {
        "text-color" : "#644a9b",
        "selected-text-color" : "#452886"
    },
    The other text style keys...
}
Jeder Schlüssel des Standardtextstils enthält ein JSON-Objekt als Wert, in dem Werte wie color, bold, italic, usw. angegeben werden. Es gibt folgende Schlüssel:

text-color: Eine Zeichenfolge mit der Textfarbe im hexadezimalen Farbcode. Dieser Schlüssel/Wert ist erforderlich.

selected-text-color: Die Textfarbe für ausgewählten Text hat in der Regel den gleichen Wert wie text-color. Wenn der Text ausgewählt ist, wird der Hintergrund durch den Wert von TextSelection in der Editor-Farben definiert, daher sollte der Text einen guten Kontrast haben und mit diesem Hintergrund gut lesbar ist. Der Wert ist eine Zeichenfolge mit einem hexadezimalen Farbcode. Dieser Schlüssel/Wert muss angegeben werden.

bold: Ein Boolescher Wert, der festlegt, ob der Text in Fettschrift angezeigt wird. Dieser Schlüssel ist optional, der Standardwert ist false.

italic: Ein Boolescher Wert, der festlegt, ob der Text kursiv angezeigt wird. Dieser Schlüssel ist optional, der Standardwert ist false.

underline: Ein Boolescher Wert, der festlegt, ob der Text in unterstrichen angezeigt wird. Dieser Schlüssel ist optional, der Standardwert ist false.

strike-through: Ein Boolescher Wert, der festlegt, ob der Text in durchgestrichen angezeigt wird. Dieser Schlüssel ist optional, der Standardwert ist false.

background-color: Bestimmt die Hintergrundfarbe von Text und wird zum Beispiel in Warnungen (Alerts) in Kommentaren verwendet. Der Wert ist eine Zeichenfolge mit einem hexadezimalen Farbcode. Dieser Schlüssel ist optional, als Voreinstellung gibt es keine Hintergrundfarbe.

selected-background-color: Bestimmt die Hintergrundfarbe von ausgewähltem Text. Der Wert ist eine Zeichenfolge mit einem hexadezimalen Farbcode. Dieser Schlüssel ist optional, als Voreinstellung gibt es keine Hintergrundfarbe.

In der GUI zur Verwaltung der Farbthemen von KTextEditor können diese Attribute auf der Karteikarte Standardtextstile geändert werden. Der Name in der Liste der Stile verwendet den für das Element eingerichteten Stil, so dass Sie beim Ändern eines Stils sofort eine Vorschau erhalten. Jeder Stil ermöglicht die Auswahl gemeinsamer Attribute sowie von Vorder- und Hintergrundfarben. Um eine Hintergrundfarbe zu deaktivieren, klicken Sie mit der rechten Maustaste, um das Kontextmenü zu verwenden.

Folgende Schlüssel für Textstile sind verfügbar: Die Schlüssel aus der JSON-Datei sind fett geschrieben, die Namen in der GUI sind in Klammern angegeben, falls sie anders sind.

Normaltext & Quelltext

Normal: Standard-Textstil für normalen Text und Quelltext ohne besondere Hervorhebung.

Keyword: Textstil für eingebaute Sprach-Schlüsselwörter.

Function: Textstil für Funktionsaufrufe und -definitionen.

Variable: Textstil für Variablen, falls zutreffend. Zum Beispiel beginnen Variablen in PHP/Perl typischerweise mit einem $, also werden alle Bezeichner mit dem Muster $foo als Variable hervorgehoben.

ControlFlow (Kontrollfluss): Textstile für Schlüsselwörter den Programmablauf wie zum Beispiel if, then, else, return, switch, break, yield, continue, usw.

Operator: Textstil für Operatoren wie +, -, *, /, % usw.

BuiltIn > (Built-in): Textstil eingebaute Funktionen, Klassen und Objekte.

Extension: Textstil für bekannte Erweiterungen wie zum Beispiel Qt™-Klassen und Funktionen/Makros in C++ und Python oder Boost.

PreprocessorTextstil für Präprozessor-Anweisungen oder Makro-Definitionen.

Attribute: Textstil für Anmerkungen oder Attribute von Funktionen oder Objekten wie zum Beispiel @override in Java oder __declspec(...) und __attribute__((...)) in C++.

Zahlen, Typen & Konstanten

DataType (Datentyp): Textstil für eingebaute Datentypen wie int, char, float, void, u64 usw.

DecVal (Dezimal/Wert): Textstil für Dezimalwerte.

BaseN (Base-N Integer): Textstil für Werte mit einer anderen Zahlenbasis als 10.

Float (Fließkommazahl): Textstil für Gleitkommawerte.

Constant: Textstile für Konstanten in Sprachen oder für benutzerdefinierte Konstanten wie zum Beispiel True, False, None in Python oder nullptr in C/C++; oder mathematische Konstanten wie PI.

Zeichenfolgen & Zeichen

Char ( Zeichen): Textstil für einzelne Zeichen wie 'x'.

SpecialChar (Sonderzeichen): Textstil für maskierte Zeichen in Zeichenfolgen, z.B. hello , und andere Zeichen mit besonderer Bedeutung in Zeichenfolgen, z. B. Ersetzungen oder Regex-Operatoren.

String:Textstil für Zeichenfolgen wie Hallo Welt.

VerbatimString (Wörtliche Zeichenfolge): Textstile für wörtliche oder unveränderte Zeichenfolgen wie raw \backlash in Perl, CoffeeScript und Shells wie auch r'\raw' in Python oder wie in HERE-Dokumenten.

SpecialString (Besondere Zeichenfolge): Textstil für besondere Zeichenfolgen wie reguläre Ausdrücke in ECMAScript, im LATEX-Mathematikmodus, SQL, usw.

Import (Importe, Module, Includes): Textstil für Includes, Importe, Module oder LATEX-Pakete.

Kommentare & Dokumentation

Comment: Textstile für normale Kommentare.

Documentation: Textstil für Kommentare zur API-Dokumentation wie z. B. /** doxygen comments */ oder """docstrings""".

Annotation: Textstil für Anmerkungen in Kommentaren oder Dokumentationsbefehle wie @param in Doxygen oder JavaDoc.

KommentarVar (Kommentar-Variable): Textstil, der auf Variablennamen verweist, die in obigen Befehlen in einem Kommentar verwendet werden, wie z. B. foobar in @param foobar in Doxygen oder JavaDoc.

RegionMarker (Bereichsmarkierungr): Textstil für das Markieren von Bereichen, typischerweise definiert durch//BEGIN und //END in Kommentaren.

Information:Textstil für Notizen und Hinweise wie zum Beispiel Schlüsselwörter wie @note in Doxygen.

Warning: Textstil für Warnungen wie das Schlüsselwort @warning in Doxygen.

Alert: Textstil für spezielle Wörter in Kommentaren wie TODO, FIXME, XXXX und WARNING.

Verschiedenes

Error: Textstil für Hervorhebungen von Fehlern und für fehlerhafter Syntax.

Others: Textstile für Attribute, die nicht für einen der anderen Standardstile zutreffen.

Benutzerdefinierte Textstile für Hervorhebungen

Hier können Sie Textstile für eine bestimmte Syntaxhervorhebung festlegen Definition festlegen und damit den Standard-Textstil überschreiben wie in dem vorherigen Abschnitt beschrieben.

In der JSON-Schemadatei entspricht dies dem Schlüssel custom-styles, dessen Wert ein ein Objekt ist, wobei jeder Unterschema-Schlüssel mit dem Name einer Syntaxhervorhebungsdefinition korrespondiert. Sein Wert ist ein Objekt, bei dem jeder Schlüssel auf den Name des Stilattributs verweist, der in den itemData-Elementen der der Syntaxhervorhebung-sXML-Datei definiert ist. Der jeweilige Wert ist ein Unterobjekt mit den Schlüsseln text-color, selected-text-color, bold, italic, underline, strike-through, background-color und selected-background-color, definiert im vorherigen Abschnitt. Jeder dieser Werte ist optional, denn wenn sie nicht vorhanden sind, wird der in text-styles eingestellte Stil berücksichtigt.

Zum Beispiel hat die Syntaxhervorhebungsdefinition für ISO C++ in diesem Quelltext einen speziellen Textstil für die Attribute Type Modifiers und Standard Classes. In der zugehörigen XML-Datei isocpp.xml verwendet das definierte Attribut Standard Classes den Standardstil BuiltIn (oder dsBuiltIn). In diesem Attribut wird nur der Wert von text-color durch die neue Farbe #6431b3 überschrieben .

"custom-styles": {
    "ISO C++": {
        "Standard Classes": {
            "text-color": "#6431b3"
        },
        "Type Modifiers": {
            "bold": true,
            "selected-text-color": "#009183",
            "text-color": "#00b5cf"
        }
    }
}

Anmerkung

  • Sie sollten beachten, dass diese Textstile den Attributnamen zugeordnet sind, die in den XML -Syntaxhervorhebungsdateien definiert sind. Wenn eine XML-Datei aktualisiert und einige Attribute umbenannt oder entfernt werden, ist der im eigenen Schema definierte Stil nicht mehr gültig.

  • Definitionen für Syntaxhervorhebung enthalten oft andere Definitionen. Die Syntaxhervorhebung für QML zum Beispiel enthält die Syntaxhervorhebung für JavaScript, da beide die gleichen Funktionen für die Hervorhebung verwenden.

In der GUI zum Verwalten von Schemata von KTextEditor können Sie diese Attribute auf der Karteikarte Textstile für Hervorhebungen verwalten. Als Voreinstellung wird die Hervorhebung des aktuellen Dokuments vom Editor eingestellt. Sie werden feststellen, dass viele Hervorhebungen andere Hervorhebungen enthalten, die durch Gruppen in der Stilliste repräsentiert werden. Zum Beispiel importieren die meisten Hervorhebungen die Hervorhebung Alert und viele Quelltextformate importieren die Hervorhebung Doxygen.

Die GUI der Farbschemata

Farbschemata lassen sich am einfachsten über die GUI im Einrichtungs-Dialog von KTextEditorerstellen und bearbeiten. .Um diesen Dialog zu öffnen, wählen Sie EinstellungenAnwendung einrichten ... aus der Menüleiste in Ihrer Textverarbeitung. Wählen Sie dann Farbschema in der Seitenleiste.

Kates Einrichtungsdialog mit der Bearbeitung von Farbschemata.

Kates Einrichtungsdialog mit der Bearbeitung von Farbschemata.

In diesem Dialog können Sie alle alle Farben in einem beliebigen Schema einstellen, neue Schemata erstellen/kopieren, löschen, sie in eine .theme-Datei im JSON Format exportieren oder aus externen .theme-Dateien importieren. Jedes Schema hat Einstellungen für Textfarben und Stile.

Die eingebauten Schemata können als Voreinstellung nicht geändert werden. Dazu müssen Sie sie unter einem neuen Namen kopieren.

Um ein Farbschema dauerhaft in im Texteditor zu verwenden, müssen Sie es im Kombinationsfeld mit der Bezeichnung Standardschema für Anwendung am unteren Rand des Dialogs auswählen und dann Anwenden oder OK drücken. Standardmäßig wird die Automatische Auswahl aktiviert. Damit wird ein geeigneteres Farbschema passend zum KDE Plasma™-Farbschema für die Textbearbeitung gewählt. Normalerweise wird zwischen Breeze-Hellt und Breeze-Dunkel gewählt.

Tipp

Sie können das globale Farbschema für KDE im Modul Farben in den Systemeinstellungen anpassen. Für einzelne Anwendungen wie Kate und KDevelop können Sie ein Schema auch mit EinstellungenFarbschema ändern.

Ein neues Schema erstellen

Um ein neues Farbschema zu erstellen, müssen Sie zuerst ein vorhandenes Schema kopieren, Wählen Sie ein vorhandenes Schema aus, das Sie als Grundlage verwenden möchten wie Breeze-Hell oder Breeze-Dunkel. Klicken Sie dann auf Kopieren und geben den Namen für das neue Schema ein.

Möchten Sie ein eingebautes oder nur lesbares Schema verändern, müssen Sie es zuerst unter einem anderen Namen kopieren.

JSON-Schemadateien importieren oder exportieren

Mit Exportieren können Sie ein ausgewähltes Schema einschließlich der eingebauten Schemata in eine JSON-Datei mit der Dateierweiterung .theme exportieren. Damit öffnen Sie einen Dialog zum Speichern der Datei. Um eine Farbschema aus einer externen JSON-Datei hinzuzufügen, drücken Sie den Knopf Importieren und wählen dann die .theme-Datei im Dialog.

Tipp

  • Wie oben erwähnt, werden benutzerdefinierte Farbschema-Dateien im Ordner org.kde.syntax-highlighting/themes/ abgelegt. Wenn Sie ein Farbschema kopieren oder neu erstellen, wird es automatisch dort gespeichert. Auch das Importieren oder Hinzufügen eines Farbschemas entspricht dem Kopieren einer externen .theme-Datei in diesen Ordner. KSyntaxHighlighting holt sich automatisch Schemadateien aus diesem Ordner.

  • Wenn Sie ein von Ihnen erstelltes Schema veröffentlichen wollen, ist es unbedingt erforderlich, das Metadaten-Objekt der JSON Datei zu prüfen, eine passende Lizenz hinzuzufügen und die Revisionsnummer zu überprüfen.

Bearbeitung von Farbschemata

Farben

Hier können die Farben des Editorbereichs angepasst werden. Mehr Informationen dazu finden Sie in „Editor-Farben“.

Standardtextstile

Die Stile für Standardtext sind von den Stilen für Hervorhebungen abgeleitet, sodass der Editor Texte immer in der gleichen Form anzeigen kann. So sind zum Beispiel Kommentare unabhängig vom Textformat oder der Programmiersprache des Quelltextdokuments immer in der gleichen Farbe gekennzeichnet.

Der Name in der Liste der Stile wird so wie Elemente im Dokument mit diesem Kontext angezeigt. So erhalten Sie sofort eine Vorschau beim Bearbeiten.

Zu jedem Stil können Sie Eigenschaften sowie Vordergrund- und Hintergrundfarbe einstellen. Um eine Hintergrundfarbe zu löschen, benutzen Sie die rechte Maustaste, um das Kontextmenü aufzurufen.

Die Attribute in diesem Bereich werden in „Standardtextstile“ erläutert.

Textstile für Hervorhebungen

Hier können Sie die Textstile für bestimmte Hervorhebungsdefinitionen einstellen. Der Editor startet diese Seite mit der Hervorhebung für das aktuelle Dokument. Wenn Sie an einer anderen Hervorhebungsdefinition Veränderungen vornehmen wollen, dann wählen Sie diese mit dem Auswahlfeld Hervorhebung aus.

Der Name in der Liste der Stile wird so wie Elemente im Dokument mit diesem Kontext angezeigt. So erhalten Sie sofort eine Vorschau beim Bearbeiten.

Zu jedem Stil können Sie Eigenschaften sowie Vordergrund- und Hintergrundfarbe einstellen. Um eine Hintergrundfarbe zu löschen, benutzen Sie die rechte Maustaste, um das Kontextmenü aufzurufen. Zusätzlich gibt es noch ein Feld, das anzeigt, ob der eingestellte Stil der Standarddefinition entspricht - wenn nicht klicken Sie einfach auf dieses Feld, um die Standardeinstellungen herzustellen.

Sie werden feststellen, dass viele Hervorhebungen andere Hervorhebungen enthalten, die in Untergruppen geordnet sind. So werden zum Beispiel die Hervorhebungen für Warnungen (Alerts) in die meisten Hervorhebungen importiert, viele Quelltexte importieren außerdem die Hervorhebungen für Doxygen. Wenn Sie Änderungen an den importierten Hervorhebungen vornehmen, dann werden nur die Stile im bearbeiteten Format beeinflusst. Andere Formate, die die gleichen Hervorhebungen importiert haben, werden nicht beeinflusst.

Tipps & Tricks

Kontrast von Textfarben

Ein wichtiger Aspekt bei der Arbeit mit Farbschemata ist die Wahl eines Textkontrasts, der die Lesbarkeit des Textes erleichtert, insbesondere in Kombination mit dem Hintergrund.

Kontrast ist eine Anwendung zur Überprüfung von Farbkontrasten. Damit erkennen Sie, ob die Kombinationen aus Textfarbe und Hintergrundfarbe lesbar und zugänglich sind, daher ist dies ein ausgezeichnetes Werkzeug für die Erstellung von Farbschemata.

Sie können Kontrast von der KDE-Webseite mit Anwendungen oder als Flatpak-Paket auf Flathub herunterladen (nur für GNU/Linux).

Die GNOME-Anwendung Contrast funktioniert ähnlich. Sie können sie als Flatpak-Paket auf Flathub herunterladen (nur für GNU/Linux).

Vorschläge zur Konsistenz bei der Syntaxhervorhebung

KSyntaxHighlighting enthält mehr als 300 Definitionen für Syntaxhervorhebung, daher sollten Sie dafür sorgen, dass Ihr neues Schema in allen Definitionen der Syntaxhervorhebung gut aussieht. Die eingebauten Farbschemata haben folgende Gemeinsamkeiten, die Sie beachten sollten, um eine eine korrekte Darstellung aller Definitionen der Syntaxhervorhebung zu erhalten:

  • Verwenden Sie Fettschrift für Keyword und ControlFlow als Textstile.

  • Benutzen Sie keine Hintergrundfarbe in einem Textstil, außer bei Alert und RegionMarker.

Die meisten der Syntaxhervorhebungen sind für die Standarddesigns Breeze-Hell und Breeze-Dunkel optimiert.Daher sollten Sie für die Einheitlichkeit ähnlicher Farben verwenden wie in den Textstilen, wie grün für Präprozessor und Andere, blau für Datentyp und Attribut oder purpur für Funktion.

Beachten Sie, dass diese Empfehlungen nicht zwingend für das Erstellen und Veröffentlichen eines Schemas sind.