Renk Temalarıyla Çalışmak

Genel Bakış

Renk temaları, metin düzenleme alanının ve sözdizim vurgulamanın renklerini tanımlar. Bir renk teması, aşağıdakileri içerir:

  • Öntanımlı biçemler öznitelikleri ile sözdizim vurgulamada kullanılan metin biçemi. Örneğin, metin rengi ve seçili metin rengi.

  • Metin düzenleme alanının arka planı; metin seçimi ve geçerli satır içerilmek üzere.

  • Metin alanının simge kenarlıkları: Arka planları, ayırıcı çizgisi, satır numaraları, satır sözcük kaydırma imleyicileri, değiştirilen satır imleri ve kod katlama.

  • Arama imleyicileri, girintileme ve sekme/boşluk çizgisi imleri, ayraç eşleştirme ve yazım denetimi gibi metin dekorasyonları.

  • Yer imleri ve parçacıklar.

Kafa karışıklığını önlemek adına, aşağıdakiler kapsam dışında bırakılmıştır:

  • Yazıtipi türü ve yazıtipi puntosu.

  • Metin düzenleme uygulamasının renkleri; örneğin, sarma çubuğu haritası, menüler, sekme çubuğu, pencere rengi vb. Kate veya KDevelop gibi KDE uygulamalarında, bu renkler KDE Plasma™ global renk şemalarında tanımlıdır. Bu alana, Sistem Ayarları içindeki Renkler modülünde veya uygulamanın kendisinde AyarlarRenk Şeması ögesinden ulaşılabilir.

“C++” sözdizim vurgulamasında “Esinti Açık” ve “Esinti Koyu” renk temaları.

C++ sözdizim vurgulamasında Esinti Açık ve Esinti Koyu renk temaları.

KSyntaxHighlighting Renk Temaları

KSyntaxHighlighting sözdizim vurgulaması işletkesi, renk temalarını sağlayan ve yöneten çatıdır. Bu, KDE Frameworks™’ün bir parçasıdır ve Kate, KWrite, Kile ve KDevelop gibi KDE metin düzenleyicilerinde kullanılır. Bağımlılıkları aşağıdaki gibidir:

Metin düzenleyicilerinde KDE Frameworks™ 5 kitaplıkları.

Metin düzenleyicilerinde KDE Frameworks™ 5 kitaplıkları.

KSyntaxHighlighting içinde, Kate düzenleyicisinin web sayfasının Renk Temaları bölümünde görüntülenen çeşitli yerleşik temalar vardır.

KTextEditor metin düzenleme işletkesi çatısı, renk temaları oluşturmak ve düzenlemek için içe/dışa aktarma araçları da içerilmek üzere bir kullanıcı arayüzü sağlar. Bu, renk temaları oluşturmanın ve düzenlemenin en basit yoludur; buna metin düzenleyicisinin Yapılandırma iletişim kutusundan erişebilirsiniz. Daha fazla ayrıntı için “Renk Temaları Grafik Arayüzü” bölümüne bakın.

Kate ayarlarında renk temalarını yönetmek için kullanılan arayüz.

Kate ayarlarında renk temalarını yönetmek için kullanılan arayüz.

Kate veya KDevelop gibi KDE metin düzenleyicilerinde kullanılan KSyntaxHighlighting renk temaları, 10 Ekim 2020 tarihinde yayımlanan KDE Frameworks™ 5.75 sürümüyle kullanılmaya başlanmıştır. Öncesinde, Kate’in kendi renk şemaları (KConfig tabanlı şema yapılandırması) kullanılıyordu; artık bunlar kullanılmıyor. Yine de, eski Kate şemalarını KSyntaxHighlighting renk şemalarına dönüştürmek olanaklıdır. KSyntaxHighlighting deposunda, bu iş için kullanılan utils/kateschema_to_theme_converter.py betiği ve utils/schema-converter/ izlencesi bulunur.

Renk Temaları JSON Biçimi

Genel Bakış

Renk temaları, JSON biçimli dosyalarda .theme uzantısıyla depolanır.

KSyntaxHighlighting kaynak kodunda, yerleşik temaların JSON dosyaları data/themes/ dizininde bulunur. Metin düzenleyicilerinde yerleşik temaların KSyntaxHighlighting kitaplığıyla derlendiğine dikkat edin; dolayısıyla, onlara erişmek ya kaynak kodundan ya da KTextEditor temalarını yönetmek üzere grafik arayüzden dışa aktarılarak olanaklıdır.

Dosya sisteminden, ek veya özel temaları kolaylıkla eklemek olanaklıdır. Kullanıcılar tarafından özelleştirilen tema dosyaları, kullanıcı klasörünüzdeki org.kde.syntax-highlighting/themes/ dizininde bulunur; bu dizini qtpaths --paths GenericDataLocation komutuyla bulabilirsiniz ve genellikle $HOME/.local/share/ ve /usr/share/ dizinleridir.

