Os temas de cores definem as cores da área de edição de texto e do realce de sintaxe. Um tema de cores engloba o seguinte:
O estilo do texto, usado para realce de sintaxe através dos atributos de estilo padrão. Por exemplo, a cor do texto e a cor do texto selecionada.
O plano de fundo da área de edição de texto, incluindo a seleção de texto e a linha atual.
A borda do ícone da área de texto: seu fundo, a linha separadora, os números de linha, os marcadores de quebra de linha, as marcas de linha modificadas e o recolhimento de código.
Decoradores de texto, como marcadores de pesquisa, recuo e marcas de tabulação/espaço, a correspondência de parênteses e a verificação ortográfica.
Favoritos e trechos de código.
Para evitar confusão, o seguinte está fora do escopo:
O tipo e o tamanho da fonte.
As cores do aplicativo de edição de texto, como o mapa da barra de rolagem, os menus, a barra de abas, a cor da janela, etc. Em aplicativos do KDE, como o Kate ou o KDevelop, essas cores são definidas pelo
esquema de cores global do KDE Plasma™, que é configurado no módulo “Cores” em Configurações do sistema ou no próprio aplicativo, no menu → .

Temas de cores “Breeze Light” e “Breeze Dark” com realce de sintaxe para “C++”.
O framework KSyntaxHighlighting, que é o mecanismo de realce de sintaxe, é a biblioteca que fornece e gerencia os temas de cores. Isso faz parte do KDE Frameworks™ e é usado no editores de texto do KDE como o Kate, KWrite, Kile e KDevelop. Essa dependência se parece com o seguinte:

Dependência das bibliotecas do KDE Frameworks™ em editores de texto.
O KSyntaxHighlighting inclui uma variedade de temas integrados que são exibidos na página “Temas de cores” do site do editor Kate.
O framework KTextEditor, que é o mecanismo de edição de texto, fornece uma interface de usuário para criar e editar temas de cores, incluindo uma ferramenta para importar e exportar temas. Esta é a maneira mais simples de criar e editar temas; você pode acessá-la através da janela “Configurar” do editor de texto. Mais detalhes em “GUI dos temas de cores”.

