I temi di colori definiscono i colori dell'area di modifica del testo e dell'evidenziazione della sintassi. Un tema di colori comprende quanto segue:
Lo stile del testo, usato per l'evidenziazione della sintassi attraverso gli attributi di stile predefiniti, ad esempio il colore del testo e di quello del testo selezionato.
Lo sfondo dell'area di modifica del testo, inclusa la selezione del testo e della riga corrente.
Il bordo dell'icona dell'area del testo: il loro sfondo, la riga di separazione, i numeri di riga, i marcatori di ritorno a capo della riga, i segni per le righe modificate e di raggruppamento del codice.
I decoratori di testo, come i marcatori di ricerca e quelli di rientro e di tabulazione o di spazio, la corrispondenza delle parentesi e il correttore ortografico.
Segnalibri e frammenti.
Per evitare confusione, quanto segue è fuori ambito:
Il tipo di carattere e la sua dimensione.
I colori dell'applicazione di modifica del testo, ad esempio quelli della mappa nella barra di scorrimento, del menu, della barra del titolo della finestra, eccetera. Nelle applicazioni di KDE, quali Kate o KDevelop, questi colori sono definiti dallo
schema di colori globali di KDE Plasma™, che si trova nel modulo «Colori» delle Impostazioni di sistema o nell'applicazione stessa, nel menu → .

I temi di colori «Brezza chiaro» e «Brezza scuro» con l'evidenziazione della sintassi del «C++».
Il framework KSyntaxHighlighting, che è il motore dell'evidenziazione della sintassi, è la libreria che fornisce e gestisce i temi di colori. È parte di KDE Frameworks™ e viene usata negli editor di testo di KDE come Kate, KWrite, Kile e KDevelop. Questa dipendenza assomiglia a quanto segue:

Dipendenze delle librerie di KDE Frameworks™ negli editor di testo.
KSyntaxHighlighting include una varietà di temi incorporati che vengono visualizzati nella pagina «temi di colori» sul sito web dell'editor Kate.
Il framework KTextEditor, che è il motore di modifica dei testi, fornisce un'interfaccia utente per creare e per modificare i temi di colore, incluso uno strumento per importarli e per esportarli. Questo è il modo più semplice di creare e di modificare i temi, a cui puoi accedere dalla finestra «Configura» dell'editor. Maggiori dettagli in la sezione chiamata «L'GUI temi di colori».