Flatpak ve Snap paketlerinde, yukarıdaki dizin işe yaramaz; çünkü her uygulamanın veri konumu farklıdır. Bir Flatpak uygulamasında, özel dosyaların konumu genellikle $HOME/.var/app/flatpak-paketi-adı/data/org.kde.syntax-highlighting/themes/ ve bir Snap uygulamasında ise $HOME/snap/snap-paketi-adı/current/.local/share/org.kde.syntax-highlighting/themes/ olarak kullanılır.

Windows®’ta bu dosyalar genelde C:\Users\user-name %USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes olarak genişleyen %USERPROFILE% konumundadır.

Özet olarak, çoğu yapılandırmada özel tema dizinleri aşağıdaki gibidir:

Yerel kullanıcı için$HOME/.local/share/org.kde.syntax-highlighting/themes/
Tüm kullanıcılar için/usr/share/org.kde.syntax-highlighting/themes/
Flatpak paketleri için$HOME/.var/app/flatpak-paketi-adı/data/org.kde.syntax-highlighting/themes/
Snap paketleri için$HOME/snap/snap-paketi-adı/current/.local/share/org.kde.syntax-highlighting/themes/
Windows® üzerinde%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes
macOS® üzerinde$HOME/Library/Application Support/org.kde.syntax-highlighting/themes/

Aynı adlı birden çok tema dosyası varsa en yüksek revision’a (revizyona) sahip dosya yüklenir.

JSON Yapısı

Bir JSON dosyasının yapısı web sitelerinde açıklanmıştır. Temel olarak, bir JSON biçimi şunlardan oluşur:

  • Adına nesneler dediğimiz ve { } ile gruplanan anahtar/değer çiftleri koleksiyonları.

  • Adına diziliş dediğimiz ve [ ] ile gruplanan sıralı değerler listeleri.

Bu yazıda, anahtar, değer, nesne ve diziliş ögeleri kullanılacaktır. JSON dosyalarıyla ilk tanışmanız ise onları anlamanın en kolay yolu aşağıdaki örneklere bakmaktır.

JSON Renk Teması Dosyalarının Ana Bölümleri

JSON renk teması dosyalarının kök nesnesi aşağıdaki şema anahtarlarını içerir:

  • metadata: Zorunlu. Değer, temanın üst verisi olan bir nesnedir; örneğin, adı, revizyonu ve lisansı.

    Ayrıntılı bilgi için “Üst Veri” bölümüne bakın.

  • editor-colors: Zorunlu. It is mandatory. Değer; arka plan, simge kenarlığı ve metin dekorasyonu gibi metin düzenleme alanının renklerine sahip bir nesnedir.

    Ayrıntılı bilgi için “Düzenleyici Renkleri” bölümüne bakın.

  • text-styles: Zorunlu. Değer, sözdizim vurgulamanın öntanımlı metin biçemi öznitelikleriyle bir nesnedir. Her bir öznitelik; örneğin, kendi metin rengini, seçili metin rengini veya onun kalın veya yatık olup olmadığını tanımlar. Metin biçemlerine XML sözdizim vurgulama dosyalarından başvurulabilir.

    Ayrıntılı bilgi için “Öntanımlı Metin Biçemleri” bölümüne bakın.

  • custom-styles: İsteğe bağlı. Belirli sözdizim vurgulama tanımlarının öznitelekleri için metin biçemlerini tanımları. Örneğin, Python veya Markdown vurgulama tanımlarında, text-styles içinde tanımlı metin biçemini geçersiz kılacak bir metin biçemi tanımlayabilirsiniz.

    Ayrıntılı bilgi için “Özel Vurgulama Metin Biçemleri” bölümüne bakın.

JSON dili yorumları desteklemez. Ancak, yorumlar yazmak için kök nesnede isteğe bağlı _comments anahtarını kullanabilirsiniz. Bu örneğin, önceden var olan bir temayı uyarlıyorsanız özgün deponun URL’sini buraya koyabilirsiniz. En pratik yolu, diziler içeren dizilişler kullanmaktır.

Aşağıda Esinti Açık teması için bir örnek dosyayı görebilirsiniz. Örneğin pek büyük olmasını engellemek için editor-colors ve text-styles nesnelerinin tüm gerekli anahtarları içermediğine dikkat edin. Esinti Açık temasının tam arşivini KSyntaxHighlighting deposunda bulabilirsiniz.

{
    "_comments": [
        "Bu bir yorumdur.",
        "Bu tema bir başkasından uyarlanmışsa özgün deponun bağlantısını buraya koyun."
    ],
    "metadata": {
        "name" : "Esinti Açık",
        "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",
        Diğer düzenleyici renk anahtarları…

    },
    "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"
        },
        Diğer metin biçemi anahtarları…

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

