Treballar amb temes de color

Vista general

Els temes de color defineixen els colors de l'àrea d'edició de text i del ressaltat de la sintaxi. Un tema de color abasta el següent:

  • L'estil del text, utilitzat per a ressaltar la sintaxi mitjançant els atributs predeterminats d'estil. Per exemple, el color del text i el del text seleccionat.

  • El fons de l'àrea d'edició de text, inclosa la selecció del text i la línia actual.

  • La vora de la icona de l'àrea de text: el seu fons, la línia de separació, els números de línia, els marcadors per a l'ajust de les paraules a la línia, les marques de línia modificada i el plegat de codi.

  • Els decoradors de text com els marcadors de cerca, el sagnat i les marques de línia per a tabulació/espai, la coincidència dels claudàtors i la verificació ortogràfica.

  • Marcadors i retalls.

Per a evitar confusions, el següent queda fora de l'àmbit:

  • El tipus i mida de la lletra.

  • Els colors de l'aplicació d'edició de text, com el mapa de la barra de desplaçament, els menús, la barra de pestanyes, el color de la finestra, etc. En les aplicacions KDE, com el Kate o el KDevelop, aquests colors es defineixen mitjançant l'esquema de color global del Plasma, el qual s'estableix en el mòdul «Colors» a l'Arranjament del sistema o des de la mateixa aplicació en el menú ArranjamentEsquema de color.

Temes de color «Brisa clara» i «Brisa fosca» amb ressaltat de la sintaxi del «C++».

Temes de color «Brisa clara» i «Brisa fosca» amb ressaltat de la sintaxi del «C++».

Els temes de color «KSyntaxHighlighting»

El marc de treball KSyntaxHighlighting, el qual és el motor del ressaltat de la sintaxi, és la biblioteca que proporciona i gestiona els temes de color. Aquest forma part dels Frameworks™ del KDE i s'utilitza en els editors de text del KDE com el Kate, KWrite, Kile i KDevelop. Aquesta dependència té el següent aspecte:

Dependència de les biblioteques dels Frameworks™ 5 del KDE en els editors de text.

Dependència de les biblioteques dels Frameworks™ del KDE en els editors de text.

El marc de treball KSyntaxHighlighting inclou una varietat de temes integrats que es mostren a la pàgina «Temes de color» del lloc web de l'editor Kate.

El marc de treball KTextEditor, el qual és el motor d'edició de text, proporciona una interfície d'usuari per a crear i editar els temes de color, inclosa una eina per a importar i exportar els temes. Aquesta és la forma més senzilla de crear-los i editar-los, podeu accedir-hi des del diàleg «Configura» de l'editor de text. Hi ha més detalls a «Els temes de color de la IGU».

La IGU per a gestionar els temes de color a la configuració del Kate.

La IGU per a gestionar els temes de color a la configuració del Kate.

És important esmentar que, en els editors de text del KDE com el Kate o el KDevelop, els temes de color de KSyntaxHighlighting s'utilitzen des dels Frameworks™ 5.75 del KDE, llançats el 10 d'octubre de 2020. Anteriorment, s'utilitzaven els esquemes de color del Kate (configuració d'esquema basada en el KConfig) i ara estan en desús. No obstant això, és possible convertir els antics esquemes del Kate als temes de color de KSyntaxHighlighting. El repositori KSyntaxHighlighting inclou l'script utils/kateschema_to_theme_converter.py i la utilitat utils/schema-converter/ per a aquest propòsit.

El format JSON dels temes de color

Vista general

Els temes de color s'emmagatzemen en fitxers de format JSON, amb l'extensió .theme.

En el codi font de KSyntaxHighlighting, els fitxers JSON dels temes integrats es troben a la carpeta data/themes/. Cal tenir en compte que en els editors de text, els temes integrats es compilen a dins de la biblioteca KSyntaxHighlighting, per tant, la forma d'accedir-hi és a través del codi font o exportant-la des de la IGU per a gestionar els temes de KTextEditor.