L'GUI per gestire i temi di colori nelle impostazioni di Kate.
È importante menzionare che negli editor di testo di KDE, come Kate o KDevelop, i temi di colori di KSyntaxHighlighting vengono usati da KDE Frameworks™ 5.75, rilasciato il 10 ottobre 2020. In precedenza venivano usati gli schemi di colori di Kate (schemi di configurazione basati su KConfig) che ora sono deprecati. Ad ogni modo è possibile convertire i vecchi schemi di Kate nei temi di colori di KSyntaxHighlighting: il deposito di KSyntaxHighlighting include a questo scopo lo script utils/kateschema_to_theme_converter.py e il programma utils/schema-converter/.
I temi di colori sono memorizzati in file in formato JSON con l'estensione .theme.
Nel codice sorgente di KSyntaxHighlighting i file JSON dei temi incorporati sono nella cartella data/themes/. Nota che negli editor di testo i temi incorporati sono compilati nella libreria KSyntaxHighlighting, quindi il modo per accedervi è tramite il codice sorgente oppure esportandoli dalla GUI che gestisce i temi di KTextEditor.
È anche possibile aggiungere facilmente dei temi aggiuntivi o personalizzati, che vengono caricati dal file system. I file dei temi personalizzati dall'utente si trovano nella cartella org.kde.syntax-highlighting/themes/ che si trova nella cartella utente e vengono trovati col comando qtpaths; di solito sono --paths GenericDataLocation e $HOME/.local/share//usr/share/.
Per i pacchetti Flatpak e Snap la cartella qui sopra non funzionerà perché la posizione dei dati è diversa per ogni applicazione. In un'applicazione Flatpak generalmente la posizione dei file dei temi personalizzati è , mentre in una Snap è $HOME/.var/app/nome-del-pacchetto-flatpak/data/org.kde.syntax-highlighting/themes/. $HOME/snap/nome-del-pacchetto-snap/current/.local/share/org.kde.syntax-highlighting/themes/
In Windows® questi file si trovano in %USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes. %USERPROFILE% viene generalmente espanso in C:\Users\.utente
In sintesi, per la maggior parte delle configurazioni la cartella dei temi personalizzati è la seguente:
| Per l'utente locale | |
| Per tutti gli utenti | /usr/share/org.kde.syntax-highlighting/themes/ |
| Per i pacchetti Flatpak | |
| Per i pacchetti Snap | |
| In Windows® | %USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes |
| In macOS® | |
Se esistono più temi con lo stesso nome, verrà caricato quello che ha il valore più alto dell'attributo revision.
La struttura di un file JSON è spiegata nel loro sito web. Fondamentalmente il formato di file JSON consiste in:
Collezioni di coppie di chiavi e valori separate da virgole e raggruppate tra
{ }, che chiameremo «oggetti».Elenchi ordinati di valori separati da virgole e raggruppate tra
[ ], che chiameremo «vettori».
In questo articolo verrà usata la nomenclatura «chiave», «valore», «oggetto» e «vettore». Se è la prima volta che lavori con i file JSON la loro comprensione è semplice come guardare l'esempio qui sotto,
L'oggetto principale del file del tema di colori JSON contiene il seguente schema di chiavi:
metadata: è obbligatorio. Il valore è un oggetto coi metadati del tema, come il nome, la revisione e la licenza.È spiegato nei dettagli in la sezione chiamata «Metadati».
editor-colors: è obbligatorio. Il valore è un oggetto con i colori dell'area di modifica del testo, come lo sfondo il bordo dell'icona e le decorazioni del testo.È spiegato nei dettagli in la sezione chiamata «Modificare i colori».
text-styles: è obbligatorio. Il valore è un oggetto con gli attributi stili di testo predefiniti dell'evidenziazione della sintassi. Ciascun attributo definisce il suo colore del testo, colore del testo selezionato, o se, ad esempio, è in grassetto o in corsivo. Gli stili del testo possono essere referenziati dagli attributi dei file XML di definizione della sintassi.È spiegato nei dettagli in la sezione chiamata «Stili di testo predefiniti».
custom-styles: è facoltativo. Definisce gli stili di testo per gli attributi di definizioni di evidenziazione della sintassi specifiche. Ad esempio, in una definizione di evidenziazione comePythonoMarkdownpuoi specificare uno stile di testo diverso che sostituisce quello predefinito che è definito intext-styles.È spiegato nei dettagli in la sezione chiamata «Stili di evidenziazione del testo personalizzati».
Il linguaggio JSON non supporta i commenti, tuttavia puoi usare la chiave facoltativa _comments nell'oggetto principale per scrivere dei commenti; ad esempio, se stai adattando un tema esistente puoi mettere l'URL del deposito. Il modo più pratico è quello di usare un vettore di stringhe.
Qui sotto c'è un file di esempio del tema «Brezza chiaro». Puoi notare che, per evitare che l'esempio sia troppo lungo, gli oggetti editor-colors e text-styles, non contengano tutte le chiavi richieste. Puoi vedere l'intero archivio del tema «Brezza chiaro» nel deposito di KSyntaxHighlighting.
{
"_comments": [
"Questo è un commento.",
"Se questo tema è un adattamento di un altro, inserisci il collegamento alla sorgente d'installazione originale."
],
"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",
Le altre chiavi dei colori dell'editor...
},
"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"
},
Le altri chiavi di stile del testo...
},
"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"
}
}
}
}
L'oggetto JSON della chiave metadata contiene informazioni rilevanti sul tema. Questo oggetto ha le seguenti chiavi:
name: è una stringa impostata al nome del linguaggio. Appare successivamente nei menu e nelle finestre. È obbligatoria.revision: è un numero integer che specifica l'attuale revisione del file del tema. Assicurati di incrementare questo numero ogni volta che aggiorni un file di tema di colori. È obbligatoria.license: è una stringa che definisce la licenza del tema usando l'identificativoSPDX-License-Identifierdello standard del formato di comunicazione della licenza SPDX. È facoltativa.Qui puoi vedere l'elenco completo degli identificatori di licenza SPDX.
copyright: è un vettore di stringhe che specifica l'autore del tema usando l'identificativoSPDX-FileCopyrightTextdello standard del formato di comunicazione della licenza SPDX. È facoltativa.
"metadata": {
"name" : "Brezza chiaro",
"revision" : 5,
"copyright": [
"SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org>",
"SPDX-FileCopyrightText: 2016 Dominik Haumann <dhaumann@kde.org>"
],
"license": "SPDX-License-Identifier: MIT"
}
Questa sezione descrive in dettaglio tutti gli attributi di colore disponibili e le tutte le impostazioni di colore disponibili.
Corrisponde ai colori dell'area di modifica del testo.
Nel file di tema JSON la rispettiva chiave editor-colors ha come valore un oggetto nel quale ciascuna chiave fa riferimento ad un attributo di colore dell'editor di testo. Qui tutte le chiavi disponibili sono obbligatorie: i loro valori sono delle stringhe con i codici esadecimali dei colori, ad esempio «#00B5CF».
Nell'GUI per gestire i temi di KTextEditor questi attributi possono essere modificati nella scheda Colori.
Le chiavi disponibili sono le seguenti: quelle usate nel file JSON sono elencate in grassetto, mentre i nomi usati nell'GUI vengono mostrati tra parentesi.
- Colori di sfondo dell'editor
BackgroundColor(Area di testo)Questo è lo sfondo predefinito per l'area dell'editor, sarà il colore dominante dell'area principale.