Üst Veri

metadata anahtarının JSON nesnesi, tema üzerine aşağıdaki ilgili bilgiyi içerir. Bu nesnedeki anahtarlar aşağıdaki gibidir:

  • name: Dilin adını ayarlayan bir dizidir. Daha sonra menülerde ve iletişim kutularında görünür. Bu, zorunludur.

  • revizyon: Tema dosyasının geçerli revizyonunu belirten bir tamsayı’dır. Bir renk teması dosyasını güncellediğinizde bu sayıyı artırdığınızdan emin olun. Bu zorunludur.

  • license: Temanın lisansını, standart SPDX lisans iletişim biçiminden alınan SPDX-License-Identifier tanımlayıcısını kullanarak belirten bir dizidir. İsteğe bağlıdır.

    SPDX lisans tanımlayıcılarının tam listesini buradan görebilirsiniz.

  • copyright: Temanın telif hakkını, standart SPDX lisans iletişim biçiminden alınan SPDX-License-Identifier tanımlayıcısını kullanarak belirten bir diziler dizilişidir. İsteğe bağlıdır.

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

Ayrıntılarla Renkler

Bu bölüm, tüm kullanılabilir renk özniteliklerini ve ayarlarını ayrıntılandırır.

Düzenleyici Renkleri

Metin düzenleme alanı renklerine karşılık gelir.

JSON tema dosyasında, ilgili editor-colors anahtarının, her bir anahtarın metin düzenleyicisinin renk özniteliğine başvurduğu bir object değeri vardır. Burada, tüm anahtarlar zorunludur, değerleri ise #00B5CF gibi onaltılık renk değerlerine sahip dizilerdir.

KTextEditor tema yönetim arayüzünde, bu öznitelikler Renkler sekmesinde yapılandırılabilir.

Kullanılabilir anahtarlar aşağıdaki gibidir; JSON dosyasında kullanılan anahtarlar kalın ile, grafik arayüzde kullanılan adlar parantez içinde gösterilirler.

Düzenleyici Arka Plan Renkleri
BackgroundColor (Metin Alanı)

Bu, düzenleyici alanı için varsayılan arka plandır, düzenleyici alanındaki baskın renk olacaktır.

TextSelection (Seçili Metin)

Bu, seçili metnin arka planıdır.

CurrentLine (Geçerli Satır)

Geçerli satırın rengini ayarlayın. Bunu normal metin arka planından biraz farklı bir şekilde ayarlamak, odağın geçerli satırda kalmasına yardımcı olur.

SearchHighlight (Arama Vurgusu)

Son aramanızla eşleşen metnin rengini ayarlayın.

ReplaceHighlight (Değiştirme Vurgusu)

Son değiştirme işleminizle eşleşen metnin rengini ayarlayın.

Simge Kenarlığı
IconBorder (Arka Plan Alanı)

Bu renk, görüntülendiğinde düzenleyici görünümünün sol tarafındaki imleyiciler, satır numaraları ve katlama imleyicisi kenarlıkları için kullanılır.

LineNumbers (Satır Numaraları)

Bu renk, görüntülendiğinde görünümün sol tarafındaki satır numaralarını çizmek için kullanılır.

CurrentLineNumber (Geçerli Satır Numarası)

Bu renk, görüntülendiğinde görünümün sol tarafına geçerli satırın satır numarasını çizmek için kullanılır. Bunu LineNumbers’tan biraz farklı bir şekilde ayarlamak, geçerli satıra odaklanmaya yardımcı olur.

Separator (Ayırıcı)

Bu renk, simge kenarlığını metin alanının arka planından ayıran dikey çizgiyi çizmek için kullanılır.

WordWrapMarker (Sözcük Kaydırma İmleyicisi)

Bu renk, dikey olarak hizalandığında devingen olarak kaydırılan çizgilerin soluna bir desen çizmek ve durgun sözcük kaydırma imleyicisi için kullanılır.

CodeFolding (Kod Katlama)

Bu renk, bir belgenin solundaki kod katlama okuna tıkladığınızda katlanacak kod bölümünü vurgulamak için kullanılır. Daha fazla bilgi için kod katlama belgelendirmesine bakın.

ModifiedLines (Değiştirilen Satırlar)

Bu renk, değiştirilmiş ancak henüz kaydedilmemiş bir belgenin sol tarafındaki satırları vurgulamak için kullanılır. Daha fazla bilgi için “Satır Değişiklik Göstergeleri” bölümüne bakın.

SavedLines (Kaydedilen Satırlar)

Bu renk, bu oturumda değiştirilen ve kaydedilen belgenin sol tarafındaki satırları vurgulamak için kullanılır. Daha fazla bilgi için “Satır Değişiklik Göstergeleri” bölümüne bakın.