A GUI para gerenciar temas de cores nas configurações do Kate.
É importante mencionar que, nos editores de texto do KDE, como o Kate ou o KDevelop, os temas de cores do KSyntaxHighlighting são usados desde o KDE Frameworks™ 5.75, lançado em 10 de outubro de 2020. Anteriormente, os esquemas de cores do Kate (configuração de esquema baseada em KConfig) eram usados e agora estão obsoletos. No entanto, é possível converter os antigos esquemas do Kate para os temas de cores do KSyntaxHighlighting. O repositório do KSyntaxHighlighting inclui o script utils/kateschema_to_theme_converter.py e o utilitário utils/schema-converter/ para essa finalidade.
Os temas de cores são armazenados em arquivos no formato JSON, com a extensão .theme.
No código-fonte do KSyntaxHighlighting, os arquivos JSON dos temas integrados estão localizados no diretório data/themes/. Observe que nos editores de texto, os temas integrados são compilados na biblioteca KSyntaxHighlighting; portanto, a maneira de acessá-los é por meio do código-fonte ou exportando-os da GUI para gerenciar temas do KTextEditor.
Também é possível adicionar facilmente temas adicionais ou personalizados, que são carregados do sistema de arquivos. Os arquivos de tema personalizados pelo usuário estão localizados na pasta org.kde.syntax-highlighting/themes/ na sua pasta de usuário, que você pode encontrar com o comando qtpaths e geralmente são --paths GenericDataLocation e $HOME/.local/share//usr/share/.
Em pacotes Flatpak e Snap, a pasta acima não funcionará, pois o local dos dados é diferente para cada aplicativo. Em um aplicativo Flatpak, o local dos arquivos de tema personalizados geralmente é e em um aplicativo Snap, esse local é $HOME/.var/app/nome-pacote-flatpak/data/org.kde.syntax-highlighting/themes/. $HOME/snap/nome-pacote-snap/current/.local/share/org.kde.syntax-highlighting/themes/
No Windows®, esses arquivos estão localizados em %USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes. %USERPROFILE% geralmente se expande para C:\Users\.nome-de-usuário
Em resumo, para a maioria das configurações, a pasta de temas personalizados é a seguinte:
| Para o usuário local | |
| Para todos os usuários | /usr/share/org.kde.syntax-highlighting/themes/ |
| Para pacotes Flatpak | |
| Para pacotes Snap | |
| No Windows® | %USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes |
| No macOS® | |
Se existirem vários arquivos de tema com o mesmo nome, o arquivo com a revision mais alta será carregado.
A estrutura de um arquivo JSON é explicada em seu site. Basicamente, um arquivo no formato JSON consiste em:
Coleções de pares chave/valor, separados por vírgulas e agrupados em
{ }que chamaremos de “objetos”.Listas ordenadas de valores, separados por vírgulas e agrupados em
[ ]que chamaremos de “array”.
A nomenclatura “chave”, “valor”, “objeto” e “array” será usada neste artigo. Se esta for a sua primeira vez trabalhando com arquivos JSON, entendê-los é tão simples quanto observar os exemplos abaixo.
O objeto raiz do arquivo JSON do tema de cores contém o seguinte esquema de chaves:
metadata: É obrigatória. O valor é um objeto com os metadados do tema, como nome, revisão e licença.Isto é detalhado em “Metadados”.
editor-colors: É obrigatória. O valor é um objeto com as cores da área de edição de texto, como o fundo, a borda do ícone e a decoração do texto.Isto é detalhado em “Cores do editor”.
text-styles: É obrigatória. O valor é um objeto com os atributos de estilo de texto padrão da sintaxe realce de sintaxe. Cada atributo define sua cor do texto, sua cor do texto selecionada ou se está em negrito ou itálico, por exemplo. Os estilos de texto podem ser referenciados a partir dos arquivos XML de definição de sintaxe.Isto é detalhado em “Estilos de texto padrão”.
custom-styles: É opcional. Define estilos de texto para os atributos de definições específicas de realce de sintaxe. Por exemplo, em uma definição de realce comoPythonouMarkdownvocê pode especificar um estilo de texto diferente que substitui o padrão definido emtext-styles.Isto é detalhado em “Estilos de texto de realce personalizados”.
A linguagem JSON não suporta comentários. No entanto, você pode usar a chave opcional _comments no objeto raiz para escrever comentários. Por exemplo, se você estiver adaptando um tema existente, pode inserir a URL do repositório original. A maneira mais prática é usar um array de strings.
Abaixo está um arquivo de exemplo para o tema “Breeze Light”. Você pode notar que, para evitar que o exemplo fique muito grande, os objetos editor-colors e text-styles não contêm todas as chaves necessárias. Você pode ver o arquivo completo do tema “Breeze Light” no repositório do KSyntaxHighlighting.
{
"_comments": [
"Isto é um comentário.",
"Se o tema for uma adaptação de outro, coloque o link para o repositório 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",
As outras chaves de cor do 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"
},
As outras chaves de estilo de texto...
},
"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"
}
}
}
}
O objeto JSON da chave metadata contém informações relevantes sobre o tema. Este objeto possui as seguintes chaves:
nome: É uma string que define o nome da linguagem. Ela aparece nos menus e diálogos posteriormente. É obrigatória.revision: É um número inteiro que especifica a revisão atual do arquivo de tema. Sempre que você atualizar um arquivo de tema de cores, certifique-se de incrementar esse número. É obrigatória.license: É uma string que define a licença do tema, usando o identificadorSPDX-License-Identifierdo formato de comunicação de licença padrão SPDX. É opcional.Você pode ver a lista completa de identificadores de licença SPDX aqui.
copyright: É uma array de strings que especifica os autores do tema, usando o identificadorSPDX-FileCopyrightTextdo formato de comunicação de licença padrão SPDX. É 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"
}
Esta seção detalha todos os atributos de cor disponíveis e as configurações de cor disponíveis.
Corresponde às cores da área de edição de texto.
No arquivo de tema JSON, a chave respectiva editor-colors tem como valor um objeto onde cada chave referencia um atributo de cor do editor de texto. Aqui, todas as chaves disponíveis são obrigatórias, seus valores são strings com códigos de cores hexadecimais, como “#00B5CF”.
Na GUI para gerenciar temas do KTextEditor, esses atributos podem ser modificados na aba Cores.
As chaves disponíveis são as seguintes; as chaves usadas no arquivo JSON estão listadas em negrito, os nomes usados na GUI são mostrados entre parênteses.
- Cores de fundo do editor
BackgroundColor(Área do texto)Este é o plano de fundo padrão para a área do editor; será a cor dominante.