També és possible afegir amb facilitat temes addicionals o personalitzats, els quals es carreguen des del sistema de fitxers. Els fitxers de tema personalitzats per l'usuari es troben a la carpeta org.kde.syntax-highlighting/themes/ en la vostra carpeta d'usuari, la qual trobareu amb l'ordre qtpaths --paths GenericDataLocation que normalment és $HOME/.local/share/ i /usr/share/.

En els paquets Flatpak i Snap, la carpeta anterior no funcionarà, ja que la ubicació de les dades és diferent per a cada aplicació. En una aplicació de Flatpak, aquesta ubicació generalment és $HOME/.var/app/nom_paquet_flatpak/data/org.kde.syntax-highlighting/themes/ i en una aplicació de Snap aquesta ubicació és $HOME/snap/nom_paquet_snap/current/.local/share/org.kde.syntax-highlighting/themes/.

Al Windows® aquests fitxers es troben a %USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes. %USERPROFILE% que generalment s'expandeix a C:\Users\nom_usuari.

En resum, per a la majoria de les configuracions, la carpeta de temes personalitzats és la següent:

Per a l'usuari local$HOME/.local/share/org.kde.syntax-highlighting/themes/
Per a tots els usuaris/usr/share/org.kde.syntax-highlighting/themes/
Per als paquets Flatpak$HOME/.var/app/nom_paquet_flatpak/data/org.kde.syntax-highlighting/themes/
Per als paquets Snap$HOME/snap/nom_paquet_snap/current/.local/share/org.kde.syntax-highlighting/themes/
Al Windows®%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes
Al macOS®$HOME/Library/Application Support/org.kde.syntax-highlighting/themes/

Si hi ha múltiples fitxers de tema amb el mateix nom, es carregarà el fitxer amb la revisió més alta.

L'estructura JSON

L'estructura d'un fitxer JSON s'explica al seu lloc web. Bàsicament, un fitxer de format JSON consta de:

  • Col·leccions de parells clau/valor, separats per comes i agrupats en {}, els quals anomenarem «objectes».

  • Llistes ordenades de valors, separats per comes i agrupats en [], a les quals anomenarem «matriu».

En aquest article s'utilitzaran les nomenclatures «clau», «valor», «objecte» i «matriu». Si és la primera vegada que treballeu amb fitxers JSON, comprendre'ls és tan senzill com mirar els exemples que hi ha a continuació.

Seccions principals dels fitxers JSON de temes de color

L'objecte arrel del fitxer JSON de tema de color conté les claus d'esquema següents:

  • metadata: És obligatòria. El valor és un objecte amb les metadades del tema, com el nom, la revisió i la llicència.

    Això es detalla a «Metadades».

  • editor-colors: És obligatòria. El valor és un objecte amb els colors de l'àrea per a l'edició de text, com el fons, la vora d'icones i la decoració del text.

    Això es detalla a «Colors de l'editor».

  • text-styles: És obligatòria. El valor és un objecte amb els atributs d'estil per al text predeterminat del ressaltat de la sintaxi. Cada atribut defineix el seu color del text, el seu color del text seleccionat o si està en negreta o cursiva, per exemple. Es pot fer referència als estils de text des dels atributs dels fitxers XML per a definició de la sintaxi.

    Això es detalla a «Estils de text predeterminats».

  • custom-styles: És opcional. Defineix estils de text per als atributs de les definicions específiques del ressaltat de la sintaxi. Per exemple, en una definició del ressaltat com en Python o Markdown, podreu especificar un estil de text diferent que superposi el predeterminat definit a text-styles.

    Això es detalla a «Estils personalitzats per al text ressaltat».

El llenguatge JSON no admet comentaris. No obstant això, podeu fer servir la clau opcional _comments en l'objecte arrel per a escriure els comentaris, per exemple, si esteu adaptant un tema existent, podeu posar l'URL del repositori original. La forma més pràctica és utilitzar una matriu de cadenes.