Metin Dekorasyonları
SpellChecking (Yazım Yanlışı Satırı)

Bu renk, yazım yanlışlarını belirtmek için kullanılır.

TabMarker (Sekme ve Boşluk İmleyicileri)

Bu renk, etkinleştirildiğinde beyaz alan göstergelerini çizmek için kullanılır.

IndentationLine (Girintileme Satırı)

Bu renk, bu özellik etkinse girintili blokların soluna bir çizgi çizmek için kullanılır.

BracketMatching (Ayraç Vurgusu)

Bu renk, eşleşen ayraçların arka planını çizmek için kullanılır.

İmleyici Renkleri
MarkBookmark (Yer İmi)

Bu renk, yer imlerini belirtmek için kullanılır. Bu rengin arka plana göre %​22 (ve geçerli çizgi için %​33) matlığa sahip olduğunu unutmayın.

MarkBreakpointActive (Etkin Kesme Noktası)

Bu renk, GDB eklentisi tarafından etkin bir kesme noktasını belirtmek için kullanılır. Bu rengin arka planının mat olduğuna dikkat edin. Daha fazla bilgi için GDB eklentisi belgelendirmesine bakın.

MarkBreakpointReached (Ulaşılan Kesme Noktası)

Bu renk GDB eklentisi tarafından hata ayıklama sırasında ulaştığınız bir kesme noktasını belirtmek için kullanılır. Bu rengin arka planının mat olduğuna dikkat edin. Daha fazla bilgi için GDB eklentisi belgelendirmesine bakın.

MarkBreakpointDisabled (Devre Dışı Kesme Noktası)

Bu renk, GDB eklentisi tarafından etkin olmayan bir kesme noktasını belirtmek için kullanılır. Bu rengin arka planının mat olduğuna dikkat edin. Daha fazla bilgi için GDB eklentisi belgelendirmesine bakın.

MarkExecution (Yürütme)

Bu renk, şu anda yürütülen satırdaki GDB eklentisi tarafından kullanılır. Bu rengin arka planının mat olduğuna dikkat edin. Daha fazla bilgi için GDB eklentisi belgelendirmesine bakın.

MarkWarning (Uyarı)

Bu renk, yapı eklentisi tarafından derleyici uyarısına neden olan bir satırı belirtmek için kullanılır. Bu rengin arka planının mat olduğuna dikkat edin. Daha fazla bilgi için yapı eklentisi belgelendirmesine bakın.

MarkError (Hata)

Bu renk, yapı eklentisi tarafından derleyici hatasına neden olan bir satırı belirtmek için kullanılır. Bu rengin arka planının mat olduğuna dikkat edin. Daha fazla bilgi için yapı eklentisi belgelendirmesine bakın.

Metin Şablonları ve Parçacıkları
TemplateBackground (Arka Plan)

Bu renk Kate parçacıkları eklentisi tarafından bir parçacığın arka planını imlemek için kullanılır. Daha fazla bilgi için Kate parçacıkları belgelendirmesine bakın.

TemplatePlaceholder (Düzenlenebilir Yer Tutucu)

Bu renk, Kate parçacıklar eklentisi tarafından elle düzenlemek üzere tıklayabileceğiniz bir yer tutucuyu imlemek için kullanılır. Daha fazla bilgi için Kate parçacıkları belgelendirmesine bakın.

TemplateFocusedPlaceholder (Odaklı Düzenlenebilir Yer Tutucu)

Bu renk, Kate parçacıklar eklentisi tarafından şu anda düzenlediğiniz yer tutucuyu imlemek için kullanılır. Daha fazla bilgi için Kate parçacıkları belgelendirmesine bakın.

TemplateReadOnlyPlaceholder (Düzenlenemez Yer Tutucu)

Bu renk, Kate parçacıklar eklentisi tarafından düzenlenemez olan bir yer tutucuyu; örneğin, kendiliğinden doldurulan tutucular gibi, imlemek için kullanılır. Daha fazla bilgi için Kate parçacıkları belgelendirmesine bakın.

Öntanımlı Metin Biçemleri

Öntanımlı metin biçemleri, vurgulanan metin biçemleri tarafından devralınır ve bu, düzenleyicinin metni çok tutarlı bir biçimde sunmasına olanak tanır; örneğin, yorum metni, KSyntaxHighlighting’in vurgulayabildiği hemen hemen tüm metin biçimlerinde aynı biçemi kullanır.

Not

Bu metin biçemlerine, sözdizim vurgulama XML tanım dosyalarında kullanılan öntanımlı biçemlerden başvurulabilir; örneğin, Normal özniteliği, XML dosyalarındaki dsNormal özniteliğine ve DataType ise dsDataType’a eşdeğerdir. Daha fazla bilgi için sözdizim vurgulama belgelendirmesindeki “Kullanılabilir Öntanımlı Biçemler” bölümüne bakın.