TextSelection(Texto selecionado)Este é o fundo para o texto selecionado.

CurrentLine(Linha atual)Define a cor da linha atual. Se configurar esta cor um pouco diferente do fundo do texto normal, isto o ajudará a concentrar-se na linha atual.

SearchHighlight(Pesquisar realce)Define a cor do texto que corresponda à sua última pesquisa.

ReplaceHighlight(Substituir realce)Define a cor do texto que corresponda à sua última operação de substituição.

- Borda do ícone
IconBorder(Área de fundo)Esta cor é usada para as marcas, números de linhas e bordas das marcações de desdobramento do lado esquerdo da janela de edição, quando forem apresentados.
LineNumbers(Números de linha)Esta cor é usada para desenhar os números de linha do lado esquerdo da janela, quando estiverem visíveis.
CurrentLineNumber(Número da linha atual)Esta cor é usada para desenhar o número da linha atual, no lado esquerdo da visualização. Definir isso um pouco diferente de “LineNumbers” ajuda a manter o foco na linha atual.
Separator(Separador)Esta cor é usada para desenhar a linha vertical que separa a borda do ícone do fundo da área de texto.

WordWrapMarker(Marcador de quebra de linha)Esta cor é usada para desenhar um padrão à esquerda das linhas repartidas com quebra de linha, quando estiverem alinhadas na vertical, assim como para as marcações de quebras de linha estáticas.

CodeFolding(Dobradura de código)Esta cor é usada para destacar a seção de código que será recolhida quando você clicar na seta de recolhimento de código à esquerda de um documento. Para mais informações, consulte a documentação de recolhimento de código.

ModifiedLines(Linhas modificadas)Esta cor é usada para destacar à esquerda de um documento as linhas que foram modificadas, mas ainda não salvas. Para mais informações, consulte “Indicadores de modificação de linhas”.
SavedLines(Linhas salvas)Esta cor é usada para destacar à esquerda de um documento as linhas que foram modificadas nesta sessão e salvas. Para mais informações, consulte “Indicadores de modificação de linhas”.

- Decorações de texto
SpellChecking(Linha com erro de ortografia)Esta cor é usada para indicar erros ortográficos.

TabMarker(Marcadores de espaço e tabulação)Esta cor é usada para desenhar os indicadores de espaços em branco, quando eles estiverem ativos.

IndentationLine(Recuo da linha)Esta cor é usada para desenhar uma linha à esquerda de blocos recuados, se esse recurso estiver ativado.

BracketMatching(Realce de parênteses)Esta cor é usada para desenhar o fundo dos parênteses correspondentes.

- Cores dos marcadores
MarkBookmark(Favorito)Esta cor é usada para indicar marcadores. Observe que esta cor tem uma opacidade de 22% (e 33% para a linha atual) em relação ao fundo. Para mais informações, consulte “Usando os favoritos”.