TextSelection(Testo selezionato)Questo è lo sfondo del testo selezionato.

CurrentLine(Riga attuale)Imposta il colore della riga attuale. Se è un po' diverso da quello del testo normale, permette di mantenere attiva la riga.

SearchHighlight(Evidenziazione delle ricerche)Imposta il colore del testo che corrisponde all'ultima ricerca.

ReplaceHighlight(Evidenziazione delle sostituzioni)Imposta il colore del testo che corrisponde all'ultima operazione di sostituzione.

- Bordo delle icone
IconBorder(Area di sfondo)Questo colore viene usato per gli indicatori, i bordi per i numeri di riga e per gli indicatori di raggruppamento sul lato sinistro della vista dell'editor, quando sono mostrati.
LineNumbers(Numeri di riga)Questo colore viene usato per disegnare i numeri di riga sul lato sinistro della vista, quando sono mostrati.
CurrentLineNumber(Numero della riga attuale)Questo colore viene usato per disegnare il numero della riga attuale, nella parte sinistra della vista quando è visualizzato. Impostandolo leggermente diverso da «LineNumbers» può aiutare a mantenere attiva la riga attuale.
Separator(Separatore)Questo colore viene usato per disegnare una linea verticale che separa il bordo dell'icona dallo sfondo dell'area del testo.

WordWrapMarker(Segno di ritorno a capo)Questo colore viene usato per disegnare un motivo sulla sinistra delle righe fatte andare a capo automaticamente quando vengono allineate verticalmente, ed anche per l'indicatore di a capo statico.

CodeFolding(Raggruppamento del codice)Questo colore viene usato per evidenziare la sezione di codice che sarebbe raggruppata al clic sulla freccia di raggruppamento a sinistra del documento. Per maggiori informazioni, vedi la documentazione sul raggruppamento del codice.

ModifiedLines(Righe modificate)Questo colore viene usato per evidenziare, alla sinistra di un documento, le righe che sono state modificate ma non ancora salvate. Per maggiori informazioni, vedi la sezione chiamata «Indicatori di modifica delle righe».
SavedLines(Righe salvate)Questo colore viene usato per evidenziare indicare, alla sinistra di un documento, le righe che sono state modificate e salvate in questa sessione. Per maggiori informazioni, vedi la sezione chiamata «Indicatori di modifica delle righe».

- Decorazioni del testo
SpellChecking(Linea degli errori di ortografia)Questo colore viene usato per indicare gli errori di ortografia.