İpucu

Özellikle Düzenleyici Renkleri ile kombine edildiğinde iyi karşıtlık sağlayacak okunabilir renkler seçmeye dikkat edin. Daha fazla bilgi için “Metin Renklerinin Karşıtlığı” bölümüne bakın.

JSON dosyasında, ilgili text-styles anahtarının değeri bir object’e sahiptir; burada her anahtar, sözdizim vurgulama tanımlarında kullanılanlara eşdeğer olan bir öntanımlı metin biçeminin adına karşılık gelir. Burada, zorunlu olan kullanılabilir tüm metin biçemi anahtarları aşağıda listelenmiştir.

"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"
    },
    Diğer metin biçemi anahtarları…
}
Öntanımlı metin biçeminin her bir anahtarının bir JSON nesnesi olan değerleri vardır; buralarda; örneğin, color, bold, italic, vb. değerler belirtilirler. Bu anahtarlar aşağıda listelenmiştir:

text-color: Metin renginin onaltılık bir renk kodunda olduğu bir dizidir. Bu anahtar/değer zorunludur.

selected-text-color: Seçili olan metin renginin değeri genelde text-color ile aynıdır. Metin seçiliyken, arka plan, Düzenleyici Renkleri’nin TextSelection değeriyle belirlenir, bundan dolayı, metnin iyi bir karşıtlığa sahip olduğundan ve bu arka planla okunabilir olduğundan emin olun. Değer, onaltılık renk koduna sahip bir dizidir ve zorunludur.

bold: Metnin kalın olup olmadığını belirten bir Boole değeridir. Bu anahtar isteğe bağlıdır, öntanımlı değer false’tur.

italic: Metnin yatık olup olmadığını belirten bir Boole değeridir. Bu anahtar isteğe bağlıdır, öntanımlı değer false’tur.

underline: Metnin altı çizili olup olmadığını belirten bir Boole değeridir. Bu anahtar isteğe bağlıdır, öntanımlı değer false’tur.

strike-through: Metnin üzeri çizili olup olmadığını belirten bir Boole değeridir. Bu anahtar isteğe bağlıdır, öntanımlı değer false’tur.

background-color: Metnin arka planının belirler; örneğin, yorumlardaki uyarılar için kullanılır. Değer, onaltılık renk koduna sahip bir dizidir. Bu anahtar isteğe bağlıdır ve öntanımlı olarak bir arka plan yoktur.

selected-background-color: Metnin seçiliyken arka planının belirler. Değer, onaltılık renk koduna sahip bir dizidir. Bu anahtar isteğe bağlıdır ve öntanımlı olarak bir arka plan yoktur.

KTextEditor renk temalarını yönetmek için kullanılan arayüzde, bu öznitelikler Öntanımlı Metin Biçemleri sekmesinde değiştirilebilir. Biçem listesindeki ad, öge için yapılandırılan biçemi kullanır ve bir biçemi yapılandırırken size anında bir önizleme sağlar. Her biçem, ortak özelliklerin yanı sıra ön plan ve arka plan renklerini de seçmenize olanak tanır. Bir arka plan rengini kaldırmak için bağlam menüsünü kullanmak üzere sağ tıklayın.

Kullanılabilir metin biçemi anahtarları aşağıda listelenmiştir; JSON dosyasında kullanılan anahtarlar kalın ile, grafik arayüzde kullanılan adlar ise farklılarsa parantez içinde gösterilirler.

Normal Metin ve Kaynak Kodu

Normal: Özel vurgulama olmadan normal metin ve kaynak kodu için öntanımlı metin biçemi.

Keyword: Yerleşik dil anahtar sözcükleri için metin biçemi.

Function: İşlev tanımları ve çağrıları için metin biçemi.

Variable: Kullanılabiliyorsa değişkenler için metin biçemi. Örneğin, PHP/Perl değişkenleri genellikle bir $ ile başlar, bundan dolayı $foo dizgisine uyan tüm tanımlayıcılar değişken olarak vurgulanırlar.

ControlFlow (Denetim Akışı): if, then, else, return, switch, break, yield, continue, vb. gibi denetim akışı anahtar sözcükleri için metin biçemi.

Operator: +, -, *, /, %, vb. gibi işleçler için metin biçemi.

BuiltIn (Yerleşik): Yerleşik dil sınıfları, işlevleri ve nesneleri için metin biçemi.

Extension: İyi bilinen uzantılar; örneğin, Qt™ sınıfları, C++ işlevleri/makroları vb. için metin biçemi.

Preprocessor: Önişlemci ifadeleri veya makro tanımları için metin biçemi.

Attribute: Bilgi notları veya işlevlerin veya nesnelerin öznitelikleri için metin biçemi; örneğin, Java’daki @override veya C++’daki __declspec(…) ve __attribute__((…)).