MarkBreakpointActive(Ponto de parada ativo)Esta cor é usada pelo plugin GDB para indicar um ponto de parada ativo. Observe que esta cor tem opacidade em relação ao fundo. Para mais informações, consulte a documentação do plugin GDB.
MarkBreakpointReached(Ponto de parada atingido)Esta cor é usada pelo plugin GDB para indicar um ponto de parada que você atingiu durante a depuração. Observe que esta cor tem opacidade em relação ao fundo. Para obter mais informações, consulte a documentação do plugin GDB.
MarkBreakpointDisabled(Ponto de parada desativado)Esta cor é usada pelo plugin GDB para indicar um ponto de parada inativo. Observe que esta cor tem opacidade em relação ao fundo. Para mais informações, consulte a documentação do plugin GDB.
MarkExecution(Execução)Esta cor é usada pelo plugin GDB na linha que está sendo executada no momento. Observe que esta cor tem opacidade em relação ao fundo. Para mais informações, consulte a documentação do plugin GDB.
MarkWarning(Aviso)Esta cor é usada pelo plugin de compilação para indicar uma linha que causou um aviso do compilador. Observe que esta cor tem opacidade em relação ao fundo. Para obter mais informações, consulte a documentação do plugin de compilação.
MarkError(Erro)Esta cor é usada pelo plugin de compilação para indicar uma linha que causou um erro do compilador Observe que esta cor tem opacidade em relação ao fundo. Para obter mais informações, consulte a documentação do plugin de compilação.
- Modelos de texto e trechos
TemplateBackground(Fundo)Esta cor é usada pelo plugin de trechos do Kate para marcar o fundo de um trecho de código. Para mais informações, consulte a documentação de trechos do Kate.
TemplatePlaceholder(Espaço reservado editável)Esta cor é usada pelo plugin de trechos do Kate para marcar um espaço reservado que você pode clicar para editar manualmente. Para mais informações, consulte a documentação de trechos do Kate.
TemplateFocusedPlaceholder(Espaço reservado editável focado)Esta cor é usada pelo plugin de trechos do Kate para marcar o espaço reservado que você está editando atualmente. Para mais informações, consulte a documentação de trechos do Kate.

TemplateReadOnlyPlaceholder(Espaço reservado não editável)Esta cor é usada pelo plugin de trechos do Kate para marcar um espaço reservado que não pode ser editado manualmente, como o que é preenchido automaticamente. Para mais informações, consulte a documentação de trechos do Kate.