A continuació es mostra un fitxer d'exemple per al tema «Breeze Light». Podeu observar que, per a evitar que l'exemple sigui massa gran, els objectes editor-colors i text-styles no contenen totes les claus requerides. Podeu veure tot el fitxer del tema «Breeze Light» al repositori de KSyntaxHighlighting.

{
    "_comments": [
        "Aquest és un comentari.",
        "Si aquest tema és una adaptació d'un altre, poseu l'enllaç cap al repositori original."
    ],
    "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",
        Les altres claus per al color de l'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"
        },
        Les altres claus per a l'estil del text...

    },
    "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"
            }
        }
    }
}

Metadades

L'objecte JSON de la clau de metadata conté informació rellevant sobre el tema. Aquest objecte té les següents claus:

  • name: És una cadena que estableix el nom de l'idioma. Apareixerà posteriorment en els menús i diàlegs. És obligatòria.

  • revision: És un nombre enter que especifica la revisió actual del fitxer de tema. Sempre que actualitzeu un fitxer per a tema de colors, assegureu-vos d'augmentar aquest número. És obligatòria.

  • license: És una cadena que defineix la llicència del tema, utilitzant l'identificador SPDX-License-Identifier des del format SPDX estàndard per a la comunicació de la llicència. És opcional.

    Podeu veure la llista completa dels identificadors de llicència SPDX aquí.

  • copyright: És una matriu de cadenes que especifica els autors del tema, utilitzant l'identificador SPDX-FileCopyrightText des del format SPDX estàndard per a la comunicació de la llicència. És opcional.

"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"
}

Els colors en detall

Aquesta secció detalla tots els atributs de color disponibles i les opcions de configuració disponibles del color.

Colors de l'editor

Correspon als colors de l'àrea per a l'edició de text.

En el fitxer de tema JSON, la clau respectiva editor-colors té com a valor un objecte on cada clau fa referència a un color d'atribut de l'editor de text. Aquí, totes les claus disponibles són obligatòries, els seus valors són cadenes amb codis de color en hexadecimal, com «#00B5CF».

A la IGU per a gestionar els temes de KTextEditor, aquests atributs es poden modificar a la pestanya Colors.

Les claus disponibles són les següents; les claus utilitzades en el fitxer JSON es llisten en negreta, els noms utilitzats a la IGU es mostren entre parèntesis.

Colors de fons de l'editor
BackgroundColor (Àrea de text)

Aquest és el fons predeterminat per a l'àrea d'edició, serà el color dominant a l'àrea d'edició.

TextSelection (Text seleccionat)

Aquest és el fons per al text seleccionat.

CurrentLine (Línia actual)

Estableix el color per a la línia actual. Estableix aquesta opció una mica diferent del fons del text normal per a ajudar a mantenir el focus en la línia actual.

SearchHighlight (Ressaltat de la cerca)

Ajusta el color per al text que coincideixi amb la vostra última cerca.

ReplaceHighlight (Ressaltat de la substitució)

Ajusta el color per al text que coincideixi amb la vostra última operació de substitució.

Vora de la icona
IconBorder (Àrea de fons)

Aquest color s'utilitza per a les marques, números de línia i vores de les marques de plegat del codi situats al costat esquerre de la vista d'edició quan aquests siguin mostrats.

LineNumbers (Números de línia)

Aquest color s'utilitza per a dibuixar els números de línia al costat esquerre quan siguin mostrats.

CurrentLineNumber (Número de la línia actual)

Aquest color s'utilitza per a dibuixar el número de línia de la línia actual, quan es mostra, a la banda esquerra de la vista. Establir això una mica diferent de «LineNumbers» ajudarà a mantenir l'enfocament sobre la línia actual.

Separator (Separador)

Aquest color s'utilitza per a dibuixar la línia vertical que separa la vora d'icones del fons de l'àrea de text.