Sayılar, Türler ve Sabitler

DataType (Veri Türü): int, char, float, void, u64, vb. gibi yerleşik veri türleri için metin biçemi.

DecVal (Ondalık/Değer): Ondalık değerler için metin biçemi.

BaseN (N Tabanlı Tamsayı): 10’dan başka bir tabanlı sayılar için metin biçemi.

Float (Kayan Noktalı): Kayan noktalı sayılar için metin biçemi.

Constant: Dil sabitleri ve kullanıcı tanımlı sabitler için metin biçemi; örneğin, Python’daki True, False, None veya C/C++’daki nullptr veya PI gibi matematik sabitleri.

Diziler ve Karakterler

Char (Karakter): 'x' gibi tekli karakterler için metin biçemi.

SpecialChar (Özel Karakter): Dizilerde kaçırılan karakterler; örneğin, esenlikler\n ve değiştirmeler veya düzenli ifade işleçleri gibi özel anlamlı diğer karakterler için metin biçemi.

String: merhaba dünya gibi diziler için metin biçemi.

VerbatimString (Gerçek Dizi): Gerçek veya ham diziler için metin biçemi; örneğin, Perl, CoffeeScript belgelerindeki gibi 'ham \ters eğik çizgi' veya Python veya HERE belgelerindeki r'\ham' gibi diziler.

SpecialString (Özel Dizi): Özel diziler için metin biçemi; örneğin, ECMAScript düzenli ifadeleri, LATEX matematik kipi, SQL, vb.

Import (Import’lar, Modüller, Include’lar): Include’lar, import’lar, modüller veya LATEX paketleri için metin biçemi.

Yorumlar ve Belgelendirme

Comment: Normal yorumlar için metin biçemi.

Documentation: API belgelendirmesini yansıtan yorumlar için metin biçemi; örneğin, /** doxygen yorumları */ veya """docstrings""".

Annotation: Yorumlardaki bilgi notları veya belgelendirme komutları için metin biçemi; örneğin, Doxygen veya JavaDoc için @param.

CommentVar (Yorum Değişkeni): Yukarıdaki komutlarda bir yorumda kullanılan değişken adlarına başvuran metin biçemi; örneğin, Doxygen veya JavaDoc’ta @param foobar içindeki foobar gibi.

RegionMarker (Bölge İmleyicisi): Genellikle yorumlarda //BEGIN ve //END ile tanımlanan bölge imleyicilerine yönelik metin biçemi.

Information: Bilgi, notlar ve ipuçları için metin biçemi; örneğin, Doxygen @note anahtar sözcüğü gibi.

Warning: Uyarılar için metin biçemi; örneğin, Doxygen’deki @warning anahtar sözcüğü gibi.

Alert: Yorumlardaki özel sözcükler için metin biçemi; örneğin, TODO, FIXME, XXXX ve WARNING.

Çeşitli

Error: Hata vurgulaması ve yanlış sözdizimi belirten metin biçemi.

Others: Diğer öntanımlı biçemlerden hiçbiriyle eşleşmeyen öznitelikler için metin biçemi.

Özel Vurgulama Metin Biçemleri

Burada, önceki bölümde açıklanan öntanımlı metin biçemini geçersiz kılarak, belirli bir sözdizim vurgulama tanımı için metin biçemleri oluşturabilirsiniz.

JSON tema dosyasında bu, değeri her alt şema anahtarının bir sözdizimi vurgulama tanımının adına karşılık geldiği bir nesne olan custom-styles anahtarına karşılık gelir. Onun değeri, her bir anahtarın sözdizim tanımlama XML dosyasının itemData ögesinde tanımlı biçem öznitelikleri adına başvuran bir nesnedir. İlgili değer, text-color, selected-text-color, bold, italic, underline, strike-through, background-color ve selected-background-color anahtarlarıyla bir alt nesnedir. Bu alt nesne, bir önceki bölümde tanımlanmıştır. Bu değerlerin her biri isteğe bağlıdır; eğer yoklarsa text-styles içinde tanımlı biçem kümesi değerlendirilir.

Örneğin bu kod parçasında, ISO C++ sözdizim vurgulama tanımında Type Modifiers ve Standard Classes öznitelikleri için özel bir metin biçemi vardır. Karşılık gelen isocpp.xml XML dosyasında tanımlı Standard Classes özniteliği BuiltIn (veya dsBuiltIn) öntanımlı biçemini kullanır. Bu öznitelikte, yalnızca text-color değerinin yeni #6431b3 değeriyle üzerine yazılır.

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