TabMarker(Segni di tabulazione e spazio)Questo colore viene usato per gli indicatori di spazi bianchi, quando sono abilitati.

IndentationLine(Linea di rientro)Questo colore viene usato per disegnare una linea alla sinistra dei blocchi rientrati, se questa funzionalità è abilitata.

BracketMatching(Evidenziazione delle parentesi)Questo colore viene usato per lo sfondo delle parentesi corrispondenti.

- Colori degli indicatori
MarkBookmark(Segnalibro)Questo colore viene usato per indicare i segnalibri. Nota che ha un'opacità del 22% (e del 33% per la riga attuale) rispetto allo sfondo. Per maggiori informazioni, vedi la sezione chiamata «Usare i segnalibri».

MarkBreakpointActive(Punto d'interruzione attivo)Questo colore viene usato dall'estensione GDB per indicare un punto d'interruzione attivo. Nota che questo colore ha un'opacità sullo sfondo. Per maggiori informazioni, vedi la documentazione dell'estensione GDB.
MarkBreakpointReached(Punto d'interruzione raggiunto)Questo colore viene usato dall'estensione GDB per indicare un punto d'interruzione che hai raggiunto durante il debugging. Nota che questo colore ha un'opacità sullo sfondo. Per maggiori informazioni, vedi la documentazione dell'estensione GDB.
MarkBreakpointDisabled(Punto d'interruzione disabilitato)Questo colore viene usato dall'estensione GDB per indicare un punto d'interruzione inattivo. Nota che questo colore ha un'opacità sullo sfondo. Per maggiori informazioni, vedi la documentazione dell'estensione GDB.
MarkExecution(Esecuzione)Questo colore viene usato dall'estensione GDB per indicare la riga attualmente in esecuzione. Nota che questo colore ha un'opacità sullo sfondo. Per maggiori informazioni, vedi la documentazione dell'estensione GDB.
MarkWarning(Avviso)Questo colore viene usato dall'estensione di compilazione per indicare una riga che ha causato un avviso del compilatore. Nota che questo colore ha un'opacità sullo sfondo. Per maggiori informazioni, vedi la documentazione dell'estensione di compilazione.
MarkError(Errore)Questo colore viene usato dall'estensione di compilazione per indicare una riga che ha causato un errore del compilatore. Nota che questo colore ha un'opacità sullo sfondo. Per maggiori informazioni, vedi la documentazione dell'estensione di compilazione.
- Modelli e frammenti di testo
TemplateBackground(Sfondo)Questo colore è usato dall'estensione dei frammenti di Kate per colorare lo sfondo di un frammento. Per maggiori informazioni, vedi la documentazione dei frammenti di Kate.
TemplatePlaceholder(Segnaposto modificabile)Questo colore viene usato dall'estensione dei frammenti di Kate per marcare un segnaposto su cui puoi fare clic per modificarlo manualmente. Per maggiori informazioni, vedi la documentazione dei frammenti di Kate.
TemplateFocusedPlaceholder(Segnaposto modificabile attivo)Questo colore viene usato dall'estensione dei frammenti di Kate per marcare il segnaposto che stai attualmente modificando. Per maggiori informazioni, vedi la documentazione dei frammenti di Kate.

TemplateReadOnlyPlaceholder(Segnaposto non modificabile)Questo colore viene usato dall'estensione dei frammenti di Kate per segnare un segnaposto non modificabile manualmente, per esempio uno che viene determinato automaticamente. Per maggiori informazioni, vedi la documentazione dei frammenti di Kate.

Gli stili di testo predefiniti sono ereditati dagli stili di evidenziazione del testo, permettendo all'editor di presentare il testo in modo coerente; ad esempio, il testo dei commenti è uguale in quasi tutti i formati di testo che KSyntaxHighlighting può evidenziare.
Nota
È possibile fare riferimento a questi stili di testo dagli stili predefiniti utilizzati nei file XML di definizione dell'evidenziazione della sintassi. Ad esempio, l'attributo «Normal» è equivalente a «dsNormal» nei file XML, mentre «DataType» a «dsDataType». Vedi la sezione chiamata «Stili predefiniti disponibili» nella documentazione di evidenziazione della sintassi.
Suggerimento
Assicurati di scegliere dei colori leggibili e con un buon contrasto, specialmente in combinazione con l'editor di colori. Vedi la sezione chiamata «Contrasto dei colori del testo».
Nel file JSON la rispettiva chiave text-styles ha come valore un oggetto nel quale ogni chiave corrisponde al nome di uno stile di testo predefinito, che sono equivalenti a quelli usati nelle definizioni di evidenziazione della sintassi. Qui tutti le chiavi dello stile del testo disponibili sono obbligatorie ; queste sono elencate di seguito.
"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"
},
Le altre chiavi di stile del testo...
}
- Ciascuna chiave degli stili di testo predefiniti ha un oggetto JSON per valore, dove vengono specificati valori come colore, grassetto, corsivo, ecc. Queste chiavi sono le seguenti:
text-color: è una stringa col colore del testo espresso come codice di colore esadecimale. Questa coppia di chiave e valore è richiesta.selected-text-color: il colore del testo quando è selezionato; generalmente ha lo stesso valore di «text-color». Quando il testo viene selezionato, lo sfondo viene definito dal valore di TextSelection nell'editor di colori, quindi devi essere sicuro che il testo abbia un buon contrasto e che sia leggibile su questo sfondo. Questo valore è una stringa con un codice di colore esadecimale. Questa coppia di chiave e valore è richiesta.bold: è un valore booleano che determina se il testo è in grassetto. Questa chiave è facoltativa, il suo valore predefinito èfalse.italic: è un valore booleano che determina se il testo è curvo. Questa chiave è facoltativa, il suo valore predefinito èfalse.underline: è un valore booleano che determina se il testo è sottolineato. Questa chiave è facoltativa, il suo valore predefinito èfalse.strike-through: è un valore booleano che determina se il testo è barrato. Questa chiave è facoltativa, il suo valore predefinito èfalse.background-color: determina lo sfondo del testo, che viene usato per esempio negli avvisi e nei commenti. Il valore è una stringa con un codice di colore esadecimale. Questa chiave è facoltativa, per impostazione predefinita non c'è uno sfondo.selected-background-color: determina lo sfondo del testo quando viene selezionato. Il valore è una stringa con un codice di colore esadecimale. Questa chiave è facoltativa, per impostazione predefinita non c'è uno sfondo.
Nell'GUI per gestire i temi di colori di KTextEditor questi attributi possono essere modificati nella scheda Stili di testo predefiniti. Il nome nell'elenco degli stili utilizza lo stile configurato per l'elemento, fornendoti un'anteprima immediata durante la configurazione di uno stile. Ogni stile ti permette di selezionare gli attributi comuni, nonché i colori di primo piano e di sfondo. Per annullare l'impostazione di un colore di sfondo, fai clic con il pulsante destro per utilizzare il menu contestuale.
Le chiavi per lo stile del testo disponibili sono le seguenti: quelle usate nel file JSON sono elencate in grassetto, mentre i nomi usati nell'GUI vengono mostrati tra parentesi se sono diversi.
- Testo normale e codice sorgente
Normal: lo stile del testo predefinito per il testo normale e per il codice sorgente senza un'evidenziazione speciale.Keyword: lo stile del testo per le parole chiave incorporate nel linguaggio.Function: lo stile del testo per le definizioni di funzioni e per le chiamate di funzioni.Variable: lo stile del testo per le variabili, se applicabile. Per esempio, le variabili in PHP o in Perl iniziano tipicamente con$, quindi tutti gli identificatori che seguono il modello$foovengono evidenziati come variabili.ControlFlow(Flusso di controllo): lo stile del testo per le parole chiave del flusso di controllo, come if, then, else, return, switch, break, yield, continue, ecc.Operator: lo stile del testo per gli operatori, come+,-,*,/,%, ecc.BuiltIn(Integrato): lo stile del testo per le classi del linguaggio, le funzioni e gli oggetti integrati.Extension: lo stile del testo per le estensioni ben note, ad esempio le classi di Qt™, le funzioni e le macro del C++ e di Python o boost.Preprocessor: lo stile del testo per le direttive al preprocessore o per le definizioni di macro.Attribute: lo stile del testo per le annotazioni o per gli attributi delle funzioni o degli oggetti, ad esempio@overridein Java, oppure__declspec(...)e__attribute__((...))in C++.- Numeri, tipi e costanti
DataType(Tipo di dato): stile del testo per i tipi di dati integrati, ad esempio int, char, float, void, u64, ecc.DecVal(Decimale/Valore): stile del testo per i valori decimali.BaseN(Intero in base N): stile del testo per i numeri in una base diversa da 10.Float(Virgola mobile): stile del testo per i numeri in virgola mobile.Constant: stile del testo per le costanti del linguaggio e per quelle definite dall'utente, ad esempio True, False, None in Python, oppure nullptr in C/C++, o anche per le costanti matematiche come PI.- Stringhe e caratteri
Char(Character): stile del testo per i singoli caratteri, ad esempio'x'.SpecialChar(Carattere speciale): stile del testo per i caratteri di escape nelle stringhe, ad esempio «hello\n», e per gli altri caratteri con un significato speciale nelle stringhe, ad esempio per gli operatori di sostituzione o di espressione regolare.String: stile del testo per le stringhe, ad esempio «hello world».VerbatimString(Stringa letterale): stile del testo per le stringhe letterali o per quelle grezze, ad esempio'raw \backlash'in Perl, in CoffeeScript e in shells, così comer'\raw'in Python, o come negli HERE docs.SpecialString(Stringa speciale): stile del testo per le stringhe speciali, ad esempio le espressioni regolari in ECMAScript, la modalità matematica di LATEX, di SQL, ecc.Import(Importazioni, moduli, inclusioni): stile del testo per le inclusioni, le importazioni, i moduli o i pacchetti di LATEX.- Commenti e documentazione
Comment: lo stile del testo per i commenti normali.Documentation: lo stile del testo per i commenti che riflettono la documentazione API, ad esempio/** doxygen comments */oppure"""docstrings""".Annotation: lo stile del testo per le annotazioni nei commenti o nei comandi della documentazione, ad esempio@paramin Doxygen o in JavaDoc.CommentVar(Variabile di commento): lo stile del testo che si riferisce ai nomi delle variabili usati nei comandi qui sopra in un commento, ad esempiofoobarin «@param foobar», in Doxygen o in JavaDoc.RegionMarker(Delimitatore di regione): lo stile del testo per i delimitatori di regione, definiti tipicamente da//BEGINe da//ENDnei commenti.Information: lo stile del testo per le informazioni, per le note e per i suggerimenti, ad esempio la parola chiave@notein Doxygen.Warning: lo stile del testo per gli avvisi, ad esempio la parola chiave@warningin Doxygen.Alert: lo stile del testo per le parole speciali nei commenti, ad esempioTODO,FIXME,XXXXeWARNING.- Varie
Error: lo stile del testo per indicare l'evidenziazione degli errori e la sintassi errata.Others: lo stile del testo per gli attributi che non soddisfano nessuno degli altri stili predefiniti.
Qui puoi stabilire gli stili del testo per una definizione di evidenziazione della sintassi specifica, senza tener conto degli stili di testo predefiniti descritti nella sezione precedente.
Nel file di tema JSON questo corrisponde alla chiave custom-styles, il cui valore è un oggetto nel quale ciascuna chiave del sottoschema corrisponde al nome di una definizione di evidenziazione. Il suo valore è un oggetto nel quale ciascuna chiave si riferisce al nome degli attributi di stile definito negli elementi itemData del file XML di evidenziazione della sintassi, e il rispettivo valore è un sotto-oggetto con le chiavi text-color, selected-text-color, bold, italic, underline, strike-through, background-color e selected-background-color, che sono state definite nella sezione precedente. Ciascuno di questi valori è facoltativo, dal momento che viene considerato lo stile impostato in text-styles se non sono presenti.
Ad esempio, in questo pezzetto di codice la definizione di evidenziazione della sintassi di «C++ ISO» ha uno stile del testo speciale per gli attributi «Type Modifiers» e per «Standard Classes». Nel file XML corrispondente «isocpp.xml», l'attributo definito «Standard Classes» utilizza lo stile predefinito BuiltIn (o dsBuiltIn). In questo attributo, solamente il valore di text-color è sovrascritto dal nuovo colore «#6431b3».
"custom-styles": {
"ISO C++": {
"Standard Classes": {
"text-color": "#6431b3"
},
"Type Modifiers": {
"bold": true,
"selected-text-color": "#009183",
"text-color": "#00b5cf"
}
}
}
Nota
Dovresti considerare che questi stili di testo sono associati con i nomi degli attributi definiti nei file XML di evidenziazione della sintassi. Se un file XML viene aggiornato ed alcuni attributi vengono rinominati o rimossi, lo stile personalizzato definito nel tema non verrà più applicato.
Le definizioni di evidenziazione della sintassi ne includono spesso delle altre. Ad esempio, l'evidenziatore di «QML» include quello di «JavaScript», dal momento che essi condividono delle funzionalità di evidenziazione.
Nell'GUI per gestire i temi di KTextEditor questi attributi possono essere modificati nella scheda Stili di testo evidenziato. Per impostazione predefinita, l'editor preseleziona l'evidenziazione del documento corrente. Noterai che molti evidenziatori ne contengono altri, rappresentati dai gruppi nell'elenco degli stili. Ad esempio, la maggior parte degli evidenziatori importa «Alert», mentre molti dei formati di codice sorgente importano «Doxygen».
Il modo più semplice per creare e per modificare i temi di colori è dall'GUI all'interno della finestra«Configura» fornita da KTextEditor. Per accedervi, seleziona → dalla barra del menu del tuo editor di testo. Questo fa apparire la finestra di dialogo Configura, lì seleziona Temi di colore, che è nel pannello laterale.

La finestra delle impostazioni di Kate con la gestione del tema dei colori.
In questa finestra puoi configurare tutti i colori di ogni tema tu abbia, così come creare o copiare nuovi temi, eliminarli, esportarli in un file .theme in formato JSON, o anche importarli da file .theme esterni. Ogni tema ha le impostazioni per i colori e per gli stili del testo.
I temi integrati non possono essere modificati per impostazione predefinita. Per fare ciò è necessario copiarli dandogli un nuovo nome.
Per usare permanentemente un tema nell'editor di testo lo devi selezionare nella casella combinata etichettata Tema predefinito per Applicazione in basso nella finestra, poi devi premere o . L'opzione Selezione automatica è attiva per impostazione predefinita, e ti aiuta a scegliere un tema di colori più appropriato in base allo schema di colori di KDE Plasma™ che hai usato nelle applicazioni di modifica del testo. Di solito sceglie «Brezza chiaro» o «Brezza scuro», a seconda che lo schema sia rispettivamente chiaro o scuro.
Suggerimento
Puoi sistemare lo schema di colori globale di KDE nel modulo «Colori» delle Impostazioni di sistema. In alcune applicazioni, tipo Kate o KDevelop, puoi anche modificarlo individualmente dal menu → .
Per creare un nuovo tema è necessario prima copiarne uno esistente. Selezionane uno che vuoi usare come base, ad esempio «Brezza chiaro» o «Brezza scuro», e fai clic su . Scrivi quindi il nome del nuovo tema.
Se vuoi modificare un tema integrato o a sola lettura, è necessario prima copiarlo con un nome diverso.
Puoi esportare un tema selezionato (inclusi quelli incorporati) in un file JSON con l'estensione .theme per mezzo del pulsante : si aprirà una finestra per salvare il file. Per aggiungere un tema di colori da un file JSON, premi semplicemente il pulsante e seleziona il file .theme dalla finestra.
Suggerimento
Come sopra menzionato, i file dei temi personalizzati dall'utente vengono salvati nella cartella
org.kde.syntax-highlighting/themes/: quando copi o crei un tema, esso apparirà automaticamente lì. Inoltre l'importazione o l'aggiunta di un tema equivale alla copia di un file.themeesterno in questa cartella. KSyntaxHighlighting preleva automaticamente i file dei temi di colori da questa cartella.Se vuoi pubblicare un tema creato da te è essenziale controllare l'oggetto dei metadati del file JSON, aggiungendo la rispettiva licenza e controllando il numero della revisione.
Qui vengono regolati i colori dell'area di modifica del testo. È spiegato nei dettagli in la sezione chiamata «Modificare i colori».
Gli stili di testo predefiniti sono ereditati dagli stili di evidenziazione del testo, permettendo all'editor di presentare il testo in modo coerente; ad esempio, il testo dei commenti è uguale in quasi tutti i formati di testo che KSyntaxHighlighting può evidenziare.
Il nome della lista di stili usa lo stile configurato per tale elemento, fornendo un'anteprima quando si configura lo stile.
Ogni stile permette di selezionare degli attributi comuni oltre ai colori di sfondo e di primo piano. Per rimuovere l'impostazione del colore di sfondo, fai clic con il tasto del mouse per usare il menu contestuale.
Gli attributi di quest'area sono descritti in dettaglio in la sezione chiamata «Stili di testo predefiniti».
Qui si possono modificare gli stili del testo usati per una specifica definizione di evidenziazione. L'editor preseleziona l'evidenziazione usata per il documento attuale. Per modificare un'evidenziazione diversa, selezionarne una dalla casella combinata Evidenziazione sopra l'elenco degli stili.
Il nome della lista di stili usa lo stile configurato per tale elemento, fornendo un'anteprima quando si configura lo stile.
Ogni stile permette di selezionare attributi comuni oltre ai colori di sfondo e di primo piano. Per deimpostare un colore di sfondo, fai clic con il tasto del mouse per usare il menu contestuale. Puoi inoltre vedere se uno stile è uguale a quello predefinito dell'elemento, e renderlo tale se non lo è.
Noterai che molte evidenziazioni ne contengono altre, che sono rappresentate dai gruppi nell'elenco di stili. Ad esempio, la maggior parte delle evidenziazioni importano quella per Alert, e molte altre quella per Doxygen. La modifica dei colori di questi gruppi ha effetto sugli stili solo quando è usata nel formato di evidenziazione modificato.
Un aspetto importante quando si lavora coi temi di colori è quello di scegliere un contrasto del testo che renda più semplice la lettura, specialmente in combinazione con lo sfondo.
L'applicazione Kontrast è un controllore del contrasto: ti dice se le combinazioni di colore del testo e dello sfondo sono leggibili e accessibili, quindi è un eccellente strumento che ti aiuta a creare i temi di colori.
Puoi scaricare Kontrast dal sito web delle applicazioni di KDE o dal pacchetto Flatpak su Flathub (solo in GNU/Linux).
L'applicazione Contrast di GNOME è simile. Puoi scaricare il pacchetto Flatpak su Flathub (solo in GNU/Linux).
Uno script python nel deposito di evidenziazione della sintassi ti permette di visualizzare tutti i colori del tema, oltre al contrasto con i vari sfondi configurati.
KSyntaxHighlighting include più di 300 definizioni di evidenziazione della sintassi, quindi dovresti assicurarti che il tuo nuovo tema vada bene con tutte le definizioni di evidenziazione della sintassi. I temi di colori integrati hanno le similarità seguenti, che è raccomandabile (ma non obbligatorio) seguire per ottenere una visualizzazione corretta di tutte le definizioni di evidenziazione della sintassi:
Usa il grassetto per le «parole chiave» e per lo stili del testo del «flusso di controllo».
Non usare un colore di sfondo in nessuno degli stili di testo, tranne che in «Alert» e in «RegionMarker».
La maggior parte degli evidenziatori di sintassi serve per dare un bell'aspetto nei temi predefiniti, «Brezza chiaro» e «Brezza scuro», quindi un altro modo per mantenere la consistenza è quello di usare dei colori simili negli stili di testo, ad esempio il verde per il «preprocessore» e «altri», il blu per i «tipi di dato» e per gli «attributi», oppure il viola per le «funzioni».
Nota che queste raccomandazioni non sono obbligatorie nella creazione e nella pubblicazione di un tema.