Os estilos de texto padrão são herdados pelos estilos de texto realçados, permitindo ao editor apresentar o texto de forma bastante consistente. Por exemplo, o texto do comentário usa o mesmo estilo em quase todos os formatos de texto que o KSyntaxHighlighting consegue realçar.
Nota
Esses estilos de texto podem ser referenciados nos estilos padrão usados nos arquivos de definição XML de realce de sintaxe. Por exemplo, o atributo “Normal” é equivalente a “dsNormal” nos arquivos XML e “DataType” é equivalente a “dsDataType”. Consulte “Estilos Padrão Disponíveis” na documentação de realce de sintaxe.
Dica
Certifique-se de escolher cores legíveis com bom contraste, especialmente em combinação com as Cores do editor. Consulte “Contraste das cores do texto”.
No arquivo JSON, a chave text-styles respectiva tem como valor um objeto onde cada chave corresponde ao nome de um estilo de texto padrão, que são equivalentes aos usados nas definições de realce de sintaxe. Aqui, todas as chaves de estilo de texto disponíveis são obrigatórias, e estão listadas abaixo.
"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"
},
As outras chaves de estilo de texto...
}
- Cada chave de estilo de texto padrão possui um objeto JSON como seu valor, onde valores como color, bold, italic, etc. são especificados. Essas chaves são as seguintes:
text-color: É uma string com a cor do texto em código hexadecimal. Este par chave/valor é obrigatório.selected-text-color: A cor do texto quando ele é selecionado geralmente tem o mesmo valor que “text-color”. Quando o texto é selecionado, o fundo é definido pelo valor de TextSelection em Cores do editor, portanto, você deve garantir que o texto tenha bom contraste e seja legível com esse fundo. O valor é uma string com um código de cor hexadecimal. Este par chave/valor é obrigatório.bold: É um booleano que determina se o texto está em negrito. Esta chave é opcional, o valor padrão éfalse.italic: É um booleano que determina se o texto está em itálico. Esta chave é opcional, o valor padrão éfalse.underline: É um booleano que determina se o texto está sublinhado. Esta chave é opcional, o valor padrão éfalse.strike-through: É um booleano que determina se o texto está riscado. Esta chave é opcional, o valor padrão éfalse.background-color: Determina a cor de fundo do texto, usada, por exemplo, em alertas e comentários. O valor é uma string com um código de cor hexadecimal. Esta chave é opcional; por padrão, não há cor de fundo.selected-background-color: Determina a cor de fundo do texto quando ele é selecionado. O valor é uma string com um código de cor hexadecimal. Esta chave é opcional; por padrão, não há cor de fundo.
Na GUI para gerenciar temas de cores do KTextEditor, esses atributos podem ser modificados na aba Estilos de texto padrão. O nome na lista de estilos usa o estilo configurado para o item, fornecendo uma pré-visualização imediata ao configurar um estilo. Cada estilo permite selecionar atributos comuns, bem como cores de primeiro plano e de fundo. Para remover uma cor de fundo, clique com o botão direito do mouse para usar o menu de contexto.
As chaves de estilo de texto disponíveis são as seguintes; as chaves usadas no arquivo JSON estão listadas em negrito, os nomes usados na GUI são mostrados entre parênteses se forem diferentes.
- Texto normal e código-fonte
Normal: Estilo de texto padrão para texto normal e código-fonte sem realce especial.Keyword: Estilo de texto para palavras-chave de linguagem integradas.Function: Estilo de texto para definições de função e chamadas de função.Variable: Estilo de texto para variáveis, se aplicável. Por exemplo, variáveis em PHP/Perl normalmente começam com um$, portanto, todos os identificadores que seguem o padrão$foosão destacados como variáveis.ControlFlow(Fluxo de controle): Estilo de texto para palavras-chave de fluxo de controle, como if, then, else, return, switch, break, yield, continue, etc.Operator: Estilo de texto para operadores, como+,-,*,/,%, etc.BuiltIn(Integrado): Estilo de texto para classes de linguagem, funções e objetos integrados.Extension: Estilo de texto para extensões conhecidas, como classes Qt™, funções/macros em C++ e Python ou boost.Preprocessor: Estilo de texto para instruções do pré-processador ou definições de macro.Attribute: Estilo de texto para anotações ou atributos de funções ou objetos, por exemplo,@overrideem Java, ou__declspec(...)e__attribute__((...))em C++.- Números, tipos e constantes
DataType(Tipo de dados): Estilo de texto para tipos de dados integrados como int, char, float, void, u64, etc.DecVal(Decimal/Valor): Estilo de texto para valores decimais.BaseN(Inteiro de base N): Estilo de texto para números com base diferente de 10.Float(Ponto flutuante): Estilo de texto para números de ponto flutuante.Constant: Estilo de texto para constantes de linguagem e constantes definidas pelo usuário, por exemplo, True, False, None em Python ou nullptr em C/C++; ou constantes matemáticas como PI.- Strings e caracteres
Char(Caractere): Estilo de texto para caracteres únicos como'x'.SpecialChar(Caractere especial): Estilo de texto para caracteres escapados em strings, por exemplo, “olá\n”, e outros caracteres com significado especial em strings, como substituições ou operadores regex.String: Estilo de texto para strings como “olá mundo”.VerbatimString(String Verbatim): Estilo de texto para strings literais ou brutas como'raw\backlash'em Perl, CoffeeScript e shells, bem comor'\raw'em Python, ou como na documentação AQUI.SpecialString(String especial): Estilo de texto para strings especiais, como expressões regulares em ECMAScript, o modo matemático LATEX, SQL, etc.Import(Importações, Módulos, Inclusões): Estilo de texto para inclusões, importações, módulos ou pacotes LATEX.- Comentários e documentação
Comment: Estilo de texto para comentários normais.Documentation: Estilo de texto para comentários que refletem a documentação da API, como/** comentários doxygen */ou"""docstrings""".Annotation: Estilo de texto para anotações em comentários ou comandos de documentação, como@paramem Doxygen ou JavaDoc.CommentVar(Variável de comentário): Estilo de texto que se refere aos nomes das variáveis usadas nos comandos acima em um comentário, comofoobarem “@param foobar”, no Doxygen ou JavaDoc.RegionMarker(Marcador de região): Estilo de texto para marcadores de região, normalmente definido por//BEGINe//ENDem comentários.Information: Estilo de texto para informações, notas e dicas, como a palavra-chave@noteno Doxygen.Warning: Estilo de texto para avisos, como a palavra-chave@warningno Doxygen.Alert: Estilo de texto para palavras especiais em comentários, comoTODO,FIXME,XXXXeWARNING.- Diversos
Error: Estilo de texto indicando realce de erro e sintaxe incorreta.Others: Estilo de texto para atributos que não correspondem a nenhum dos outros estilos padrão.
Aqui você pode definir estilos de texto para uma definição específica de realce de sintaxe, substituindo o estilo de texto padrão descrito na seção anterior.
No arquivo de tema JSON, isso corresponde à chave custom-styles, cujo valor é um objeto onde cada chave de subesquema corresponde ao nome de uma definição de realce de sintaxe. Seu valor é um objeto onde cada chave se refere ao nome dos atributos de estilo definidos nos elementos itemData do arquivo de realce de sintaxe XML, e o respectivo valor é um subobjeto com as chaves text-color, selected-text-color, bold, italic, underline, strike-through, background-color e selected-background-color, definidas na seção anterior. Cada um desses valores é opcional, pois se eles não estiverem presentes, o estilo definido em text-styles é considerado.
Por exemplo, neste trecho de código, a definição de realce de sintaxe “ISO C++” tem um estilo de texto especial para os atributos “Type Modifiers” e “Standard Classes”. No arquivo XML correspondente “isocpp.xml”, o atributo definido “Standard Classes” usa o estilo padrão BuiltIn (ou dsBuiltIn). Neste atributo, apenas o valor de text-color é sobrescrito pela nova cor “#6431b3”.
"custom-styles": {
"ISO C++": {
"Standard Classes": {
"text-color": "#6431b3"
},
"Type Modifiers": {
"bold": true,
"selected-text-color": "#009183",
"text-color": "#00b5cf"
}
}
}
Nota
Você deve levar em consideração que esses estilos de texto estão associados aos nomes de atributos definidos nos arquivos de realce de sintaxe XML. Se um arquivo XML for atualizado e alguns atributos forem renomeados ou removidos, o estilo personalizado definido no tema deixará de ser aplicado.
As definições de realce de sintaxe frequentemente incluem outras definições. Por exemplo, o realçador de sintaxe “QML” inclui o realçador de sintaxe “JavaScript”, já que compartilham funcionalidades de realce.
Na GUI para gerenciar temas do KTextEditor, esses atributos podem ser modificados na aba Estilos de realce de texto. Por padrão, o editor pré-seleciona o realce do documento atual. Você notará que muitos realces contêm outros realces representados por grupos na lista de estilos. Por exemplo, a maioria dos realces importa o realce “Alerta” e muitos formatos de código-fonte importam o realce “Doxygen”.
A maneira mais simples de criar e editar temas de cores é através da GUI dentro da janela “Configurar” fornecida pelo KTextEditor. Para acessá-la, selecione → na barra de menus do seu editor de texto. Isso abrirá a janela Configurar, onde você poderá selecionar Temas de cores no painel lateral.