Not

  • Bu metin biçemlerinin, XML dosyalarını vurgulayan sözdizimde tanımlanan öznitelik adlarıyla ilişkili olduğunu dikkate almalısınız. Bir XML dosyası güncellenirse ve bazı nitelikler yeniden adlandırılırsa veya kaldırılırsa temada tanımlanan özel biçem artık geçerli olmayacaktır.

  • Sözdizim vurgulama tanımları genellikle başka tanımları da içerir. Örneğin, QML vurgulayıcısı, JavaScript vurgulayıcısını da içerir; çünkü bunlar, vurgulamadaki işlevleri paylaşırlar.

KTextEditor tema yönetim arayüzünde, bu öznitelikler Vurgulama Metin Biçemleri sekmesinde yapılandırılabilir. Öntanımlı olarak düzenleyici, geçerli belgenin vurgulamasını önceden seçer. Pek çok vurgunun, biçem listesindeki gruplar tarafından temsil edilen diğer vurguları içerdiğini fark edeceksiniz. Örneğin, öne çıkanların çoğu Alert vurgusunu içe aktarır ve birçok kaynak kodu biçimi de Doxygen vurgusunu içe aktarır.

Renk Temaları Grafik Arayüzü

Renk temaları oluşturmanın ve düzenlemenin en basit yolu, KTextEditor tarafından sağlanan Yapılandırma iletişim kutusunu kullanmaktır. Ona erişmek için düzenleyicinizdeki menü çubuğundan AyarlarUygulama Uygulamasını Yapılandır… yolunu izleyin. Bu, Yapılandır iletişim kutusunu getirir; burada kenar çubuğundaki Renk Temaları girdisini seçin.

Kate’in renk teması yönetimini gösteren ayarlar iletişim kutusu.

Kate’in renk teması yönetimini gösteren ayarlar iletişim kutusu.

Bu iletişim kutusunda, sahip olduğunuz tüm temalardaki tüm renkleri düzenleyebilir, yeni temalar oluşuturabilir/kopyalayabilir, onları silebilir, onları JSON biçimindeki bir .theme dosyasına dışa aktarabilir veya başka .theme dosyalarından içe aktarabilirsiniz. Her bir temanın metin renkleri ve biçemleri için ayarları vardır.

Öntanımlı olarak yerleşik temalar değiştirilemez. Bunu yapmak için bunları kopyalamanız ve onlara yeni bir ad vermeniz gerekir.

Bir temayı metin düzenleyicinizde kalıcı olarak kullanmak için öncelikle onu iletişim kutusunun altındaki Uygulama için öntanımlı tema bölümünde seçmeli ve Uygula veya Tamam düğmelerine basmalısınız. Öntanımlı olarak, Kendiliğinden seçim seçeneği etkindir; bu, metin düzenleme uygulamasında kullanılan KDE Plasma™ renk şemasına daha uygun bir temayı seçer. Şema açık veya koyuysa, genellikle sırasıyla Esinti Açık ve Esinti Koyu temaları arasında geçiş yapılır.

İpucu

KDE global renk şemasını Sistem Ayarları içindeki Renkler modülünde ayarlayabilirsiniz. Bunu, Kate veya KDevelop gibi bazı uygulamalarda AyarlarRenk Teması menüsünden bireysel olarak değiştirebilirsiniz.

Yeni bir tema oluştur

Yeni bir tema oluşturmak için öncelikle var olan bir tanesini kopyalamanız gerekir. Esinti Açık veya Esinti Koyu gibi temel olarak kullanmak istediğiniz var olan bir temayı seçin ve Kopyala’ya tıklayın. Daha sonra yeni tema için bir ad yazın.

Yerleşik veya saltokunur bir temayı değiştirmek istiyorsanız önce onu farklı bir adla kopyalamanız gerekir.

JSON tema dosyalarını içe/dışa aktar

Seçili bir temayı (yerleşik olanları da) bir JSON dosyasına .theme uzantısıyla Dışa Aktar düğmesini kullanarak dışa aktarabilirsiniz. Bu, dosyayı kaydetmek için bir iletişim kutusu açacaktır. Başka dış bir JSON dosyasından bir renk teması eklemek için İçe Aktar düğmesine basın ve iletişim kutusundan .theme dosyasını seçin.

İpucu

  • Yukarıda belirtildiği üzere, kullanıcı tanımlı tema dosyaları org.kde.syntax-highlighting/themes/ dizininde depolanırlar. Bir tema oluşturduğunuzda veya kopyaladığınızda orada kendiliğinden oluşur. Ek olarak, bir tema içe aktarmak veya eklemek, bir .theme dosyasını bu dizine koymakla eşdeğerdir. KSyntaxHighlighting, bu dizinden renk teması dosyalarını kendiliğinden alır.

  • Sizin tarafınızdan oluşturulan bir temayı yayımlamak istiyorsanız JSON dosyasının metadata nesnesine ilgili lisansı eklemeniz ve revizyon numarasını denetlemeniz önemlidir.

Renk temalarını düzenlemek

Renkler