WordWrapMarker (Marcador d'ajust de les paraules)

Aquest color s'utilitza per a dibuixar un patró a l'esquerra de les línies ajustades dinàmicament quan siguin alineades verticalment, i també per a les marques d'ajust estàtic de les línies.

CodeFolding (Plegat de codi)

Aquest color s'utilitza per a ressaltar la secció del codi que es plega quan feu clic a la fletxa de plegat del codi a l'esquerra d'un document. Per a obtenir més informació, vegeu la documentació per al plegat del codi.

ModifiedLines (Línies modificades)

Aquest color s'utilitza per a ressaltar a l'esquerra algunes línies del document que han estat modificades però no desades. Per a obtenir més informació, vegeu «Indicadors de modificació de línia».

SavedLines (Línies desades)

Aquest color s'utilitza per a ressaltar a l'esquerra algunes línies del document que han estat modificades i desades en aquesta sessió. Per a obtenir més informació, vegeu «Indicadors de modificació de línia».

Decoracions de text
SpellChecking (Línia amb error ortogràfic)

Aquest color s'utilitza per a indicar els errors ortogràfics.

TabMarker (Marcadors de tabulació i espai)

Aquest color s'utilitza per a dibuixar els indicadors d'espai en blanc, quan estan activats.

IndentationLine (Línia amb sagnat)

Aquest color s'utilitza per a dibuixar una línia a l'esquerra dels blocs de sagnat, si aquesta característica està activada.

BracketMatching (Ressaltat dels parèntesis)

Aquest color s'utilitza per a dibuixar el fons dels claudàtors aparellats.

Colors dels marcadors
MarkBookmark (Punt)

Aquest color s'utilitza per a indicar els punts. Cal recordar que aquest color té una opacitat del 22% (i del 33% per a la línia actual) pel que fa al fons. Per a més informació, vegeu «Ús dels punts».

MarkBreakpointActive (Punt d'interrupció actiu)

El connector GDB utilitza aquest color per a indicar un punt d'interrupció actiu. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector GDB.

MarkBreakpointReached (S'ha arribat a un punt d'interrupció)

El connector GDB utilitza aquest color per a indicar un punt d'interrupció que heu assolit durant la depuració. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector GDB.

MarkBreakpointDisabled (Punt d'interrupció desactivat)

El connector GDB utilitza aquest color per a indicar un punt d'interrupció inactiu. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector GDB.

MarkExecution (Execució)

Aquest color és utilitzat pel connector GDB en la línia que s'està executant. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector GDB.

MarkWarning (Avís)

El connector de compilació utilitza aquest color per a indicar una línia que ha provocat un avís del compilador. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector de construcció.

MarkError (Error)

El connector de construcció utilitza aquest color per a indicar una línia que ha provocat un error de compilació. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector de construcció.

Plantilles i retalls de text
TemplateBackground (Fons)

El connector Retalls del Kate utilitza aquest color per a marcar el fons d'un retall. Per a més informació, vegeu la documentació dels Retalls del Kate.

TemplatePlaceholder (Text variable editable)

El connector Retalls del Kate utilitza aquest color per a marcar un text variable en el qual podreu fer clic per a editar-lo manualment. Per a més informació, vegeu la documentació de Retalls del Kate.

TemplateFocusedPlaceholder (Text variable editable amb el focus)

El connector Retalls del Kate utilitza aquest color per a marcar el text variable que esteu editant. Per a més informació, vegeu la documentació de Retalls del Kate.

TemplateReadOnlyPlaceholder (Text variable no editable)

Aquest color és utilitzat pel connector Retalls del Kate per a marcar un text variable que no es pot editar de forma manual, com el que s'omple automàticament. Per a obtenir més informació, vegeu la documentació per al connector Retalls del Kate.

Estils de text predeterminats

Els estils predeterminats del text són heretats pels estils del text ressaltat, el qual permet a l'editor presentar el text d'una manera molt coherent, per exemple, el text dels comentaris utilitza el mateix estil en gairebé tots els formats de text que pot ressaltar el KSyntaxHighlighting.

Nota

Es pot fer referència a aquests estils de text des dels estils predeterminats utilitzats en els fitxers XML de definició per al ressaltat de la sintaxi, per exemple, l'atribut «Normal» és equivalent a «dsNormal» en els fitxers XML i «DataType» és equivalent a «dsDataType». Vegeu «Estils predeterminats disponibles» a la documentació del ressaltat de la sintaxi.

Suggeriment

Assegureu-vos de triar colors llegibles amb bon contrast, especialment en combinació amb els Colors de l'editor. Vegeu «Contrast dels colors del text».

En el fitxer JSON, la clau respectiva text-styles té com a valor un objecte on cada clau correspon al nom d'un estil predeterminat de text, el qual és equivalent a l'utilitzat en les definicions de ressaltat de la sintaxi. Aquí, totes les claus d'estil de text disponibles són obligatòries, es llisten a continuació.

"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"
    },
    Les altres claus de l'estil de text...
}
Cada clau de l'estil predeterminat del text té un objecte JSON com a valor, on s'especifiquen valors com color, negreta, cursiva, etc. Aquestes claus són les següents:

text-color: És una cadena amb el color del text en el codi de color hexadecimal. Aquesta clau/valor és obligatòria.

selected-text-color: El color del text quan se selecciona generalment és el mateix valor que «text-color». Quan se selecciona el text, el fons és definit pel valor de TextSelection als Colors de l'editor, de manera que haureu d'assegurar-vos que el text tingui un bon contrast i sigui llegible amb aquest fons. El valor és una cadena amb un codi de color hexadecimal. Aquesta clau/valor és obligatòria.

bold: És un valor booleà que determina si el text està en negreta. Aquesta clau és opcional, el valor predeterminat és false.

italic: És un booleà que determina si el text està corbat. Aquesta clau és opcional, el valor predeterminat és false.

underline: És un booleà que determina si el text està subratllat. Aquesta clau és opcional, el valor predeterminat és false.

strike-through: És un booleà que determina si el text està taxat. Aquesta clau és opcional, el valor predeterminat és false.

background-color: Determina el fons del text, utilitzat per exemple en alertes en els comentaris. El valor és una cadena amb un codi de color en hexadecimal. Aquesta clau és opcional, de manera predeterminada no hi ha cap fons.

selected-background-color: Determina el fons del text quan se selecciona. El valor és una cadena amb un codi de color en hexadecimal. Aquesta clau és opcional, de manera predeterminada no hi ha cap fons.

A la IGU per a gestionar els temes de color de KTextEditor, aquests atributs es poden modificar a la pestanya Estils predeterminats de text. El nom de la llista d'estils utilitza l'estil configurat per a l'element, el qual proporciona una vista prèvia immediata en configurar un estil. Cada estil permet seleccionar atributs comuns, així com els colors de primer pla i de fons. Per a treure un color de fons, feu clic dret per a emprar el menú contextual.

Les claus d'estil de text disponibles són les següents; les claus utilitzades en el fitxer JSON es llisten en negreta, els noms utilitzats en la IGU es mostraran entre parèntesis si són diferents.

Text normal i codi font

Normal: Estil predeterminat de text per al text normal i codi font sense un ressaltat especial.

Keyword: Estil de text per a les paraules clau dels llenguatges integrats.

Function: Estil de text per a les definicions de funcions i crides a funcions.

Variable: Estil de text per a les variables, si escau. Per exemple, les variables en PHP/Perl generalment comencen amb un signe $, de manera que tots els identificadors que segueixen el patró $foo es ressaltaran com a variables.

ControlFlow (Flux de control): Estil de text per a les paraules clau del flux de control, com if, then, else, return, switch, break, yield, continue, etc.

Operator: Estil de text per als operadors, com +, -, *, /, %, etc.

BuiltIn (Integrat): Estil de text per a classes de llenguatges, funcions i objectes integrats.

Extension: Estil de text per a les extensions conegudes, com les classes de les Qt™, funcions/macros en C++ i Python o boost.

Preprocessor: Estil de text per a les declaracions de preprocessador o definicions de macro.

Attribute: Estil de text per a les anotacions o atributs de funcions o objectes, p. ex. @override en Java o __declspec(...) i __attribute__((...)) en C++.

Nombres, tipus i constants

DataType (Tipus de dades): Estil de text per a tipus de dades integrades com int, char, float, void, u64, etc.

DecVal (Decimal/valor): Estil de text per als valors decimals.

BaseN (Enter base-N): Estil de text per als números amb una base diferent que 10.

Float (Coma flotant): Estil de text per als nombres de coma flotant.

Constant: Estil de text per a les constants del llenguatge i les constants definides per l'usuari, p. ex. True, False, None en Python o nullptr en C/C++; o les constants matemàtiques com PI.

Cadenes i caràcters

Char (Caràcter): Estil de text per als caràcters individuals com 'x'.

SpecialChar (Caràcter especial): Estil de text per als caràcters d'escapament en les cadenes, p. ex. «hola\n» i altres caràcters amb un significat especial en les cadenes, com les substitucions o operadors d'expressió regular.

String: Estil de text per a les cadenes com «hola món».

VerbatimString (Cadena literal): Estil de text per a les cadenes de text o sense processar com 'raw \backlash' en Perl, CoffeeScript i els intèrprets d'ordres, així com r'\raw' en Python o com en els documents HERE.

SpecialString (Cadena especial): Estil de text per a les cadenes especials, com expressions regulars en ECMAScript, el mode matemàtic LATEX, SQL, etc.

Import (Importacions, mòduls i inclusions): Estil de text per a les inclusions, importacions, mòduls o paquets de LATEX.

Comentaris i documentació

Comment: Estil de text per als comentaris normals.

Documentation: Estil de text per als comentaris que reflecteixen la documentació de l'API, com /** doxygen comments */ o """docstrings""".

Annotation: Estil de text per a les anotacions en comentaris o documentació d'ordres, com @param en Doxygen o JavaDoc.

CommentVar (Variable de comentari): Estil de text que es refereix als noms de les variables utilitzades en les ordres anteriors en un comentari, com foobar a «@param foobar», en Doxygen o JavaDoc.

RegionMarker (Marcador de regió): Estil de text per als marcadors de regió, normalment definits per //BEGIN i //END en els comentaris.

Information: Estil de text per a la informació, notes i consells, com la paraula clau @note en Doxygen.

Warning: Estil de text per als avisos, com ara la paraula clau @warning en Doxygen.

Alert: Estil de text per a les paraules especials en els comentaris, com TODO, FIXME, XXXX i WARNING.

Miscel·lània

Error: Estil de text que indica error ressaltat i sintaxi incorrecta.

Others: Estil de text per als atributs que no coincideixen amb cap dels altres estils predeterminats.

Estils personalitzats per al text ressaltat

Aquí podreu establir els estils de text per a una definició específica del ressaltat de la sintaxi, superposant l'estil de text predeterminat descrit a la secció anterior.

En el fitxer de tema JSON, això es correspon amb la clau custom-styles, el valor és un objecte on cada clau de subesquema es correspon amb el nom d'una definició de ressaltat de la sintaxi. El seu valor és un objecte on cada clau es refereix al nom dels atributs d'estil definit en els elements itemData del fitxer XML de ressaltat de la sintaxi, i el valor respectiu és un subobjecte amb les claus text-color, selected-text-color, bold, italic, underline, strike-through, background-color i selected-background-color definides a la secció anterior. Cadascun d'aquests valors és opcional, ja que si no hi són presents, es considerarà l'estil establert a text-styles.

Per exemple, en aquest fragment de codi, la definició de ressaltat de la sintaxi «ISO C++» té un estil de text especial per als atributs «Modificadors de tipus» i «Classes estàndard». En el fitxer XML corresponent «isocpp.xml», l'atribut definit «Classes estàndard» utilitza l'estil predeterminat BuiltIn (o dsBuiltIn). En aquest atribut, només se sobreescriurà el valor de text-color amb el nou color «#6431b3».

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

Nota

  • Heu de considerar que aquests estils de text estan associats amb els noms dels atributs definits en els fitxers XML de ressaltat de la sintaxi. Si s'actualitza un fitxer XML i es canvia el nom o s'eliminen alguns atributs, l'estil personalitzat definit en el tema ja no s'aplicarà.

  • Les definicions del ressaltat de la sintaxi sovint inclouen altres definicions. Per exemple, el ressaltador de «QML» inclou el ressaltador de «JavaScript», ja que comparteixen la funcionalitat en el ressaltat.

A la IGU per a gestionar els temes de KTextEditor, aquests atributs es poden modificar a la pestanya Estils del text ressaltat. De manera predeterminada, l'editor preselecciona el ressaltat del document actual. Notareu que molts ressaltats contenen altres ressaltats representats per grups en la llista d'estils. Per exemple, la majoria dels ressaltats importen el ressaltat «Alert», i molts formats de codi font importen el ressaltat «Doxygen».

Els temes de color de la IGU

La forma més senzilla de crear i editar temes de color és mitjançant la IGU dins del diàleg «Configura» proporcionat per KTextEditor. Per a accedir-hi, seleccioneu ArranjamentConfigura l'Aplicació... a la barra de menús del vostre editor de text. Això obrirà el diàleg Configura, allà seleccioneu Temes de color a la barra lateral.

Diàleg de configuració del Kate amb la gestió del tema de color.

Diàleg de configuració del Kate amb la gestió del tema de color.

En aquest diàleg podreu configurar tots els colors en qualsevol tema que tingueu, així com crear/copiar temes nous, suprimir-los, exportar-los a un fitxer .theme amb format JSON o importar-los des de fitxers .theme externs. Cada tema té les opcions de configuració per als colors i els estils de text.

De manera predeterminada, els temes integrats no es poden modificar. Per a fer això, els haureu de copiar i donar un nom nou.

Per a utilitzar un tema de forma permanent en el vostre editor de text, haureu de seleccionar-lo en el quadre combinat anomenat Tema predeterminat per a l'aplicació que hi ha a la part inferior del diàleg i prémer Aplica o D'acord. De manera predeterminada, l'opció Selecció automàtica està activada, la qual triarà un tema de color més apropiat d'acord amb l'esquema de color del Plasma utilitzat en l'aplicació d'edició de text; normalment es tria «Brisa clara» i «Brisa fosca» si l'esquema és clar o fosc, respectivament.

Suggeriment

Podeu ajustar l'esquema de color global del KDE en el mòdul «Colors» a l'Arranjament del sistema. També el podreu canviar individualment en algunes aplicacions com el Kate o el KDevelop, des del menú ArranjamentEsquema de color.

Crea un tema nou

Per a crear un tema nou, primer cal copiar-ne un d'existent. Seleccioneu un tema existent que voleu utilitzar com a base, com el «Brisa clar» o «Brisa fosca» i feu clic a Copia. Després escriviu un nom per al tema nou.

Si voleu modificar un tema integrat o només de lectura, primer l'haureu de copiar amb un nom diferent.

Importar o exportar fitxers de tema en JSON

Amb el botó Exporta podreu exportar un tema seleccionat (inclosos els integrats) a un fitxer JSON amb l'extensió .theme. Això obrirà un diàleg per a desar el fitxer. Per a afegir un tema de color des d'un fitxer JSON extern, senzillament premeu el botó Importa i seleccioneu el fitxer .theme des del diàleg.

Suggeriment

  • Com s'ha esmentat anteriorment, els fitxers de tema personalitzat per l'usuari s'emmagatzemen a la carpeta org.kde.syntax-highlighting/themes/. Quan feu còpies o creeu un tema, apareixerà automàticament allà. A més, importar o afegir un tema és equivalent a copiar un fitxer .theme extern en aquesta carpeta. El KSyntaxHighlighting recollirà automàticament els fitxers de tema de color des d'aquesta carpeta.

  • Si voleu publicar un tema creat per vós, és fonamental comprovar l'objecte metadata del fitxer JSON, afegint-hi la llicència respectiva i comprovant el número de la revisió.

Editar els temes de color

Colors

Aquí s'ajusten els colors de l'àrea d'edició de text. Aquests es detallen a «Colors de l'editor».

Estils de text predeterminats

Els estils predeterminats del text són heretats pels estils del text ressaltat, el qual permet a l'editor presentar el text d'una manera molt coherent, per exemple, el text dels comentaris utilitza el mateix estil en gairebé tots els formats de text que pot ressaltar el KSyntaxHighlighting.

El nom en la llista d'estils utilitza l'estil configurat per a l'element, proporcionant-vos una vista prèvia quan un estil està configurat.

Cada estil permet seleccionar atributs comuns com els colors de fons i de primer pla. Per a desseleccionar un color de fons, feu clic dret per a utilitzar el menú contextual.

Els atributs d'aquesta àrea es detallen a «Estils de text predeterminats».

Estils del text ressaltat

Aquí podeu editar els estils de text utilitzats per una definició de ressaltat específica. L'editor preselecciona el ressaltat usat per al vostre document actual. Per a treballar amb un ressaltat diferent, seleccioneu-ne un en el quadre combinat Ressaltat sobre la llista d'estil.

El nom en la llista d'estils utilitza l'estil configurat per a l'element, proporcionant-vos una vista prèvia quan un estil està configurat.

Cada estil us permet seleccionar atributs comuns com els colors de fons i de primer pla. Per a desseleccionar un color de fons, feu clic dret per a utilitzar el menú contextual. A més podreu veure si un estil és igual que l'estil predeterminat utilitzat per l'element, i assignar-lo si no l'és.

Cal tenir present que molts ressaltats contenen d'altres ressaltats representats per grups en la llista d'estil. Per exemple, la majoria dels ressaltats inclouen el ressaltat Alerta, i molts dels formats de codi font inclouen el ressaltat Doxygen. Editar colors en aquests grups només afectarà els estils quan s'usin en el format de ressaltat editat.

Consells i trucs

Contrast dels colors del text

Un aspecte important en treballar amb els temes de color és triar un contrast de text que faciliti la lectura, especialment en combinació amb el fons.

L'aplicació Kontrast és un verificador del contrast de color. Us indicarà que les combinacions del color de text i color de fons són llegibles i accessibles, de manera que aquesta és una excel·lent eina per a ajudar-vos a crear temes de color.

Podeu descarregar el Kontrast des del lloc web d'aplicacions del KDE o des del paquet Flatpak a Flathub (només a GNU/Linux).

L'aplicació Contrast de GNOME és similar. Podeu descarregar el paquet Flatpak a Flathub (només en GNU/Linux).

Un script en Python al repositori de ressaltat de la sintaxi us permet visualitzar tots els colors d'un tema, així com el contrast amb els diversos fons configurats.

Consells de coherència amb el ressaltat de la sintaxi

El KSyntaxHighlighting inclou més de 300 definicions de ressaltat de la sintaxi, de manera que és ideal assegurar-vos que el nou tema es vegi bé en totes les definicions de ressaltat de la sintaxi. Els temes de color integrats tenen les següents similituds que es recomana (però no és obligatori) seguir per a aconseguir una visualització correcta de totes les definicions de ressaltat de la sintaxi:

  • Utilitzeu negreta per als estils de text «Keyword» i «ControlFlow».

  • No utilitzeu el color de fons en cap estil de text, excepte «Alert» i «RegionMarker».

La majoria dels ressaltadors de la sintaxi estan pensats perquè es vegi bé en els temes predeterminats «Brisa clara» i «Brisa fosca», per tant, una altra forma de mantenir la coherència és utilitzar colors similars en els estils de text, com el green per a «Preprocessor» i «Others», blue per a «DataType» i «Attribute», o purple per a «Function».

Recordeu que aquestes recomanacions no són obligatòries quan es crea i publica un tema.