Janela de configuração do Kate com o gerenciamento de temas de cores.
Nesta janela você pode configurar todas as cores de qualquer tema que você tenha, bem como criar/copiar novos temas, excluí-los, exportá-los para um arquivo .theme com formato JSON ou importá-los de arquivos .theme externos. Cada tema possui configurações para cores e estilos de texto.
Os temas integrados não podem ser modificados por padrão. Para fazer isso, você precisa copiá-los e dar-lhes um novo nome.
Para usar um tema permanentemente em seu editor de texto, você deve selecioná-lo na caixa de combinação rotulada como Tema padrão para aplicativo na parte inferior da janela e pressionar ou . Por padrão, a opção Seleção automática está ativa, que escolhe um tema de cores mais apropriado de acordo com o esquema de cores do KDE Plasma™ usado no aplicativo de edição de texto; geralmente, escolhe entre “Breeze Light” e “Breeze Dark” se o esquema for claro ou escuro, respectivamente.
Dica
Você pode ajustar o esquema de cores global do KDE no módulo “Cores” nas Configurações do sistema. Você também pode alterá-lo individualmente em alguns aplicativos, como o Kate ou o KDevelop, no menu → .
Para criar um novo tema, primeiro é necessário copiar um existente. Selecione um tema existente que você deseja usar como base, como “Breeze Light” ou “Breeze Dark”, e clique em . Em seguida, digite um nome para o novo tema.
Se você quiser modificar um tema integrado ou somente leitura, primeiro você deve copiá-lo com um nome diferente.
Você pode exportar um tema selecionado (incluindo os temas integrados) para um arquivo JSON com a extensão .theme, usando o botão . Isso abrirá uma janela para salvar o arquivo. Para adicionar um tema de cores de um arquivo JSON externo, basta pressionar o botão e selecionar o arquivo .theme na janela.
Dica
Como mencionado acima, os arquivos de tema personalizados pelo usuário são armazenados na pasta
org.kde.syntax-highlighting/themes/. Ao copiar ou criar um tema, ele aparecerá automaticamente lá. Além disso, importar ou adicionar um tema é equivalente a copiar um arquivo.themeexterno para esta pasta. O KSyntaxHighlighting detecta automaticamente os arquivos de tema de cores desta pasta.Se você deseja publicar um tema criado por você, é essencial verificar o objeto metadata do arquivo JSON, adicionando a licença respectiva e verificando o número da revisão.
Aqui, as cores da área de edição de texto são ajustadas. Elas são detalhadas em “Cores do editor”.
Os estilos de texto padrão são herdados pelos estilos de texto realçados, permitindo ao editor apresentar o texto de forma bastante consistente. Por exemplo, o texto do comentário usa o mesmo estilo em quase todos os formatos de texto que o KSyntaxHighlighting consegue realçar.
O nome na lista de estilos está usando o estilo configurado para o item, oferecendo-lhe uma visualização imediata ao configurar um estilo.
Cada estilo permite selecionar atributos comuns, bem como cores de primeiro plano e de fundo. Para remover uma cor de fundo, clique com o botão direito do mouse para usar o menu de contexto.
Os atributos desta área estão detalhados em “Estilos de texto padrão”.
Aqui você poderá editar os estilos de texto usados por uma definição de realce específica. O editor seleciona previamente o realce usado pelo seu documento atual. Para funcionar com um realce diferente, selecione um na lista Realce, acima da lista de estilos.
O nome na lista de estilos está usando o estilo configurado para o item, oferecendo-lhe uma visualização imediata ao configurar um estilo.
Cada estilo permite-lhe selecionar os atributos comuns, assim como as cores de fundo e do texto. Para retirar uma cor de fundo, clique com o botão direito para usar o menu de contexto. Além disso, você poderá verificar se um estilo é igual ao pré-definido que for usado para o item, e configurá-lo como tal, se não estiver.
Você notará que vários realces contém outros realces, representados por grupos na lista de estilos. Por exemplo, a maioria dos realces implementam o realce Alert (Alerta) e muitos formatos de código importam o realce do Doxygen. A edição das cores destes grupos só afetará os estilos se forem usados no formato de realce editado.
Um aspecto importante ao trabalhar com temas de cores é escolher um contraste de texto que facilite a leitura, especialmente em combinação com o fundo.
O aplicativo Kontrast é um verificador de contraste de cores. Ele informa se as combinações de cores de texto e de fundo são legíveis e acessíveis, sendo uma excelente ferramenta para ajudar na criação de temas de cores.
Você pode baixar o Kontrast do site de aplicativos do KDE ou do pacote Flatpak no Flathub (somente para GNU/Linux).
O aplicativo Contrast do GNOME é semelhante. Você pode baixar o pacote Flatpak no Flathub (somente para GNU/Linux).
Um script Python no Repositório de realce de sintaxe permite visualizar todas as cores em um tema, bem como o contraste com os vários planos de fundo configurados.
O KSyntaxHighlighting inclui mais de 300 definições de realce de sintaxe, portanto, é ideal que você se certifique de que seu novo tema fique bem em todas as definições de realce de sintaxe. Os temas de cores integrados têm as seguintes semelhanças que é recomendável (mas não obrigatório) seguir para obter uma exibição correta de todas as definições de realce de sintaxe:
Use negrito para os estilos de texto “Keyword” e “ControlFlow”.
Não use cor de fundo em qualquer estilo de texto, exceto “Alert” e “RegionMarker”.
A maioria dos realçadores de sintaxe são projetados para ter uma boa aparência nos temas padrão “Breeze Light” e “Breeze Dark”, portanto, outra maneira de manter a consistência é usar cores semelhantes nos estilos de texto, como verde para “Preprocessor” e “Others”, azul para “DataType” e “Attribute”, ou roxo para “Function”.
Observe que essas recomendações não são obrigatórias ao criar e publicar um tema.