Burada, metin düzenleme alanının renkleri düzenlenirken görebilirsiniz. Bunlar, “Düzenleyici Renkleri” bölümünde ayrıntılı olarak açıklanmıştır.

Öntanımlı Metin Biçemleri

Öntanımlı metin biçemleri, vurgulanan metin biçemleri tarafından devralınır ve bu, düzenleyicinin metni çok tutarlı bir biçimde sunmasına olanak tanır; örneğin, yorum metni, KSyntaxHighlighting’in vurgulayabildiği hemen hemen tüm metin biçimlerinde aynı biçemi kullanır.

Biçem listesindeki ad, öge için yapılandırılan biçemi kullanır ve bir biçemi yapılandırırken size anında bir önizleme sağlar.

Her biçem, ortak özelliklerin yanı sıra ön plan ve arka plan renklerini de seçmenize olanak tanır. Bir arka plan rengini kaldırmak için bağlam menüsünü kullanmak üzere sağ tıklayın.

Bu bölümün öznitelikleri “Öntanımlı Metin Biçemleri” bölümünde ayrıntılı olarak açıklanmıştır.

Metin Vurgulama Biçemleri

Burada, belirli bir vurgu tanımı tarafından kullanılan metin biçemlerini düzenleyebilirsiniz. Düzenleyici, geçerli belgenizin kullandığı vurguyu önceden seçer. Farklı bir vurgu üzerinde çalışmak için biçem listesinin üzerindeki Vurgula çoklu kutusundan birini seçin.

Biçem listesindeki ad, öge için yapılandırılan biçemi kullanır ve bir biçemi yapılandırırken size anında bir önizleme sağlar.

Her biçem, ortak özelliklerin yanı sıra ön plan ve arka plan renklerini de seçmenize olanak tanır. Bir arka plan rengini kaldırmak için bağlam menüsünü kullanmak üzere sağ tıklayın. Ayrıca bir biçemin, öge için kullanılan öntanımlı biçeme eşit olup olmadığını görebilir ve değilse bunu buna ayarlayabilirsiniz.

Pek çok vurgunun, biçem listesindeki gruplar tarafından temsil edilen diğer vurguları içerdiğini fark edeceksiniz. Örneğin, çoğu vurgu, Uyarı vurgusunu içe aktarır ve birçok kaynak kodu biçimi, Doxygen vurgusunu içe aktarır. Bu gruplardaki renkleri düzenlemek, yalnızca düzenlenen vurgu biçiminde kullanıldığında biçemleri etkiler.

İpuçları ve Kolaylıklar

Metin Renklerinin Karşıtlığı

Renk temalarıyla çalışırken önemli bir konu, özellikle arka planla birlikte okumayı kolaylaştıracak bir metin karşıtlığı seçmektir.

Kontrast uygulaması bir renk karşıtlığı denetleyicisidir. Size metin rengi ve arka plan rengi kombinasyonlarının okunabilir ve erişilebilir olduğunu söyler; dolayısıyla bu, renk temaları oluşturmanıza yardımcı olacak mükemmel bir araçtır.

Kontrast uygulamasını from KDE uygulamaları web sitesinden veya Flathub’daki Flatpak paketiyle indirebilirsiniz (yalnızca GNU/Linux).

GNOME Contrast uygulaması da benzer bir uygulamadır. Flathub’daki Flatpak paketiyle indirebilirsiniz (yalnızca GNU/Linux).

Syntax Highlighting deposundaki bir Python betiği, bir temadaki tüm renkleri ve tüm arka planlardaki karşıtlığı ayarlamanıza olanak tanır.

Sözdizim Vurgulamada Tutarlılık Önerileri

KSyntaxHighlighting, 300’den fazla sözdizimi vurgulama tanımı içerir, bu nedenle yeni temanızın tüm sözdizim vurgulama tanımlarında iyi göründüğünden emin olmanız idealdir. Yerleşik renk temaları, tüm sözdizim vurgulama tanımlarının doğru bir şekilde görüntülenmesini sağlamak için takip edilmesi önerilen (ancak zorunlu olmayan) aşağıdaki benzerliklere sahiptir:

  • Keyword ve ControlFlow metin biçemleri için kalın metin kullanın.

  • Alert ve RegionMarker dışındaki herhangi bir metin biçeminde arka plan rengi kullanmayın.

Çoğu sözdizim vurgulayıcı, öntanımlı Esinti Açık ve Esinti Koyu temalarında güzel görünmesi için tasarlanmıştır; dolayısıyla, tutarlılığı korumanın bir başka yolu da metin biçemlerinde benzer renkler kullanmaktır; örneğin, Preprocessor ve Others için yeşil; DataType ve Attribute için mavi veya Function için mor.

Bir tema oluştururken ve yayımlarken bu önerilerin zorunlu olmadığını unutmayın.