KatePart El Kitabı

# KatePart El Kitabı

Thad McGinnis `<ctmcginnis@compuserve.com>`

Anne-Marie Mahfouf `<annma@kde.org>`

Anders Lund `<anders@alweb.dk>`

T.C. Hollingsworth `<tchollingsworth@gmail.com>`

developer: Christoph Cullmann
reviewer: Lauri Watts
Çeviri: Kaan Özdinçer
Çeviri: Emir SARI
Baskı Frameworks
5.94 (2022‒05‒02)

Telif Hakkı © 2000, 2001 Thad McGinnis

Telif Hakkı © 2005 Anne-Marie Mahfouf `<annma@kde.org>`, Anders Lund `<anders@alweb.dk>`

Telif Hakkı © 2011, 2012, 2013, 2014 T.C. Hollingsworth `<tchollingsworth@gmail.com>`

Yasal Uyarı

KatePart, KDE için tam özellikli bir düzenleyici bileşenidir.

Örnekler

5.1. char örnekleri
5.2. Geçerli satırda metin değiştirmek
5.3. Tüm dosyada metin değiştirmek
5.4. Daha Gelişmiş Bir Örnek
5.5. sort ve natsort
5.6. Seçili satırları birbirine kat
5.7. Boş satırları kaldır
5.8. Boş satırları kaldır

Bölüm 1. Giriş
Giriş

# Bölüm 1. Giriş

KatePart, birçok Qt™ ve KDE uygulaması için tam özellikli bir düzenleyici bileşendir. KatePart, bir metin düzenleyicisinden fazlasıdır; bir programcı düzenleyicisi olarak tasarlanmıştır ve daha güçlü düzenleyicilere en azından kısımsal bir alternatif olarak düşünülebilir. KatePart’ın temel özelliklerinden biri, sözdizim renklendirmesidir ve bu özellik birçok programlama dili için özelleştirilmiştir: C/C++, Java™, Python, Perl, Bash, Modula 2, HTML ve Ada.

KWrite, KatePart temelli yalın bir metin düzenleyicisidir. Pencere başına o anda bir dosyayı düzenlemenizi sağlayan tek bir belge arabirimi (SDI) vardır. KWrite, KatePart’ın çok basit bir uygulamasıdır ve kendi belgelendirmesini gerektirmemektedir. KatePart’ın nasıl kullanılacağını biliyorsanız KWrite’ı da kullanabilirsiniz.

Bölüm 2. Bazı Temel Bilgiler
Bazı Temel Bilgiler

# Bölüm 2. Bazı Temel Bilgiler

KWrite ve diğer birçok KatePart kullanımı çok basittir. Daha önce herhangi bir metin düzenleyicisi kullanmış herkes herhangi bir sorun yaşamayacaktır.

## Sürükle ve Bırak

KatePart, KDE Sürükle ve Bırak protokolünü kullanır. Dosyalar Masaüstünden, dosya yöneticisi Dolphin’den veya Dolphin pencerelerinden birinde açılmış bazı uzak FTP sitelerinden KatePart’a sürüklenip bırakılabilir.

Kısayollar
Kısayollar

## Kısayollar

Kısayolların birçoğu, Ayarlar menüsünden yapılandırılabilir. Öntanımlı olarak KatePart, aşağıdaki kısayolları tanır:

Ekle | Ekle ve Üzerine Yaz kipi arasında geçiş yapın. Ekleme kipindeyken düzenleyici, herhangi bir veriyi metin imlecinin sağına doğru iterken, yazılan karakterleri metne ekleyecektir. Üzerine yazma kipi, her karakterin girişinin, metin imlecinin sağındaki karakteri hemen ortadan kaldırmasına neden olur.
Sol Ok | İmleci bir karakter sola taşıyın.
Sağ Ok | İmleci bir karakter sağa taşıyın.
Yukarı Ok | İmleci bir satır yukarı taşıyın.
Aşağı Ok | İmleci bir satır aşağı taşıyın.
Kontrol+E | Belgedeki önceki düzenleme konumuna gidin.
Kontrol+Üst Karakter+E | Belgedeki sonraki düzenleme konumuna gidin.
Seçenek+Üst Karakter+Yukarı Ok | İmleci önceki eşleşen girintiye taşıyın.
Seçenek+Üst Karakter+Aşağı Ok | İmleci önceki eşleşen girintiye taşıyın.
Kontrol+6 | Eşleyen ayraca taşıyın.
Sayfa Yukarı | İmleci bir sayfa yukarı taşıyın.
Sayfa Aşağı | İmleci bir sayfa aşağı taşıyın.
Baş | İmleci satırın başına taşıyın.
Son | İmleci satırın sonuna taşıyın.
Kontrol+Baş | Belgenin başına taşıyın.
Kontrol+Son | Belgenin sonuna taşıyın.
Kontrol+Yukarı Ok | Bir satır yukarı sarın.
Kontrol+Aşağı Ok | Bir satır aşağı sarın.
Kontrol+Sağ Ok | Sözcüğü sağa taşıyın.
Kontrol+Sol Ok | Sözcüğü sola taşıyın.
Kontrol+Üst Karakter+Yukarı Ok | Satırları yukarı taşıyın.
Kontrol+Üst Karakter+Aşağı Ok | Satırları aşağı taşıyın.
Kontrol+. | Seçili satırları aşağıya çoğaltın.
Kontrol+B | Bir yer imi koyun.
Seçenek+Sayfa Yukarı | Önceki yer imine gidin.
Seçenek+Sayfa Aşağı | Sonraki yer imine gidin.
Sil | İmlecin sağındaki karakteri (veya seçili herhangi bir metni) silin.
Geri Sil | İmlecin solundaki karakteri silin.
Kontrol+Sil | Sağdaki sözcüğü silin.
Kontrol+Geri Sil | Soldaki sözcüğü silin.
Kontrol+K | Satırı silin.
Üst Karakter+Giriş | Geçerli satırın harf veya rakam olmayan baştaki karakterlerini içeren yeni satır ekleyin. Örneğin, koda yorum yazmak için kullanışlıdır: Satırın sonunda “// bir metin” bu kısayola basın ve sonraki satır yine “// ” ile başlar. Yani yorum içeren her yeni satırın başına yorum karakterlerini girmenize gerek yoktur.
Kontrol+Üst Karakter+Giriş | Geçerli satırın altına yeni bir satır oluşturun.
Kontrol+Seçenek+Giriş | Geçerli satırın üstüne yeni bir satır oluşturun.
Üst Karakter+Sol Ok | Metni bir karakter sola imleyin.
Üst Karakter+Sağ Ok | Metni bir karakter sağa imleyin.
Kontrol+F | Bir şeyler bulun.
F3 | Sonrakini bulun.
Üst Karakter+F3 | Öncekini bulun.
Kontrol+H | Seçiliyi bulun.
Kontrol+Üst Karakter+H | Seçiliyi geriye doğru bulun.
Kontrol+Üst Karakter+Sağ Ok | Sözcüğü sağa doğru seçin.
Kontrol+Üst Karakter+Sol Ok | Sözcüğü sola doğru seçin.
Üst Karakter+Baş | Satırın başına kadar seçin.
Üst Karakter+Son | Satırın sonuna kadar seçin.
Üst Karakter+Yukarı Ok | Önceki satıra kadar seçin.
Üst Karakter+Aşağı Ok | Sonraki satıra kadar seçin.
Kontrol+Üst Karakter+6 | Eşleşen ayraca kadar seçin.
Kontrol+Üst Karakter+Sayfa Yukarı | Görünümün en üstüne kadar seçin.
Kontrol+Üst Karakter+Sayfa Aşağı | Görünümün en altına kadar seçin.
Üst Karakter+Sayfa Yukarı | Bir sayfa yukarıya kadar seçin.
Üst Karakter+Sayfa Aşağı | Bir sayfa aşağıya kadar seçin.
Kontrol+Üst Karakter+Baş | Belgenin başına kadar seçin.
Kontrol+Üst Karakter+Son | Belgenin sonuna kadar seçin.
Kontrol+Baş | Tümünü seçin.
Kontrol+Üst Karakter+A | Seçimi kaldırın.
Kontrol+Üst Karakter+B | Blok seçim kipine geçin.
Kontrol+C / Kontrol+Ekle | İmlenen metni panoya kopyalayın.
Kontrol+D | Yorum yazın/geçin.
Kontrol+Üst Karakter+D | Yorumu kaldırın.
Kontrol+G | Satıra gidin…
Kontrol+I | Seçimi girintileyin.
Kontrol+Üst Karakter+I | Seçimin girintisini kaldırın.
Kontrol+J | Satırları birbirine katın.
Kontrol+P | Bir şeyler yazdırın.
Kontrol+R | Bir şeyleri başkasıyla değiştirin.
Kontrol+S | Kaydet komutunu çağırır.
Kontrol+Üst Karakter+S | Farklı kaydedin.
Kontrol+U | BÜYÜK harfe çevirin.
Kontrol+Üst Karakter+U | küçük harfe çevirin.
Kontrol+Seçenek+U | Baş harfleri büyütün.
Kontrol+V / Üst Karakter+Ekle | Pano metnini düzenleme satırına yapıştırın.
Kontrol+X / Üst Karakter+Ekle | İmli metni silin ve panoya kopyalayın.
Kontrol+Z | Geri al yapın.
Kontrol+Üst Karakter+Z | Yineleyin.
Kontrol+- | Yazıtipini küçültün.
Kontrol++Kontrol+= | Yazıtipini büyütün.
Kontrol+Üst Karakter+- | Üst düzey düğümleri katlayın.
Kontrol+Üst Karakter++ | Üst düzey düğümlerin katını açın.
Kontrol+Boşluk | Kod tamamlamayı çağırın.
F5 | Yeniden yükleyin.
F6 | Simge kenarlığını gösterin/gizleyin.
F7 | Komut satırına geçin.
F9 | Katlama imlerini gösterin/gizleyin.
F10 | Devingen sözcük kaydırmayı etkinleştirin.
F11 | Satır numaralarını gösterin/gizleyin.
Kontrol+T | Karakterlerin yerini değiştirin.
Kontrol+Üst Karakter+O | Kendiliğinden yazım denetimi yapın.
Kontrol+Üst Karakter+V | Sonraki giriş kipine geçin.
Kontrol+8 | Yukarıdaki sözcüğü yeniden kullanın.
Kontrol+9 | Aşağıdaki sözcüğü yeniden kullanın.
Kontrol+Seçenek+# | Kısaltmayı genişletin.
Kontrol+Seçenek+Yukarı Ok | Geçerli imlecin üzerine bir imleç ekleyin.
Kontrol+Seçenek+Aşağı Ok | Geçerli imlecin altına bir imleç ekleyin.
Üst Karakter+Seçenek+I | Seçimdeki her satırın sonunda bir imleç oluşturun.
Seçenek+J | İmlecin altındaki sözcüğün bir sonraki oluşunu bulun ve onu seçin.
Kontrol+Seçenek+Üst Karakter+J | İmlecin altındaki sözcüğün tüm oluşlarını bulun ve onları seçin.

Bölüm 3. KatePart düzenleyicisiyle çalışmak
KatePart düzenleyicisiyle çalışmak

# Bölüm 3. KatePart düzenleyicisiyle çalışmak

Anders Lund `<anders@alweb.dk>`

Dominik Haumann `<dhdev@gmx.de>`

Çeviri: Emir SARI

## Genel Görünüm

KatePart düzenleyicisi KatePart penceresinin düzenleme alanıdır. Bu düzenleyici Kate ve KWrite arasında paylaşılır ve aynı zamanda yerel bilgisayarınızdan veya ağdan gelen metin dosyalarını görüntülemek için Konqueror’da da kullanılabilir.

Düzenleyici aşağıdaki bileşenlerden oluşur:

Düzenleme Alanı

  Bu belgenizin metninin konumlandığı yerdir.

Sarma Çubukları

  Sarma çubukları, belge metninin görünür kısmının konumunu belirtir ve belgede dolaşmak için kullanılabilir. Sarma çubuklarının sürüklenmesi, ekleme imlecinin hareket etmesine neden olmaz.

  Sarma çubukları gerektikçe görüntülenir veya gizlenir.

Simge Kenarlığı

  Simge kenarlığı, düzenleyicinin sol tarafında, imli satırların yanında küçük bir simge görüntüleyen küçük bir bölmedir.

  Görünür bir satırdaki yer imini, o satırın yanındaki simge kenarlığına Sol Fare Düğmesi ile tıklayarak ayarlayabilir veya kaldırabilirsiniz.

  Simge kenarlığının görüntülenmesi Görünüm → Simge Kenarlığını Göster menü ögesi ile açılıp kapatılabilir.

Satır Numaraları Bölmesi

  Satır numaraları bölmesi, belgedeki tüm görünür satırların satır numaralarını gösterir.

  Satır numaraları bölmesinin görüntülenmesi, Görünüm → Satır Numaralarını Göster menü ögesi ile açılıp kapatılabilir.

Katlama Bölmesi

  Katlama bölmesi, katlanabilir satır bloklarını daraltmanıza veya genişletmenize olanak tanır. Katlanabilir bölgelerin hesaplanması, belgenin sözdizim vurgulama tanımındaki kurallara göre yapılır.

Yine bu fasılda:

- Metinde Dolaşmak

- Seçimle Çalışmak

- Metin Kopyalamak ve Yapıştırmak

- Metin Bul ve Değiştir

- Yer İmlerini Kullanmak

- Kendiliğinden Metin Kaydırma

- Otomatik girintileme kullanarak

Metinde Dolaşmak
Metinde Dolaşmak

## Metinde Dolaşmak

KatePart’de metinde dolaşmak çoğu grafik metin düzenleyicisi ile benzerdir. İmleci, Kontrol ve Üst Karakter niteleyicileriyle birlikte ok düğmelerini ve Sayfa Yukarı, Sayfa Aşağı, Baş ve Son düğmelerini kullanarak hareket ettirirsiniz. Üst Karakter düğmesi her zaman bir seçim üretmek için kullanılırken, Kontrol düğmesinin farklı düğmeler üzerinde farklı etkileri vardır:

- Yukarı Ok ve Aşağı Ok düğmeleri için imleci hareket ettirmekten ziyade sarma anlamına gelir.

- Sol Ok ve Sağ Ok düğmeleri için karakterler yerine sözcükleri atlama anlamına gelir.

- Sayfa Yukarı ve Sayfa Aşağı düğmeleri için tarama yerine görünümün görünür kenarına hareket etme anlamına gelir.

- Baş ve Son düğmeleri için satır başı ve sonu yerine belgenin başına ve sonuna git anlamı taşır.

KatePart ayrıca eşleşen ayraç veya parantezlere tez atlamanın bir yolunu da sağlar: İmleci parantez veya ayraç karakterinin içine yerleştirin ve eşleşen parantez veya ayraca atlamak için Kontrol+6 kısayolunu kullanın.

Ek olarak, kendi tanımladığınız konumlara tez atlamak için yer imlerini kullanabilirsiniz.

Seçimle Çalışmak
Seçimle Çalışmak

## Seçimle Çalışmak

KatePart içinde iki temel metin seçim yolu bulunur: Fareyi ve klavyeyi kullanarak.

Fareyi kullanarak seçim yapmak için fare imlecini seçimin başlaması gereken yerden istenen bitiş noktasına sürüklerken Sol Fare Düğmesi’ni basılı tutun. Siz sürükledikçe metin seçilir.

Bir sözcüğe çift tıklamak o sözcüğü seçecektir.

Bir satıra üç kez tıklamak tüm satırı seçecektir.

Tıklarken Üst Karakter basılı tutulursa metin seçilecektir:

- Halihazırda bir şey seçili değilse metin imleci konumundan fare imleci konumuna kadar.

- Bir seçim varsa bu seçimden fare imleci konumuna kadar.

### Not

Fareyi sürükleyerek metin seçerken, seçili metin panoya kopyalanır ve düzenleyicide veya metni yapıştırmak istediğiniz başka herhangi bir uygulamada farenin orta tuşuna basılarak yapıştırılabilir.

Klavyeyi kullanarak seçim yapmak için dolaşma (ok düğmeleri, Sayfa Yukarı, Sayfa Aşağı, Baş ve Son, metin imlecinin hareketini genişletmek için büyük olasılıkla Kontrol ile birlikte) düğmelerini kullanırken Üst Karakter düğmesini basılı tutun.

Bu fasıldaki Metinde Dolaşmak bölümüne de göz atın.

Geçerli seçimi kopyalamak için Düzen → Kopyala menü ögesini veya klavye kısayolunu kullanın (öntanımlı olarak Kontrol+C).

Geçerli seçimi kaldırmak için Seçim → Seçimi Kaldır menü ögesini veya klavye kısayolunu kullanın (öntanımlı olarak Kontrol+Üst Karakter+A) veya düzenleyicide Sol Fare Düğmesi ile tıklayın.

### Blok Seçimi Kullanmak

Blok Seçim Kipi etkinleştirildiğinde, metinde “dikey seçimler” yapabilirsiniz; bu, birden çok satırdan sınırlı sayıda sütunların seçilebilmesi anlamına gelir. Bu; örneğin, sekmeyle ayrılmış satırlarla çalışmak için kullanışlıdır.

Blok Seçim Kipi Seçim → Blok Seçim Kipi menü ögesiyle açılıp kapatılabilir. Öntanımlı klavye kısayolu: Kontrol+Üst Karakter+B.

### Seçimin Üzerine Yazmayı Kullanmak

Seçimin Üzerine Yaz etkinleştirilirse seçime metin yazmak veya yapıştırmak, seçili metnin değiştirilmesine neden olur. Etkinleştirilmezse metin imlecinin konumuna yeni metin eklenir.

Seçimin Üzerine Yaz öntanımlı olarak etkindir.

Bu seçeneğin ayarını değiştirmek için Yapılandırma İletişim Kutusu’ndaki İmleç ve Seçim sayfasını kullanın.

### Kalıcı Seçimi Kullanmak

Kalıcı Seçim etkinleştirildiğinde, karakterler girmek veya imleci hareket ettirmek seçimin kaldırılmasına neden olmaz. Bu, imleci seçimden uzaklaştırıp metin yazabileceğiniz anlamına gelir.

Kalıcı Seçim öntanımlı olarak devre dışıdır.

Kalıcı Seçim, Yapılandırma İletişim Kutusu’ndaki İmleç ve Seçim sayfasından etkinleştirilebilir.

### Uyarı

Kalıcı Seçim ve Seçimin Üzerine Yaz etkinse metin imleci seçimin içindeyken yazmak veya metin yapıştırmak metnin değiştirilmesine ve seçimin kaldırılmasına neden olur.

Metin Kopyalamak ve Yapıştırmak
Metin Kopyalamak ve Yapıştırmak

## Metin Kopyalamak ve Yapıştırmak

Metin kopyalamak için metni seçin ve Düzen → Kopyala menü ögesini kullanın. Ek olarak, metni fareyle seçmek, metnin X panosuna kopyalanmasıne neden olacaktır.

Şu anda panoda olan metni yapıştırmak için Düzen → Yapıştır menü ögesini kullanın.

Ayrıca fareyle seçilen metin, Orta Fare Düğmesi ile tıklanarak istenilen konuma yapıştırılabilir.

### İpucu

KDE masaüstünü kullanıyorsanız daha önceden kopyalanan metinleri sistem tepsisindeki Klipper simgesine tıklayarak alabilirsiniz.

Metin Bul ve Değiştir
Metin Bul ve Değiştir

## Metin Bul ve Değiştir

### Ara ve Değiştir Çubukları

KatePart’de artımlı bir arama çubuğu ve güçlü arama ve değiştirme çubuğu bulunur; bu, birkaç ek seçeneğin yanı sıra yeni bir dizi girme olanağı sunar.

Çubuklar şu ortak seçenekleri sunar:

Bul

  Arama dizisinin girileceği yer burasıdır. Dizinin yorumlanması aşağıda açıklanan seçeneklerden bazılarına bağlıdır.

BÜYÜK/küçük harf eşleştir

  Etkinleştirilirse arama, arama dizgisindeki karakterlerin her birinin BÜYÜK/küçük harfiyle eşleşen girişlerle sınırlı olacaktır.

Gelişmiş ara ve değiştir çubuğu bazı ek seçenekler sunar:

Düz metin

  Arama dizisinin herhangi bir örneğini eşleştirin.

Tam sözcükler

  Seçilirse arama, yalnızca dizi eşleşmesinin her iki ucunda da bir sözcük sınırı varsa eşleşir; bu, abece-sayısal bir karakter anlamına gelmez — başka bir görünür karakter veya satır sonu olabilir.

Kaçış dizileri

  Seçilirse metin kutularının bağlam menüsünün altındaki Ekle menü ögesi etkinleştirilir ve önceden tanımlanmış bir listeden arama dizgisine kaçış dizileri eklemenize olanak tanınır.

Düzenli ifadeler

  Seçilirse arama dizisi, düzenli ifade olarak yorumlanır. Metin kutularının bağlam menüsünün altındaki Ekle menü ögesi etkinleştirilir ve arama dizgisine önceden tanımlanmış bir listeden düzenli ifade ögeleri eklemenize olanak tanınır.

  Bu konu hakkında daha fazla bilgi için Düzenli İfadeler bölümüne bakın.

Yalnızca seçimde ara

  İşaretlenirse ara ve değiştir yalnızca seçili metin içinde gerçekleştirilir.

Tümünü bul

  Bu düğmeye tıklamak, belgedeki tüm eşleşmeleri vurgular ve bulunan eşleşmelerin sayısını küçük bir açılır pencerede gösterir.

### Metin Bulmak

Metin bulmak için Kontrol+F klavye kısayoluyla veya Düzen → Bul… menü ögesinden artımlı arama çubuğunu başlatın.

Bu, düzenleyici penceresinin altındaki artımlı arama çubuğunu açar. Çubuğun sol tarafında, çubuğu kapatmak için bir simgenin bulunduğu bir düğme ve ardından arama dizgisini girmek için küçük bir metin kutusu bulunur.

Arama dizginizin karakterlerini girmeye başladığınızda arama hemen başlar. Metinde bir eşleşme varsa bu vurgulanır ve giriş alanının arka plan rengi açık yeşil olarak değişir. Arama dizgisi herhangi bir diziyle eşleşmezse metinde bu, giriş alanının açık kırmızı arka plan rengiyle belirtilir.

Belgedeki önceki veya sonraki eşleşmeye atlamak için veya düğmelerini kullanın.

Arama çubuğunu kapattığınızda bile belgedeki eşleşmeler vurgulanır. Bu vurgulamayı temizlemek için Esc; düğmesine basın.

Aramanızın BÜYÜK/küçük harf duyarlı olup olmayacağını seçebilirsiniz. seçmek, arama dizgisindeki her bir karakterin metindeki BÜYÜK/küçük harflerle eşleşip eşleşmeyeceğini seçmenize olanak tanır.

Gelişmiş ara ve değiştir çubuğuna geçmek için artımlı arama çubuğunun sağ tarafındaki düğmesine tıklayın.

Son bulma işlemini (varsa) artımlı arama çubuğunu çağırmadan yinelemek için Düzen → Sonrakini Bul (F3) veya Düzen → Öncekini Bul (Üst Karakter+F3) ögelerini kullanın.

### Metni Değiştirmek

Metni değiştirmek için Düzen → Değiştir menü ögesini veya Kontrol+R kısayolunu kullanarak gelişmiş arama çubuğunu başlatın.

Çubuğun sol üst tarafında, çubuğu kapatmak için bir simge bulunan bir düğme ve ardından arama dizgisini girmek için küçük bir birleşik giriş kutusu bulunur. Kutu, son kullanılan dizgileri anımsar.

Arama kipini, açılır kutudan Düz metin, Tam sözcükler, Kaçış dizileri veya Düzenli ifade seçeneklerini kullanarak denetleyebilirsiniz.

Kaçış dizileri veya Düzenli ifade seçilirse metin kutularının bağlam menüsünün altında bulunan Ekle… düğmesi etkinleştirilir ve ara ve değiştir dizgilerine önceden tanımlanan listelerden kaçış dizileri veya düzenli ifade ögeleri eklemenize olanak tanır.

Belgedeki önceki veya sonraki eşleşmeye atlamak için veya düğmelerini kullanın.

Değiştir etiketli metin kutusuna değiştirilecek metni girin ve yalnızca vurgulanan metni değiştirmek için Değiştir düğmesini veya tüm belgedeki arama metnini değiştirmek için Tümünü Değiştir düğmesine tıklayın.

Çubuğun altındaki bölümden değişik seçenekler seçerek ara ve değiştir davranışını değiştirebilirsiniz. seçmek, aramayı BÜYÜK/küçük harf eşleşen girdilere sınırlar. , yalnızca geçerli seçimde ara ve değiştir yapar. Tümünü Bul düğmesi, belgedeki tüm eşleşmeleri vurgular ve küçük bir açılır pencerede bulunan eşleşme sayısını görüntüler.

Artımlı arama çubuğuna geçmek için gelişmiş arama çubuğunun sağ tarafındaki düğmesine tıklayın.

### İpucu

Değiştirilecek metni bulmak için düzenli bir ifade kullanıyorsanız ifadenin parantez içindeki alt dizgilerinde yakalanan metni yeniden kullanmak için geriye başvurulardan yararlanabilirsiniz.

Bu konu hakkında daha fazla bilgi için Düzenli İfadeler bölümüne bakın.

### İpucu

Komut satırından find (bul), replace (değiştir) ve ifind (artımlı arama) yapabilirsiniz.

Yer İmlerini Kullanmak
Yer İmlerini Kullanmak

## Yer İmlerini Kullanmak

Yer imleri özelliği, belirli satırları imlemenize ve bunları yeniden kolayca bulabilmenize olanak tanır.

Bir satırdaki yer imini iki yolla koyabilir veya kaldırabilirsiniz:

- Ekleme imlecini satıra götürün ve Yer İmleri → Yer İmi Koy (Kontrol+B) komutunu kullanın.

- Satırın yanındaki simge kenarlığına tıklayın.

Yer imleri, Yer İmleri menüsünden kullanılabilir. Bireysel yer imleri, yer iminin bulunduğu satırın satır numarasıyla ve satırdaki metnin ilk birkaç karakteriyle etiketlenmiş menü ögeleri olarak bulunur. Ekleme imlecini, yer imi koyulmuş bir satırın başına taşımak için menüyü açın ve yer imini seçin.

Yer imleri arasında tez gezinmek veya önceki/sonraki yer imine gitmek için Yer İmleri → Sonraki (Seçenek+Sayfa Aşağı) veya Yer İmleri → Önceki (Seçenek+Sayfa Yukarı) komutlarını kullanın.

Metni Kendiliğinden Kaydırmak
Metni Kendiliğinden Kaydırmak

## Metni Kendiliğinden Kaydırmak

Bu özellik, metni çok basit bir şekilde biçimlendirmenize olanak tanır: Metin kaydırılır, böylece boşluk olmayan karakterlerden oluşan daha uzun bir dizi olmadığı sürece hiçbir satır, satır başına en çok karakter sayısını aşmaz.

Etkinleştirmek veya devre dışı bırakmak için yapılandırma iletişim kutusundaki Düzenleme sayfasından Durağan Sözcük Kaydırma onay kutusunu işaretleyin veya işaretini kaldırın.

En büyük satır genişliğini ayarlamak için (satır başına en çok karakter) yapılandırma iletişim kutusundaki Düzenleme sayfasından Sözcükleri şurada kaydır seçeneğini kullanın.

Etkinleştirilirse şunlara neden olur:

- Yazarken düzenleyici, en çok satır genişliğine ulaşılmadan önceki bir konuma, son boşluk karakterinden sonra kendiliğinden sabit bir satır sonu ekleyecektir.

- Bir belgeyi yüklerken düzenleyici, metni benzer şekilde kaydırır, böylece herhangi bir boşluk varsa hiçbir satır en büyük satır genişliğinden daha uzun olmayacaktır.

### Not

Şu anda belge türleri için sözcük kaydırmayı ayarlamanın, hatta özelliği belge başına etkinleştirmenin veya devre dışı bırakmanın bir yolu yoktur. Bu, KatePart’in gelecekteki bir sürümünde düzeltilecektir.

Kendiliğinden Girintilemeyi Kullanmak
Kendiliğinden Girintilemeyi Kullanmak

## Kendiliğinden Girintilemeyi Kullanmak

KatePart’in düzenleyici bileşeni, çeşitli metin biçimleri için tasarlanan birçok kendiliğinden girintileme aracını destekler. Araçlar → Girintileme menüsünden kullanılabilir kipleri seçebilirsiniz. Kendiliğinden girintileme modülleri ayrıca, seçili veya geçerli satırın girintilemesini yeniden hesaplayan bir Araçlar → Girintilemeyi Biçimlendir işlevine sahiptir. Böylece, metni seçip bu eylemi etkinleştirerek tüm belgenizi yeniden girintileyebilirsiniz.

Tüm girinti kipleri, etkin belgedeki girintilemeyle ilgili ayarları kullanır.

### İpucu

Girintilemeyle ilgili her tür yapılandırma değişkenini Belge Değişkenleri ve Dosya Türleri kullanarak ayarlayabilirsiniz.

Kullanılabilir Kendiliğinden Girintileme Kipleri

Yok

  Bu kipi seçmek kendiliğinden girintilemeyi tümüyle kapatır.

Normal

  Bu girinti, boşluk dışındaki herhangi bir içerikteki girintiyi önceki satıra benzer şekilde tutar. Bunu, kendi zevkinize göre girinti yapmak için girintileme ve girintiyi kaldırma eylemlerini kullanarak birleştirebilirsiniz.

C Tarzı

  C ve benzeri diller (C++, C#, Java™, JavaScript vb.) için bir girintileyici. Bu girintileyici, Perl veya PHP gibi betik yazımı dilleriyle çalışmaz.

Haskell

  İşlevsel programlama dili Haskell için bir girintileyici.

Lilypond

  Müzik simgelemi yazım dili Lilypond için bir girintileyici.

Lisp

  Özellikle Lisp betik yazımı dili ve Lisp lehçeleri için bir girintileyici.

Python

  Python betik yazımı dili için özel girintileyici.

XML Tarzı

  XML benzeri diller için özel bir girintileyici.

Satır Değişiklik Göstergeleri
Satır Değişiklik Göstergeleri

## Satır Değişiklik Göstergeleri

KatePart’in satır değişikliği göstergeleri, bir dosyada en son neleri değiştirdiğinizi kolayca görmenizi sağlar. Öntanımlı olarak, kaydedilen değişiklikler belgenin solundaki yeşil bir çubukla gösterilirken, kaydedilmemiş değişiklikler turuncu bir çubukla gösterilir.

Satır Değişiklik Göstergeleri kullanılırken.

Kullanılan renkleri, Yazıtipleri ve Renkler yapılandırma panelinden değiştirebilir veya bu özelliği Appearance yapılandırma panelinin Kenarlıklar sekmesinden devre dışı bırakabilirsiniz.

Sarma Çubuğu Mini Haritası
Sarma Çubuğu Mini Haritası

## Sarma Çubuğu Mini Haritası

KatePart’in Sarma Çubuğu Mini Haritası, sarma çubuğu yerine belgenin önizlemesini görüntüler. Belgenin o anda görünen kısmı vurgulanır.

Sarma Çubuğu Mini Haritası, Kate kaynak kodunun bir önizlemesini gösterirken.

Görünüm → Sarma Çubuğu Mini Haritası menü ögesini seçerek veya KatePart yapılandırmasının Görünüş bölümünden kalıcı olarak etkinleştirebilir veya devre dışı bırakabilirsiniz.

Çoklu İmleçler
Çoklu İmleçler

## Çoklu İmleçler

Çoklu imleç desteği, katepart 5.93 sürümünde eklendi.

### Birden çok imleç oluşturmak

- Onları oluşturmak için Seçenek + Sol Fare Düğmesi kullanın. Niteleyici kombinasyon yapılandırılabilirdir; Çoklu imleç niteleyicisini yapılandırmak bölümüne bakın

- Klavyeyle birincil imlecin üstünde oluşturmak için Kontrol+Seçenek+Yukarı Ok, altında oluşturmak için Kontrol+Seçenek+Aşağı Ok kısayollarını kullanın. Bu kısayollar yapılandırılabilirdir

- Bir seçimden imleçler oluşturmak için önce biraz metin seçin ve sonrasında Üst Karakter+Seçenek+I kısayolunu kullanın. Bu, seçimdeki her bir satırın sonunda bir imleç oluşturacaktır.

- İmlecin altındaki sözcüğün bir sonraki oluşunu bulmak için Seçenek+J kısayolunu kullanın ve onu seçin, sonrasında bir imleç oluşturun. İmleç altındaki geçerli sözcüğü atlamak istiyorsanız Seçenek+K kısayolunu kullanın ve bu, geçerli seçili sözcüğü atlanmış olarak imler. Seçenek+J kısayoluna yeniden basarsanız geçerli sözcüğün seçimini kaldırır ve sonraki sözcüğe geçer.

- İmlecin altındaki sözcüğün tüm oluşlarını bulmak için Kontrol+Seçenek+Üst Karakter+J kısayolunu kullanın ve bunları her seçimin sonunda imleçle seçin. Seçili sözcükler arasında geçiş yapmak için Seçenek+J kullanabilir ve önceki paragrafta belirtildiği gibi herhangi bir kelimenin seçimini kaldırmak için Seçenek+K kısayolunu kullanabilirsiniz.

### Birden çok imleçle çalışmak

Birkaç imleç oluşturduğunuzda, tek bir imleçte yaptığınız gibi düzenleme işlemlerinin çoğunu bunlar üzerinde gerçekleştirebilirsiniz. Örneğin, bir harf yazmak, her imleç için o harfi yazacaktır. Benzer şekilde metin dönüşümleri gerçekleştirebilirsiniz; örneğin tüm pozisyonlar veya seçimler için büyük harf kullanımı gibi.

Bazen imleçleri kaldırmak isteyeceksiniz. Bunu yapmak için kaldırmak istediğiniz imlecin üzerinde Seçenek+Sol Fare Düğmesi kullanın. Yalnızca boş satırlardaki imleçleri kaldırmak istiyorsanız bunu sizin için yapacak bir işlev bulunur. Eylemi başlatmak için Kontrol+Seçenek+I kullanarak Komut Çubuğu’nu açın ve Boş satırlardan imleçleri kaldır ögesini arayın ve Giriş’a basın. Ayrıca bu eylem için bir kısayol da yapılandırabilirsiniz.

Bölüm 4. Menü Girdileri
Menü Girdileri

# Bölüm 4. Menü Girdileri

## Dosya Menüsü

Dosya → Yeni (Kontrol+N)

  Bu, yeni ve bağımsız bir düzenleyici penceresinde yeni bir belge başlatır.

Dosya → Yeni Pencere

  Geçerli belgeyi içeren başka bir pencere oluşturun. Bir pencerede belgede yapılan tüm değişiklikler diğer pencereye yansıtılır ve bunun tersi de geçerlidir.

Dosya → Aç… (Kontrol+O)

  Bir standart KDE Dosya Aç iletişim kutusu görüntüler. Açmak istediğiniz dosyayı seçmek için dosya görünümünü kullanın ve onu açmak için Aç düğmesine tıklayın.

Dosya → Son Kullanılanı Aç

  Bu, yakın zamanda kaydedilen belgeleri açmak için kullanılan bir kısayoldur. Bu ögeye tıklamak, menünün yan tarafında en son kaydedilen dosyalardan birkaçını içeren bir liste açar. Belirli bir dosyaya tıklamak onu KatePart’de açacaktır — eğer dosya hâlâ aynı konumda bulunuyorsa.

Dosya → Kaydet (Kontrol+S)

  Bu, geçerli belgeyi kaydeder. Belge halihazırda kaydedilmişse kullanıcının izni istenmeden önceden kaydedilen dosyanın üzerine yazılacaktır. Yeni bir belgenin ilk kaydı ise farklı kaydet iletişim kutusu (aşağıda açıklanmıştır) çağrılır.

Dosya → Farklı Kaydet… (Kontrol+Üst Karakter+S)

  Bu, belgenin yeni bir dosya adıyla kaydedilmesine olanak tanır. Bu, yukarıda bu yardım dosyasının Aç bölümünde açıklanan dosya iletişim kutusu aracılığıyla yapılır.

Dosya → Kodlamayla Farklı Kaydet

  Belgeyi yeni bir dosya adıyla farklı bir kodlamayla kaydedin.

Dosya → Kopyayı Farklı Kaydet

  Belgenin bir kopyasını yeni bir dosya adıyla kaydedin ve özgün belgeyi düzenlemeyi sürdürün.

Dosya → Yeniden Yükle (F5)

  Etkin dosyayı diskten yeniden yükler. Bu komut, dosyayı KatePart’de açıkken başka bir program veya işlem değiştirmişse kullanışlıdır.

Dosya → Yazdır… (Kontrol+P)

  Kullanıcının neyi, nerede ve nasıl yazdıracağını belirlemesine olanak tanıyan basit bir yazdırma iletişim kutusu açar.

Dosya → HTML Olarak Dışa Aktar

  Şu anda açık olan belgeyi, geçerli sözdizim vurgulama ve renk şeması ayarları kullanılarak biçimlendirilecek bir HTML dosyası olarak kaydedin.

Dosya → Kapat (Kontrol+W)

  Etkin dosyayı bu komutla kapatın. Kaydedilmemiş değişiklikler yaptıysanız KatePart dosyayı kapatmadan önce dosyayı kaydetmeniz istenecektir.

Dosya → Çık (Kontrol+Q)

  Bu, düzenleyici penceresini kapatacaktır; Yeni veya Yeni Pencere menü ögeleri aracılığıyla birden fazla KatePart örneği açılmışsa bu örnekler olduğu gibi bırakılır.

Düzen Menüsü
Düzen Menüsü

## Düzen Menüsü

Düzen → Geri Al (Kontrol+Z)

  Son düzenleme komutunu geri alın (yazma, kopyalama, kesme vb.)

  ### Not

  Bu, karakterler girmek gibi aynı türden birkaç düzenleme komutunun geri alınmasına neden olabilir.

Düzen → Yinele (Kontrol+Üst Karakter+Z)

  Bu, Geri Al kullanılarak yapılan en son değişikliği (varsa) tersine çevirecektir.

Düzen → Kes (Kontrol+X)

  Bu komut, geçerli seçimi siler ve panoya yerleştirir. Pano görünmez bir şekilde çalışır ve uygulamalar arasında veri aktarımı için bir yol sağlar.

Düzen → Kopyala (Kontrol+C)

  Bu, o anda seçili olan metni başka bir yere yapıştırılabilmesi için panoya kopyalar. Pano görünmez bir şekilde çalışır ve uygulamalar arasında veri aktarımı için bir yol sağlar.

Düzen → HTML Olarak Kopyala

  Seçimi, geçerli sözdizim vurgulama ve renk şeması ayarları kullanılarak biçimlendirilmiş HTML olarak kopyalayın.

Düzen → Yapıştır (Kontrol+V)

  Bu, panodaki ilk ögeyi imleç konumuna yerleştirecektir. Pano görünmez bir şekilde çalışır ve uygulamalar arasında veri aktarımı için bir yol sağlar.

  ### Not

  Seçimin Üzerine Yaz etkinse yapıştırılan metin, varsa seçimin üzerine yazılır.

Düzen → Seçimi Yapıştır (Kontrol+Üst Karakter+Ekle)

  Bu, daha önce seçili olan fare seçimi içeriğini yapıştıracaktır. Bu menü ögesini kullanarak, o anda açık olan dosyaya yapıştırmak için fare işaretçisiyle bir metni imleyin.

Düzen → Pano İçeriği ile Değiştir

  Bu, seçili metni pano içeriğiyle değiştirecektir.

Düzen → Pano Geçmişini Yapıştır

  Bu, pano geçmişinden bir girdiyi seçip yapıştırmak için bir iletişim kutusu açacaktır.

Düzen → Giriş Kipleri

  Normal ve Vi benzeri kipsel düzenleme kipi arasında geçiş yapın. Vi giriş kipi, Vim’in normal ve görsel kipinden en çok kullanılan komutları ve hareketleri destekler ve isteğe bağlı bir Vi kipi durum çubuğuna sahiptir. Bu durum çubuğu, girilirken komutları, komutlardan çıktıyı ve geçerli kipi gösterir. Bu kipin davranışı, KatePart’in ayarlar iletişim kutusunda bulunan Düzenleme sayfasındaki Vi Giriş Kipi sekmesinde yapılandırılabilir.

Düzen → Üzerine Yazma Kipi (Ekle)

  Ekle/Üzerine Yaz kipleri arasında geçiş yapar. Kip EKLE iken, imlecin olduğu yere karakterler girersiniz. Kip ÜZERİNE YAZ ise yazılan karakterler, imleç başka bir karakterden önce konumlandırılmışsa imleçten sonraki karakterlerin üzerine yazar. Durum çubuğu, Üzerine Yazma Kipi’nin geçerli durumunu EKLE veya ÜZERİNE YAZ olarak gösterir.

Düzen → Saltokunur Kip

  Geçerli belgeyi saltokunur kipe ayarlayın. Bu, herhangi bir metin eklenmesini ve belge biçimindeki herhangi bir değişikliği önler.

Düzen → Bul… (Kontrol+F)

  Bu, düzenleyici penceresinin altındaki artımlı arama çubuğunu açar. Çubuğun sol tarafında, çubuğu kapatmak için bir simgenin bulunduğu bir düğme ve ardından arama dizgisini girmek için küçük bir metin kutusu bulunur.

  Arama dizginizin karakterlerini girmeye başladığınızda arama hemen başlar. Metinde bir eşleşme varsa bu vurgulanır ve giriş alanının arka plan rengi açık yeşile döner. Arama dizgisi metindeki herhangi bir diziyle eşleşmiyorsa bu durum giriş alanının açık kırmızı arka plan rengiyle gösterilir.

  Belgedeki önceki veya sonraki eşleşmeye atlamak için veya düğmelerini kullanın.

  Arama çubuğunu kapattığınızda bile belgedeki eşleşmeler vurgulanır. Bu vurgulamayı temizlemek için Vazgeç düğmesine basın.

  Aramanın BÜYÜK/küçük harfe duyarlı olup olmayacağını seçebilirsiniz. seçildiğinde bulguları, arama dizgisindeki karakterlerin her birinin BÜYÜK/küçük harf durumuyla eşleşen girdilerle sınırlandırır.

  Artımlı arama çubuğunun sağ tarafındaki düğmesine basarak gelişmiş arama ve değiştirme çubuğuna geçebilirsiniz.

Düzen → Benzerlerini Bul → Sonrakini Bul (F3)

  Bu, artımlı arama çubuğunu çağırmadan ve imleç konumundan başlayarak belgede ileriye doğru arama yapmadan, varsa son bulma işlemini yineler.

Düzen → Benzerlerini Bul → Öncekini Bul (Üst Karakter+F3)

  Bu, artımlı arama çubuğunu çağırmadan ve belgede ileri yerine geriye doğru arama yapmadan, varsa son bulma işlemini yineler.

Düzen → Benzerlerini Bul → Seçiliyi Bul (Kontrol+H)

  Seçili metnin bir sonraki oluşunu bulur.

Düzen → Benzerlerini Bul → Seçiliyi Geriye Doğru Bul (Kontrol+Üst Karakter+H)

  Seçili metnin bir önceki oluşunu bulur.

Düzen → Değiştir… (Kontrol+R)

  Bu komut, gelişmiş arama ve değiştirme çubuğunu açar. Çubuğun sol üst tarafında, çubuğu kapatmak için bir simgenin bulunduğu bir düğme ve ardından arama dizgisini girmek için küçük bir metin kutusu bulunur.

  Arama kipini, açılır kutudan Düz metin, Tam sözcükler, Kaçış dizileri veya Düzenli ifade seçeneklerini kullanarak denetleyebilirsiniz.

  Kaçış dizileri veya Düzenli ifade seçilirse metin kutularının bağlam menüsünün altında bulunan Ekle… düğmesi etkinleştirilir ve ara ve değiştir dizgilerine önceden tanımlanan listelerden kaçış dizileri veya düzenli ifade ögeleri eklemenize olanak tanır.

  Belgedeki önceki veya sonraki eşleşmeye atlamak için veya düğmelerini kullanın.

  Değiştir etiketli metin kutusuna değiştirilecek metni girin ve yalnızca vurgulanan metni değiştirmek için Değiştir düğmesini veya tüm belgedeki arama metnini değiştirmek için Tümünü Değiştir düğmesine tıklayın.

  Çubuğun altındaki bölümden değişik seçenekler seçerek ara ve değiştir davranışını değiştirebilirsiniz. seçmek, aramayı BÜYÜK/küçük harf eşleşen girdilere sınırlar. , yalnızca geçerli seçimde ara ve değiştir yapar. Tümünü Bul düğmesi, belgedeki tüm eşleşmeleri vurgular ve küçük bir açılır pencerede bulunan eşleşme sayısını görüntüler.

  Artımlı arama çubuğuna geçmek için gelişmiş arama çubuğunun sağ tarafındaki düğmesine tıklayın.

Seçim Menüsü
Seçim Menüsü

## Seçim Menüsü

Seçim → Tümünü Seç (Kontrol+A)

  Bu, belgenin tamamını seçer. Bu, dosyanın tümünü başka bir uygulamaya kopyalamak için çok yararlı olabilir.

Seçim → Seçimi Kaldır (Kontrol+Üst Karakter+A)

  Varsa düzenleyicide seçili metnin seçimini kaldırır.

Seçim → Blok Seçim Kipi (Kontrol+Üst Karakter+B)

  Seçim kipine geçer. Seçim kipi, BLOK olduğunda, durum çubuğu [BLOK] dizisini gösterir ve dikey seçimler yapabilirsiniz; örneğin, 9’dan 15’e kadar olan satırlarda 5’ten 10’a kadar olan sütunları seçebilirsiniz.

Seçim → Yorum (Kontrol+D)

  Bu imlecin konumlandığı satırın veya seçili satırların bir satır üstüne bir boşluk ekler.

Seçim → Yorumları Kaldır (Kontrol+Üst Karakter+D)

  Bu, metin imlecinin bulunduğu satırın başlangıcından veya seçilen herhangi bir satırın başlangıcından (varsa) bir boşluk kaldırır.

Seçim → Satırları Birbirine Kat (Kontrol+J)

  Seçili satırları veya geçerli satırı ve altındaki satırı ayırıcı olarak bir boşluk karakteriyle birleştirir. Etkilenen uçlarda birleştirilmiş satırların başındaki/sondaki boşluklar kaldırılır.

Seçim → Büyük Harfe Çevir (Kontrol+Seçenek+U)

  Seçili metni veya geçerli sözcüğü BÜYÜK harfle yazın.

Seçim → Büyük Harf (Kontrol+U)

  Seçili metni veya imleçten sonraki harfi BÜYÜK harf yapın.

Seçim → Küçük Harf (Kontrol+Üst Karakter+U)

  Seçili metni veya imleçten sonraki harfi küçük harf yapın.

Seçim → Girintilemeyi Temizle

  Bu, geçerli seçime veya imlecin geçerli olarak bulunduğu satıra ilişkin girintilemeyi temizler. Girintilemeyi temizlemek, seçili metninizin tamamının seçtiğiniz girintileme kipinin izlemesini sağlar.

Seçim → Girintilemeyi Biçimlendir

  Belgedeki girintileme kipini ve girintileme ayarlarını kullanarak geçerli satırın veya seçili satırların yeniden hizalanmasını sağlar.

Seçim → Şuna Göre Hizala…

  Bu komut, seçili bloktaki veya belgenin tamamındaki satırları, size sorulacak düzenli bir ifadeyle verilen sütunda hizalar.

  Boş bir dizgi verirseniz öntanımlı olarak ilk boş olmayan karaktere hizalanır.

  Dizginin bir yakalaması varsa yakalanan eşleşmeye girintili olacaktır.

  Örnekler:

  “`-`”, tümünü aynı sütuna hizalamak için her satırdaki ilk “-” öncesi boşluklar ekleyecektir.

  “`alignon:\\s+(.)`”, tümünü aynı sütuna hizalamak için bir iki nokta öncesi oluşan ilk boş olmayan karakter öncesi boşluklar ekleyecektir.

Seçim → Sözcük Kaydırmayı Uygula

  Tüm belgeye durağan sözcük kaydırma uygulayın. Bu, geçerli satır Ayarlar → Düzenleyiciyi Yapılandır… iletişim kutusunun Düzenleme sekmesindeki Sözcükleri şurada kaydır seçeneğiyle belirtilen uzunluğu aştığında kendiliğinden yeni bir metin satırının başlayacağı anlamına gelir.

Seçim → İmlecin Üstüne Ek İmleç Ekle (Kontrol+Seçenek+Yukarı Ok)

  Geçerli metin imlecinin üstüne başka bir imleç ekler. İmleç, geçerli imlecin hemen üstündeki satıra ve aynı sütuna yerleştirilir.

Seçim → İmlecin Altına Ek İmleç Ekle (Kontrol+Seçenek+Aşağı Ok)

  Geçerli metin imlecinin altına başka bir imleç ekler. İmleç, geçerli imlecin hemen altındaki satıra ve aynı sütuna yerleştirilir.

Seçim → Satır Sonlarına İmleçler Ekle (Seçenek+Üst Karakter+I)

  Seçili olan her satıra bir imleç ekler.

Seçim → Sonraki Oluşu Bul ve Seç (Seçenek+J)

  İmlecin altında bulunan sözcüğün bir sonraki oluşunu bulur, onu seçer ve bir imleç ekler.

Seçim → Tüm Oluşları Bul ve Seç (Kontrol+Seçenek+Üst Karakter+J)

  İmlecin altında bulunan sözcüğün tüm oluşlarını bulur, onları seçer ve her biri için bir imleç ekler.

Görünüm Menüsü
Görünüm Menüsü

## Görünüm Menüsü

Görünüm → Yazıtipini Büyüt (Kontrol++)

  Bu, görüntü yazıtipi puntosunu artırır.

Görünüm → Yazıtipini Küçült (Kontrol+-)

  Bu, görüntü yazıtipi puntosunu azaltır.

Görünüm → Sözcük Kaydırma → Devingen Sözcük Kaydırma (F10)

  Geçerli görünümde devingen sözcük kaydırmayı açar/kapatır. Devingen sözcük kaydırma, gerektiğinde daha fazla görsel satırda tek bir gerçek satırı oluşturarak, yatay kaydırmaya gerek kalmadan görünümdeki tüm metni görünür hale getirir.

Görünüm → Sözcük Kaydırma → Devingen Sözcük Kaydırma Göstergeleri

  Devingen sözcük kaydırma göstergelerinin ne zaman ve nasıl görüntüleneceğini seçin. Bu yalnızca Devingen Sözcük Kaydırma seçeneği işaretliyse kullanılabilir.

Görünüm → Sözcük Kaydırma → Durağan Sözcük Kaydırma İmleyicisini Göster

  Bu seçenek işaretlenirse Ayarlar → Düzenleyiciyi Yapılandır… iletişim kutusunun Düzenleme sekmesinde tanımlandığı üzere sözcük kaydırma sütununda dikey bir çizgi çizer. Lütfen sözcük kaydırma imleyicisinin yalnızca eş aralıklı bir yazıtipi kullanıyorsanız çizileceğini unutmayın.

Görünüm → Kenarlıklar → Simge Kenarlığını Göster (F6)

  Bu bir aç/kapat anahtarıdır. İşaretli olarak ayarlamak, simge kenarlığının etkin düzenleyicinin sol tarafında görünmesini sağlar (veya bunun tersi de geçerlidir). Simge kenarlığı, işaretli satırların düzenleyicideki konumlarını gösterir.

Görünüm → Kenarlıklar → Satır Numaralarını Göster (F11)

  Bu bir aç/kapat anahtarıdır. İşaretli olarak ayarlamak, belgenin satır numaralarını gösteren bir bölmenin etkin düzenleyicinin sol kenarında görünmesini sağlar (veya bunun tersi de geçerlidir).

Görünüm → Kenarlıklar → Sarma Çubuğu İmlerini Göster

  Bu seçenek işaretlenirse görünüm dikey sarma çubuğunda imler gösterilir. İmler, Simge Kenarlığı üzerindeki imlerle eşdeğerdir.

Görünüm → Kenarlıklar → Sarma Çubuğu Mini Haritasını Göster

  Bu, sarma çubuğunu geçerli belgenin görselleştirmesiyle değiştirecektir. Sarma çubuğu mini haritası hakkında daha fazla bilgi için “Sarma Çubuğu Mini Haritası” bölümüne bakın.

Görünüm → Kod Katlama

  Bu seçenekler, kod katlamayla ilgilidir:

  Görünüm → Kenarlıklar → Kod Katlama → Katlama İmlerini Göster

    Görünümün sol tarafındaki katlama imleyicileri bölmesinin görüntülenmesini açar/kapatır.

  Görünüm → Kod Katlama → Geçerli Düğümü Katla

    İmleci içeren bölgeyi daraltın.

  Görünüm → Kod Katlama → Geçerli Düğümü Aç

    İmleci içeren bölgeyi genişletin.

  Görünüm → Kod Katlama → En Üst Düzey Düğümleri Katla (Kontrol+Üst Karakter+-)

    Belgedeki tüm üst düzey bölgeleri daraltın. Tüm üst düzey bölgeleri genişletmek için sağdaki işaret üçgenine tıklayın.

  Görünüm → Kod Katlama → En Üst Düzey Düğümleri Aç (Kontrol+Üst Karakter++)

    Belgedeki tüm üst düzey bölgeleri genişletin.

Yazdırılmayacak Boşlukları Göster

  Yazdırılamayacak alanların çevresindeki sınırlayıcı kutuyu gösterin/gizleyin.

Git Menüsü
Git Menüsü

## Git Menüsü

Git → Satıra Git… (Kontrol+G)

  Bu, imlecin belgedeki belirli bir satıra (numarayla belirtilen) atlaması için kullanılan, pencerenin alt kısmındaki satıra git çubuğunu açar. Satır numarası doğrudan metin kutusuna girilebilir veya metin kutusunun yan tarafındaki yukarı veya aşağı ok döndürme denetim tıklanarak grafiksel olarak değiştirilebilir. Küçük yukarı ok satır numarasını artıracak, aşağı ok ise azaltacaktır. Çubuğun sol tarafında simge bulunan düğmeye tıklayarak çubuğu kapatın.

Git → Önceki Düzenleme Konumuna Git (Kontrol+E)

  Bu eylem, çoklu imleç yapılandırmasındaki bir önceki düzenleme satırına atlar.

Git → Sonraki Düzenleme Konumuna Git (Kontrol+Üst Karakter+E)

  Bu eylem, çoklu imleç yapılandırmasındaki bir sonraki düzenleme satırına atlar.

Git → Önceki Değiştirilen Satıra Git

  Dosya açıldıktan sonra değiştirilmiş satırlara değiştirilen satırlar denir. Bu eylem, önceki değiştirilen satıra atlar.

Git → Sonraki Değiştirilen Satıra Git

  Dosya açıldıktan sonra değiştirilmiş satırlara değiştirilen satırlar denir. Bu eylem, sonraki değiştirilen satıra atlar.

Git → Ayracın Eşine Git (Kontrol+6)

  İmleci ilgili açılış veya kapanış ayracına taşıyın.

Git → Ayracın Eşine Kadar Seç (Kontrol+Üst Karakter+6)

  İlgili açılış ve kapanış ayraçları arasındaki metni seçer.

Git → Yer İmleri (Kontrol+Üst Karakter+6)

  Burada açıklanan girişlerin altında, etkin belgedeki her yer imi için bir giriş kullanılabilir olacaktır. Metin, imli satırın ilk birkaç sözcüğü olacaktır. İmleci o satırın başına taşımak için bir öge seçin. Düzenleyici, bu satırı görünür kılmak için gerektiği kadar kaydıracaktır.

Git → Yer İmleri → Yer İmi Koy (Kontrol+B)

  Etkin belgenin geçerli satırına bir yer imi koyar veya kaldırır. (Eğer oradaysa kaldırılır, aksi takdirde bir tane koyulur.)

Git → Yer İmleri → Tüm Yer İmlerini Temizle

  Bu komut, belgedeki tüm imleyicilerin yanı sıra bu menü ögesinin altına eklenen imleyiciler listesini de kaldıracaktır.

Git → Yer İmleri → Önceki (Seçenek+Sayfa Yukarı)

  Bu, imleci yukarıdaki yer iminin bulunduğu ilk satırın başına taşır. Menü ögesi metni, satır numarasını ve satırdaki ilk metin parçasını içerecektir. Bu öge yalnızca imlecin üzerindeki satırda bir yer imi bulunduğunda kullanılabilir.

Git → Yer İmleri → Sonraki (Seçenek+Sayfa Aşağı)

  Bu, imleci yukarıdaki yer iminin bulunduğu ilk satırın başına taşır. Menü ögesi metni, satır numarasını ve satırdaki ilk metin parçasını içerecektir. Bu öge yalnızca imlecin altındaki satırda bir yer imi bulunduğunda kullanılabilir.

Araçlar Menüsü
Araçlar Menüsü

## Araçlar Menüsü

Araçlar → Kip

  Etkin belge için tercih ettiğiniz dosya türü şemasını seçin. Bu, yalnızca geçerli belgeniz için Dosya Türleri sekmesindeki Ayarlar → Düzenleyiciyi Yapılandır… bölümünde ayarlanan global dosya türü kipinin üzerine yazar.

Araçlar → Vurgulama

  Etkin belge için tercih ettiğiniz vurgulama şemasını seçin. Bu, yalnızca geçerli belgeniz için Ayarlar → Düzenleyiciyi Yapılandır… iletişim kutusunda ayarlanan global vurgulama kipinin üzerine yazar.

Araçlar → Girintileme

  Etkin belge için tercih ettiğiniz girintileme biçemini seçin. Bu, yalnızca geçerli belgeniz için Ayarlar → Düzenleyiciyi Yapılandır… iletişim kutusunda ayarlanan global girintileme kipinin üzerine yazar.

Araçlar → Kodlama

  Ayarlar → Düzenleyiciyi Yapılandır… iletişim kutusunun Aç/Kaydet sayfasında ayarlanan öntanımlı kodlamayı, geçerli belgeniz için geçersiz kılabilirsiniz. Burada ayarladığınız kodlama, yalnızca geçerli belgeniz için geçerli olur.

Araçlar → Bayt Sırası İmi (BOM) Ekle

  Bu eylemi işaretleyerek Unicode ile kodlanan belgelere açıkça bir bayt sırası imi ekleyebilirsiniz. Bayt sırası imi (BOM), bir metin dosyasının ve akışının son haneliliğini (bayt sırasını) sinyalleyen bir Unicode karakterdir; daha fazla bilgi için Bayt Sırası İmi sayfasına bakın.

Araçlar → Satır Sonu

  Etkin belgeniz için tercih ettiğiniz satır sonu kipini seçin. Bu, Ayarlar → Düzenleyiciyi Yapılandır… bölümünden ayarlanan global satır sonu kipini yalnızca geçerli belgeniz için geçersiz kılar.

Araçlar → Betikler

  Bu alt menü, betiklerle denetlenen tüm eylemlerin bir listesini içerir. Bu liste, kendi betiklerinizi yazarak kolaylıkla değiştirilebilir. Böylece KatePart, kullanıcı tanımlı araçlarla daha da genişletilebilir.

  Araçlar → Betikler → Dolaşım
    Araçlar → Betikler → Dolaşım → İmleci Önceki Eşleşen Girintiye Taşı (Seçenek+Üst Karakter+Yukarı Ok)

      İmleci geçerli satırın üzerindeki, geçerli satırla aynı düzeyde girintili olan ilk satıra taşır.

    Araçlar → Betikler → Dolaşım → İmleci Sonraki Eşleşen Girintiye Taşı (Seçenek+Üst Karakter+Yukarı Ok)

      İmleci geçerli satırın altındaki, geçerli satırla aynı düzeyde girintili olan ilk satıra taşır.

  Araçlar → Betikler → Düzenleme
    Araçlar → Betikler → Editing → Seçili Metni Sırala

      Seçili metni veya tüm belgeyi artan sırada sıralar.

    Araçlar → Betikler → Düzenleme → Satırları Aşağı Taşı (Kontrol+Üst Karakter+Aşağı Ok)

      Seçili satırları aşağı taşıyın.

    Araçlar → Betikler → Düzenleme → Satırları Yukarı Taşı (Kontrol+Üst Karakter+Aşağı Ok)

      Seçili satırları yukarı taşıyın.

    Araçlar → Betikler → Düzenleme → Seçili Satırları Aşağıya Çoğalt (Kontrol+Seçenek+Aşağı Ok)

      Seçili satırları aşağısında çoğaltır.

    Araçlar → Betikler → Düzenleme → Seçili Satırları Yukarıya Çoğalt (Kontrol+Seçenek+Aşağı Ok)

      Seçili satırları yukarısında çoğaltır.

    Araçlar → Betikler → Düzenleme → Seçili Metnin URI Kodlamasını Yap

      Seçili metni, seçimi kodlanmış metinle değiştirerek, bir URL’deki sorgu dizisinin parçası olarak kullanılabilecek şekilde kodlar.

    Araçlar → Betikler → Düzenleme → Seçili Metnin URI Kodunu Çöz

      Bir URL’nin sorgu dizisinin bir kısmı seçilirse bu, onun kodunu çözer ve seçimi özgün ham metinle değiştirir.

  Araçlar → Betikler → Emmet
    Araçlar → Betikler → Emmet → Kısaltmayı Genişlet

      Seçili metni bir çift açılış ve kapanış HTML veya XML etiketlerine dönüştürür. Örneğin, `div` seçiliyse bu öge onu `<div></div>` ile değiştirir.

    Araçlar → Betikler → Emmet → Etiketle Sar

      Seçili metni komut satırında sağlanan etiketle çevreler.

    Araçlar → Betikler → Emmet → İmleci Eşleşen Etikete Taşı

      İmleç açık bir HTML/XML etiketinin içindeyse bu öge onu kapatma etiketine taşır. İmleç kapatma etiketinin içindeyse onu bu kez de açma etiketinin içine taşır.

    Araçlar → Betikler → Emmet → HTML/XML Etiket İçeriğini İçe Doğru Seç

      İmleç bir HTML/XML etiketlerinin içindeyse bu seçenek seçimi bu HTML/XML etiketlerinin içeriğini de etiketlerin kendisini seçmeden içerir.

    Araçlar → Betikler → Emmet → HTML/XML Etiket İçeriğini Dışa Doğru Seç

      İmleç bir HTML/XML etiketlerinin içindeyse bu seçenek seçimi bu HTML/XML etiketlerinin içeriğini de etiketlerin kendisini seçmeden içerir.

    Araçlar → Betikler → Emmet → Yorum/Yorumları Kaldır

      Seçili kısım bir yorum değilse bu öge onları HTML/XML yorumları içine alır (örneğin, `<!-- seçili metin -->`). Seçili kısım bir yorumsa yorum etiketleri kaldırılır.

    Araçlar → Betikler → Emmet → İmleç Altındaki Etiketi Sil

      İmleç bir HTML/XML etiketi içindeyse bu öge tüm etiketi siler.

    Araçlar → Betikler → Emmet → Sayıyı 1 Azalt

      Bu öge bir sayıysa o anda seçili olan metinden 1 çıkarır. Örneğin, `5` seçiliyse `4` olur.

    Araçlar → Betikler → Emmet → Sayıyı 10 Azalt

      Bu öge bir sayıysa o anda seçili olan metinden 10 çıkarır. Örneğin, `15` seçiliyse `5` olur.

    Araçlar → Betikler → Emmet → Sayıyı 0,1 Azalt

      Bu öge bir sayıysa o anda seçili olan metinden 0,1 çıkarır. Örneğin, `4,5` seçiliyse `4,4` olur.

    Araçlar → Betikler → Emmet → Sayıyı 1 Artır

      Bu öge bir sayıysa o anda seçili olan metne 1 ekler. Örneğin, `5` seçiliyse `6` olur.

    Araçlar → Betikler → Emmet → Sayıyı 10 Artır

      Bu öge bir sayıysa o anda seçili olan metne 10 ekler. Örneğin, `5` seçiliyse `15` olur.

    Araçlar → Betikler → Emmet → Sayıyı 0,1 Artır

      Bu öge bir sayıysa o anda seçili olan metne 0,1 ekler. Örneğin, `4,5` seçiliyse `4,6` olur.

Araçlar → Komut Satırına Geç (F7)

  Pencerenin altında KatePart komut satırını görüntüler. Yardım almak için `help` ve komutların bir listesini almak için `help list` komutlarını komut satırına girin. Komut satırı üzerine daha fazla bilgi için Düzenleyici Bileşeni Komut Satırı bölümüne bakın.

Araçlar → Kod Tamamlamayı Başlat (Kontrol+Boşluk)

  Genellikle bu eyleme bağlı bir kısayol kullanarak komut tamamlamayı elle çağırın.

Araçlar → Sözcük Tamamlama

  Aşağıdaki Sözcüğü Yeniden Kullan (Kontrol+9) ve Yukarıdaki Sözcüğü Yeniden Kullan (Kontrol+8) şu anda girilen sözcüğü, imlecin önünden veya arkasından benzer sözcükleri arayarak tamamlamaya çalışır. Kabuk Tamamlama, eşleşen girdilerle bir tamamlama kutusu açar.

Araçlar → Yazım Denetimi → Kendiliğinden Yazım Denetimi (Kontrol+Üst Karakter+O)

  Kendiliğinden Yazım Denetimi etkinleştirildiğinde, yanlış yazılan sözcüklerin altı anında çizilir.

Araçlar → Yazım Denetimi → Yazım Denetimi…

  Bu, kullanıcının yazım hatalarını yakalayıp düzeltmesine yardımcı olmak için tasarlanmış bir program olan yazım denetimi programını başlatır. Bu girişin tıklanması denetleyiciyi başlatır ve kullanıcının süreci denetleyebileceği yazım denetimi iletişim kutusunu açar. İletişim kutusunun ortasında dikey olarak sıralanmış dört ayar vardır ve bunların karşılık gelen etiketleri hemen soldadır. En üstten başlayarak bunlar:

  Bilinmeyen sözcük:

    Burada yazım denetleyicisi, incelenen sözcüğü belirtir. Bu, denetleyici, sözlüğünde bulamadığı bir sözcüğe rast geldiğinde olur. Sözlük, denetleyicinin belgedeki sözcükleri denetlemek için kullandığı girdileri içerir.

  Şununla değiştir:

    Eğer denetleyicinin sözlüğünde benzer sözcükler varsa ilki burada listelenecektir. Kullanıcı öneriyi kabul edebilir, kendi düzeltmesini yazabilir veya bir sonraki kutudan farklı bir öneri seçebilir.

  Dil:

    Birden fazla sözlük kurduysanız burada hangi sözlüğün/dilin kullanılması gerektiğini seçebilirsiniz.

  İletişim kutusunun sağ tarafında kullanıcının yazım denetimi işlemini denetlemesine olanak tanıyan 6 düğme bulunur. Bunlar:

  Sözlüğe Ekle

    Bu düğmeye basmak, Bilinmeyen sözcük’ü denetleyicinin sözlüğüne ekler. Bu, denetleyicinin ileride bu sözcüğü her zaman doğru olacağını varsayacağınız anlamına gelir.

  Öner

    Denetleyici, burada incelenmekte olan sözcüğün olası düzeltmelerini listeleyebilir. Önerilerden herhangi birine tıklamak, o sözcüğün yukarıdaki Şununla değiştir kutusuna girilmesine neden olacaktır.

  Değiştir

    Bu düğme, denetleyicinin belgede incelenen sözcüğü Şununla değiştir kutusundaki sözcükle değiştirmesini sağlar.

  Tümünü Değiştir

    Bu düğme, denetleyicinin yalnızca geçerli Bilinmeyen sözcük:’ü değil de Bilinmeyen sözcük’ün belgedeki tüm oluşlarının değiştirilmesini sağlar.

  Yok Say

    Bu düğmeyi etkinleştirmek, denetçinin herhangi bir değişiklik yapmadan sürdürmesini sağlar.

  Tümünü Yok Say

    Bu düğme denetleyiciye geçerli Bilinmeyen sözcük: ile hiçbir şey yapmamasını ve aynı sözcüğün diğer örneklerini atlamasını söyler.

    ### Not

    Bu yalnızca geçerli yazım denetimi çalıştırması için geçerlidir. Eğer denetleyici daha sonra yeniden çalıştırılırsa aynı sözcük üzerinde duracaktır.

  Yazım denetimi iletişim kutusunun alt kısmında yatay olarak üç düğme daha bulunur. Bunlar:

  Yardım

    Bu, bu iletişim kutusunun yardım sayfasıyla birlikte KDE yardım sistemini çağırır.

  Bitti

    Bu düğme, yazım denetim sürecini bitirerek belgeye geri döner.

  İptal

    Bu düğme, yazım denetim sürecini iptal eder, tüm değişiklikler geri alınır ve belgeye geri dönersiniz.

Araçlar → Yazım Denetimi → Yazım Denetimi (İmleçten Sonra)…

  Bu, yazım denetimi programını belgenin başlangıcı yerine imlecinizin bulunduğu yerden başlatır.

Araçlar → Yazım Denetimi → Seçimin Yazımını Denetle…

  Geçerli seçimin yazımını denetler.

Araçlar → Yazım Denetimi → Sözlüğü Değiştir

  Düzenleyici penceresinin alt kısmında yazım denetimi için kullanılabilir tüm sözlükleri içeren bir açılır kutu görüntüler. Bu, yazım denetimi sözlüğünün farklı dillerdeki metinlerin kendiliğinden yazımının denetimi için kolayca değiştirilmesine olanak tanır.

Ayarlar ve Yardım Menüsü
Ayarlar ve Yardım Menüsü

## Ayarlar ve Yardım Menüsü

Ayarlar → Düzenleyici Renk Teması

  Bu menü, kullanılabilir renk şemalarını listeler. Geçerli görünümün şemasını buradan değiştirebilirsiniz; öntanımlı şemayı değiştirmek için yapılandırma iletişim kutusunun Yazıtipleri ve Renkler sayfasını kullanmanız gerekmektedir.

KatePart, ortak KDE Ayarlar ve Yardım menü ögelerine sahiptir; daha fazla bilgi için KDE Temelleri’nin Ayarlar Menüsü ve Yardım Menüsü bölümlerini okuyun.

Bölüm 5. Gelişmiş Düzenleme Araçları
Gelişmiş Düzenleme Araçları

# Bölüm 5. Gelişmiş Düzenleme Araçları

Anders Lund `<anders@alweb.dk>`

Dominik Haumann `<dhdev@gmx.de>`

Çeviri: İşbaran Akçayır
Çeviri: Emir SARI

## Yorum/Yorumları Kaldır

Araçlar menüsünde bulunan Yorum ve Yorumları Kaldır komutları, düzenlediğiniz metnin biçimi izin veriyorsa seçime veya seçili metin yoksa geçerli satıra yorum imleyicileri eklemenize veya kaldırmanıza olanak tanır.

Yorumlamanın nasıl yapıldığına ilişkin kurallar sözdizim tanımlarında tanımlanmıştır, dolayısıyla sözdizim vurgulama kullanılmazsa yorum yapma/yorumları kaldırma olanaklı değildir.

Bazı biçimler tek satırlı yorum imleyicilerini, bazıları çok satırlıları ve bazıları da her ikisini birden tanımlar. Çok satırlı imleyiciler kullanılamıyorsa son satırını tam olarak içermeyen bir seçimin yorumlanması olanaklı değildir.

Tek satır imleyicisi kullanılabiliyorsa iç içe geçmiş yorumlarla ilgili sorunların önlenmesine yardımcı olduğundan, uygun olduğu yerde tek satırlara yorum yapılması tercih edilir.

Yorum imleyicilerini kaldırırken yorumsuz metin seçilmemelidir. Bir seçimden çok satırlı yorum imleyicilerini kaldırırken, yorum işaretçilerinin dışındaki tüm boşluklar dikkate alınmaz.

Yorum imleyicileri yerleştirmek için Araçlar → Yorum menü ögesini veya ilgili klavye kısayolu dizisini kullanın; öntanımlı kısayol: Kontrol+D.

Yorum imleyicilerini kaldırmak için Araçlar → Yorumları Kaldır menü ögesini veya ilgili klavye kısayolu dizisini kullanın; öntanımlı kısayol: Kontrol+Üst Karakter+D.

Düzenleyici Bileşeni Komut Satırı
Düzenleyici Bileşeni Komut Satırı

## Düzenleyici Bileşeni Komut Satırı

KatePart uygulamasını düzenleyici bileşeninde içsel bir komut satırı vardır; bu bileşen, minimal bir grafik arayüzden çeşitli eylemleri gerçekleştirmenize olanak tanır. Komut satırı, düzenleyici alanının alt kısmında bulunan bir metin girişi alanıdır; onu göstermek için Görünüm → Komut Satırına Geç ögesini veya klavye kısayolunu (öntanımlı kısayol: F7) kullanın. Düzenleyici, aşağıda belgelendiği gibi bir dizi komut sağlar ve eklentiler tarafından ek komutlar verilebilir.

Bir komutu yürütmek için komutu yazın ve ardından Dönüş düğmesine basın. Komut satırı başarılı olup olmadığını gösterecek ve büyük olasılıkla bir ileti görüntüleyecektir. Komut satırına F7 düğmesine basarak girdiyseniz birkaç saniye sonra kendiliğinden gizlenir. İletiyi temizlemek ve yeni bir komut girmek için yeniden F7 düğmesine basın.

Komut satırında yerleşik bir yardım sistemi bulunur; Başlamak için help komutunu verin. Kullanılabilir tüm komutların bir listesini görmek için help list komutunu verin; Belirli bir komutun yardımını görüntülemek için help `komut` girişini yapın.

Komut satırının yerleşik bir geçmişi vardır, böylece önceden yazdığınız komutları yeniden kullanabilirsiniz. Geçmişe gitmek için Yukarı Ok ve Aşağı Ok düğmelerini kullanın. Geçmiş komutları gösterirken, komutun argüman kısmı seçilerek argümanların üzerine kolayca yazmanıza olanak sağlanır.

### Standart Komut Satırı Komutları

Argüman türleri

BOOLE

  Bir şeyleri açıp kapatan komutlarla kullanılır. Kullanılabilir değerler şunlardır: `on`, `off`, `true`, `false`, `1` or `0`.

TAMSAYI

  Bir tamsayı.

DİZİ

  Boşluk içerdiğinde tek tırnak (') veya çift tırnak (") ile çevrelenen bir dizi.

#### Düzenleyiciyi Yapılandırmak için Komutlar

Bu komutlar düzenleyici bileşeni tarafından sağlanır ve etkin belgeyi ve yalnızca görüntülemeyi yapılandırmanıza olanak tanır. Girinti gibi öntanımlı ayarlardan farklı bir ayar kullanmak istiyorsanız bu kullanışlıdır.

set-tab-width {TAMSAYI genişlik}

  Sekme `genişliğini` ayarlar.

set-indent-width {TAMSAYI genişlik}

  Girintileme `genişliğini` ayarlar. Yalnızca boşluklarla girintileme yapıyorsanız kullanılır.

set-word-wrap-column {TAMSAYI genişlik}

  Sert kaydırma için satır `genişliğini` ayarlar. Bu, metninizde kendiliğinden kaydırma kullanıyorsanız kullanılır.

set-icon-border {BOOLE etkinleştir}

  Simge kenarlığının görünürlüğünü ayarlar.

set-folding-markers {BOOLE etkinleştir}

  Katlama imleyicileri yüzeyinin görünürlüğünü ayarlar.

set-line-numbers {BOOLE etkinleştir}

  Satır numaraları yüzeyinin görünürlüğünü ayarlar.

set-replace-tabs {BOOLE etkinleştir}

  Etkinleştirilirse sekmeler siz yazdıkça boşluklarla değiştirilir.

set-remove-trailing-space {BOOLE etkinleştir}

  Etkinleştirilirse sondaki boşluklar imleç satırı terk ettiğinde kaldırılır.

set-show-tabs {BOOLE etkinleştir}

  Etkinleştirilirse SEKME karakterleri ve sondaki boşluklar küçük bir noktayla görselleştirilir.

set-show-indent {BOOLE etkinleştir}

  Etkinleştirilirse girintileme dikey noktalı bir satırla görselleştirilir.

set-indent-spaces {BOOLE etkinleştir}

  Etkinleştirilirse düzenleyici her bir girintileme düzeyi için SEKME karakteri yerine `indent-width` kadar boşlukla girintileme yapar.

set-mixed-indent {BOOLE etkinleştir}

  Etkinleştirilirse KatePart, girintileme için SEKME ve boşlukların bir karışımını kullanır. Her girinti düzeyi `indent-width` genişliğinde olacak ve daha fazla girinti düzeyi olabildiğince çok sayıda SEKME karakteri kullanacak şekilde eniyilenecektir.

  Yürütüldüğünde, bu komut ek olarak boşluk girintisini etkinleştirir ve girinti genişliği belirtilmemişse yürütme sırasında belgenin `tab-width` değerinin yarısına ayarlanır.

set-word-wrap {BOOLE etkinleştir}

  `enable` değerine göre devingen sözcük kaydırmayı etkinleştirir.

set-replace-tabs-save {BOOLE etkinleştir}

  Etkinleştirildiğinde, belge kaydedildiğinde sekmelerin yerini boşluklar alacaktır.

set-replace-tabs-save {BOOLE etkinleştir}

  Etkinleştirildiğinde, belge kaydedildiğinde her satırın sondaki boşluk kaldırılacaktır.

set-indent-mode {DİZİ ad}

  Kendiliğinden girintileme kipini `ad` olarak ayarlar. `ad` bilinmiyorsa kip “none” olarak ayarlanır. Geçerli kipler: “none”, “normal”, “cstyle”, “haskell”, “lilypond”, “lisp”, “python”, “ruby” ve “xml”.

set-auto-ident {BOOLE betik}

  Kendiliğinden girintilemeyi etkinleştirin veya devre dışı bırakın.

set-highlight {DİZİ vurgu}

  Belgenin sözdizim vurgulama sistemini ayarlar. Argüman, Araçlar → Vurgulama menüsünde görüldüğü gibi geçerli bir vurgu adı olmalıdır. Bu komut, argümanı için bir kendiliğinden tamamlama listesi sağlar.

reload-scripts

  Girintileyiciler ve komut satırı betikleri de içerilmek üzere, Kate’in kullandığı tüm JavaScript betiklerini yeniden yükleyin.

set-mode {DİZİ kip}

  Geçerli belge için dosya türü şemasını seçin.

nn[oremap] {DİZGİ özgün} {DİZİ eşlemlenen}

  `Özgün` düğme sıralamasını `eşlemlenen` sıralamasına eşlemler.

#### Düzenleme için komutlar

Bu komutlar, geçerli belgeyi değiştirir.

indent

  Seçili satırları veya geçerli satırı girintiler.

unindent

  Seçili satırların veya geçerli satırın girintisini kaldırır.

cleanindent

  Seçili satırların veya geçerli satırın girintisini belgedeki girintileme ayarlarına göre temizler.

comment

  Seçimi veya seçili satırları veya geçerli satırı, belgenin sözdizim vurgulama tanımıyla tanımlandığı şekilde metin biçimine göre bir yorum haline getirmek için yorum imleyicileri ekler.

uncomment

  Belgenin sözdizim vurgulama tanımıyla tanımlanan metin biçimine göre seçimden veya seçili satırlardan veya geçerli satırdan yorum imleyicilerini kaldırır.

kill-line

  Geçerli satırı siler.

replace { DİZİ dizgi} {DİZİ değişim}

  `dizgi` ile eşleşen metni `değişim` ile değiştirir. `dizgi`’de boşlukları içermek isterseniz hem `dizgi` hem `değişim` değişkenlerini tek veya çift tırnak içine almalısınız. Argümanlar tırnak içinde değilse ilk sözcük `dizgi` ve geri kalanı `değişim` olarak kullanılır. Eğer `değişim` boşsa her bir `dizgi` oluşu kaldırılır.

  Aramayı yapılandırmak için iki nokta üst üste ve ardından her biri bir yapılandırmayı temsil eden bir veya daha fazla harf ekleyerek `replace:seçenekler dizgi değişim` formunu vererek bayrakları ayarlayabilirsiniz. Kullanılabilir seçenekler şunlardır:

  `b`

    Geriye doğru arayın.

  `c`

    İmleç konumundan itibaren arayın.

  `e`

    Yalnızca seçimde arayın.

  `r`

    Düzenli ifade araması yapın. Ayarlıysa N değiştirme dizisindeki yakalamaları temsil etmek üzere bir numara olması için `\N` kullanabilirsiniz.

  `s`

    BÜYÜK/küçük harf duyarlı arama yapın.

  `p`

    Sonraki oluşu değiştirmek için izin isteyin.

  `w`

    Yalnızca tam sözcüklerle eşleştirin.

date {DİZİ biçim}

  Tanımlı `biçim` veya yoksa “yyyy‒MM‒dd hh:mm:ss” biçimi ile bir tarih/zaman dizisi ekler. `biçim` yorumlanırken aşağıdaki çeviriler kullanılır:

  `d` | Başında sıfır olmadan sayı olarak gün (1–31).
  `dd` | Başında sıfır olacak şekilde gün (01–31).
  `ddd` | Kısa yerelleştirilmiş gün adı (örneğin, “Pzt”‥“Paz”).
  `dddd` | Uzun yerelleştirilmiş gün adı (örneğin, “Pazartesi”‥“Pazar”).
  `M` | Başında sıfır olmadan sayı olarak ay (1–12).
  `MM` | Başında sıfır olacak şekilde ay (01–12).
  `MMMM` | Uzun yerelleştirilmiş ay adı (örneğin, “Ocak”‥“Şubat”).
  `MMM` | Kısa yerelleştirilmiş ay adı (örneğin, “Oca”‥“Şub”).
  `yy` | İki basamaklı sayı olarak yıl (00–99).
  `yyyy` | Dört basamaklı sayı olarak yıl (1752–8000).
  `h` | Başında sıfır olmadan saat (0‥23 veya ÖÖ/ÖS görüntüleniyorsa 1‥12).
  `hh` | Başında sıfır olarak saat (00‥23 veya ÖÖ/ÖS görüntüleniyorsa 01‥02).
  `m` | Başında sıfır olmadan dakika (0‥59).
  `mm` | Başında sıfır olarak dakika (00‥59).
  `s` | Başında sıfır olmadan saniye (0‥59).
  `ss` | Önünde sıfır olarak saniye (00‥59).
  `z` | Başında sıfır olmadan milisaniye (0‥999).
  `zzz` | Başında sıfır olarak milisaniye (000‥999).
  `AP` | ÖÖ/ÖS görüntüsünü kullanın. AP, "ÖÖ" veya "ÖS" ile değiştirilir.
  `ap` | ÖÖ/ÖS görüntüsünü kullanın. AP, "AM" veya "PM" olarak değiştirilir.

char {DİZİ tanımlayıcı}

  Bu komut, sayısal tanımlayıcılarına göre; ondalık, sekizlik veya onaltılık biçimde gerçek karakterleri eklemenizi sağlar. Bunu kullanmak için Düzenleme Komutu iletişim kutusunu başlatın ve giriş kutusuna `char: [number]` yazın, ardından Tamam’a basın.

  Örnek 5.1. char örnekleri

  Girdi: `char:234`

  Çıktı: `ê`

  Girdi: `char:0x1234`

  Çıktı: `ሴ`

s///[ig] %s///[ig]

  Bu komut, geçerli satırda veya tüm dosyada sed benzeri arama/değiştirme işlemi yapar (%s///).

  Kısacası metinde, birinci ve ikinci eğik çizgi arasındaki normal ifade olan arama dizgisi ile eşleşen metin aranır ve bir eşleşme bulunduğunda metnin eşleşen kısmı, ikinci ve son eğik çizgi arasındaki ifadeyle değiştirilir. Arama dizgisindeki parantezler geriye başvurular oluşturur; yani komut, parantez içinde eşleşen dizinin hangi bölümünün anımsanacağını bilir; bu diziler, ilk parantez kümesi için `\1`, ikinci parantez kümesi için `\2` olarak anılan değiştirme dizgisinde yeniden kullanılabilir.

  Bir gerçek karakter aramak için `(` veya `)` onu bir ters eğik çizgi karakteriyle kaçırmalısınız: `\(\)`

  İfadenin sonuna `i` koyarsanız eşleştirme BÜYÜK/küçük harfe duyarlı olmayacaktır. Eğer sona bir `g` koyarsanız dizginin tüm oluşları değiştirilecektir, aksi takdirde yalnızca ilk oluş değiştirilir.

  Örnek 5.2. Geçerli satırda metin değiştirmek

  Dost canlısı derleyiciniz, kaynak dosyanızda 3902. satırda bahsedilen `sınıfım` sınıfının tanımlanmadığını söyleyerek durdu.

  “Tüh!”, tabii ki `Sınıfım` olması gerek diye düşündünüz. 3902. satıra gittiniz ve metinde sözcüğü bulmak yerine Düzenleme Komutu iletişim kutusunu açarak `s/sınıfım/Sınıfım/i` yazdınız ve Tamam düğmesine bastınız; artık dosyayı kaydedip hatasız şekilde derleyebilirsiniz.

  Örnek 5.3. Tüm dosyada metin değiştirmek

  Birkaç kez “Bayan Gökçen”’den söz ettiğiniz bir dosyanız olduğunu ve birisinin gelip size “Bay Gökmen” ile yeni evlendiğini söylediğini hayal edin. Elbette, “Bayan Gökçen” ifadesinin her bir örneğini “Bayan Gökmen” ile değiştirmek istersiniz.

  Komut satırına girin ve `%s/Gökçen/Gökmen/` komutunu çalıştırın, işiniz bitti.

  Örnek 5.4. Daha Gelişmiş Bir Örnek

  Bu örnekte geriye başvuruların yanı sıra karakter sınıfının kullanımı kullanılmaktadır (bunun ne olduğunu bilmiyorsanız lütfen aşağıda belirtilen ilgili belgelere bakın).

  Aşağıdaki gibi bir satırınız olduğunu düşünün:

      void MyClass::DoStringOps( String      &foo, String &bar, String *p, int  &a, int &b )

  Bunun pek güzel bir kod olmadığını anladınız ve argüman adının önünde & ile karakterize edilen tüm “address of” argümanları için `const` anahtar sözcüğünü kullanmaya karar verdiniz. Ayrıca, her sözcük arasında yalnızca 1 boşluk karakteri olacak şekilde beyaz alanı basitleştirmek istediniz.

  Düzenleme Komut iletişim kutusunu açın ve `s/\s+(\w+)\s+(&)/ const \1 \2/g` yazarak Tamam düğmesine tıklayın. İfadenin sonundaki `g` geriye başvuruların kaydedilmesi için düzenli ifadenin her eşleşmede yeniden derlenmesini sağlar.

  Çıktı: `void MyClass::DoStringOps( const String &foo, const String &bar, String *p, const int &a, const int &b )`

  Görev tamamlandı! Şimdi ne yaptık? İlk olarak, biraz boşluk (`\s+`), sonrasında bir veya daha çok abecesel karakterler (`\w+`), sonrasında biraz daha boşluk (`\s+`), sonrasında bir ve işareti aradık; bu süreçte abecesel parçayı ve ve işaretini değiştirme işleminde yeniden kullanım için sakladık. Sonrasında, satırımızın eşleşen kısmını bir boşluk ve sonrasında “const” ile bir boşluk daha ve abecesel parça ile izledik (`\1`); bunlardan sonra yine bir boşluk ve kaydettiğimiz ve işaretini koyduk (`\2`)

  Bazı durumlarda bu abecesel parça bir “String”, bazı durumlarda ise “int” idi, böylece `\w` karakter sınıfını ve `+` niceleyicisi bize çok yararlı oldu.

sort

  Seçili metni veya tüm belgeyi sıralar.

natsort

  Seçili satırları veya tüm belgeyi doğal olarak sıralayın.

  Örnek 5.5. sort ve natsort

  `sort(a10, a1, a2)`, `a1, a10, a2` sonucunu verir

  `natsort(a10, a1, a2)`, `a1, a2, a10` sonucunu verir

moveLinesDown

  Seçili satırları aşağı taşıyın.

moveLinesUp

  Seçili satırları yukarı taşıyın.

uniq

  Seçili metinden veya tüm belgeden yinelenen satırları kaldırın.

rtrim

  Seçili metnin veya tüm belgenin sonundaki gereksiz boşluğu kaldırın.

ltrim

  Seçili metnin ya da tüm belgenin başındaki boşlukları kaldırın.

join [DİZİ ayırıcı]

  Seçili satırları veya tüm belgeyi birbirine katın. İsteğe bağlı olarak bir ayırıcı tanımlayan bir parametre alır; örneğin `join ', '`

rmblank

  Seçili metinden veya tüm belgeden boş boşlukları kaldırın.

alignon

  Bu komut, seçilen bloktaki veya belgenin tamamındaki satırları, argüman olarak verilen normal bir ifadeyle verilen sütunda hizalar.

  Boş bir dizgi verirseniz öntanımlı olarak ilk boş olmayan karaktere hizalanır.

  Dizginin bir yakalaması varsa yakalanan eşleşmeye girintili olacaktır.

  Örnekler:

  `alignon -`, tümünü aynı sütunda hizalamak için her bir satırın önündeki “-” öncesinde boşluklar ekler.

  `alignon :\\s+(.)`, tümünü aynı sütunda hizalamak için bir noktalı virgülden sonra oluşan ilk boş olmayan karakterin öncesine boşluklar ekler.

unwrap

  Seçili metnin veya tüm belgenin kaydırmasını geri alın.

each {DİZİ betik}

  Argüman olarak bir JavaScript işlevi verildiğinde, seçili satırların listesi için bunu çağırın ve bunları, o geri çağırmanın dönüş değeriyle değiştirin.

  Örnek 5.6. Seçili satırları birbirine kat

  `each 'function(lines){return lines.join(", ")}'`

  Veya kısaca:

  `each 'lines.join(", ")'`

filter {DİZİ betik}

  Argüman olarak bir JavaScript işlevi verildiğinde, seçili satırların listesi için bunu çağırın ve geri çağırmanın false döndürdüğü satırları kaldırın.

  Örnek 5.7. Boş satırları kaldır

  `filter 'function(1){return 1.length > 0;}'`

  Veya kısaca:

  `filter 'line.length > 0'`

map {DİZİ betik}

  Argüman olarak bir JavaScript işlevi verildiğinde, seçili satırların listesi için bunu çağırın ve satırı geri çağırmanın değeriyle değiştirin.

  Örnek 5.8. Boş satırları kaldır

  `map 'function(line){return line.replace(/^s+/,"");}'`

  Veya kısaca:

  `map 'line.replace(/^s+/,"")'`

duplicateLinesUp

  Seçili satırları geçerli seçim üzerine çoğaltın.

duplicateLinesDown

  Seçili satırları geçerli seçimin altına çoğaltın.

#### Dolaşım için komutlar

goto {TAMSAYI satır}

  Bu komut, belirtilen satıra gider.

grep {DİZİ dizgi}

  Belgeyi, `dizgi` düzenli ifadesi için arayın. Daha fazla bilgi için Ek A, Düzenli İfadeler bölümüne bakın.

find {DİZİ dizgi}

  Bu komut, yapılandırmaya göre `dizgi`’nin ilk oluşuna gider. İzleyen oluşlar, Düzen → Sonrakini Bul ile bulunabilir (öntanımlı kısayol: F3).

  Bul komutu, iki nokta üst üste ve ardından bir veya daha fazla seçeneğin eklenmesiyle yapılandırılabilir; komutun biçimi `find:seçenekler dizgi` biçimindedir. Aşağıdaki seçenekler desteklenir:

  `b`

    Geriye doğru arayın.

  `c`

    İmleç konumundan itibaren arayın.

  `e`

    Yalnızca seçimde arayın.

  `r`

    Düzenli ifade araması yapın. Ayarlıysa N değiştirme dizisindeki yakalamaları temsil etmek üzere bir numara olması için `\N` kullanabilirsiniz.

  `s`

    BÜYÜK/küçük harf duyarlı arama yapın.

  `w`

    Yalnızca tam sözcüklerle eşleştirin.

ifind {DİZİ dizgi}

  Bu komut, “yazdıkça” aramayı sağlar. Aramanın davranışını bir sütun ve seçenekleri ekleyerek yapılandırabilirsiniz; şöyledir: `ifind:seçenekler dizgi`. İzin verilen seçenekler:

  `b`

    Geriye doğru arayın.

  `r`

    Düzenli ifade araması yapın.

  `s`

    BÜYÜK/küçük harf duyarlı arama yapın.

  `c`

    İmleç konumundan itibaren arayın.

#### Temel Düzenleyici İşlevleri için Komutlar (Bunlar düzenleyici bileşenin kullanıldığı uygulamaya göre değişir)

w

  Geçerli belgeyi kaydedin.

wa

  Tüm geçerli açık belgeleri kaydedin.

q

  Geçerli belgeyi kapatın.

qa

  Tüm açık belgeleri kapatın.

wq

  Geçerli belgeyi kaydedin ve kapatın.

wqa

  Tüm geçerli açık belgeleri kaydedin ve kapatın.

x

  Geçerli belgeyi yalnızca değiştiyse kaydedin ve kapatın.

x

  Geçerli açık olan tüm belgeleri yalnızca değiştiyse kaydedin ve kapatın.

bp

  Belgeler listesindeki önceki belgeye gidin.

bn

  Belgeler listesindeki sonraki belgeye gidin.

new

  Yatay bölünmüş görünümde yeni bir belge açın.

vnew

  Dikey bölünmüş görünümde yeni bir belge açın.

e

  Geçerli belge diskte değiştiyse yeniden yükleyin.

enew

  Yeni bir belge düzenleyin.

print

  Geçerli belgeyi yazdırmak için Yazdır iletişim kutusunu açın.

Kod Katlamayı Kullanmak
Kod Katlamayı Kullanmak

## Kod Katlamayı Kullanmak

Kod katlama, bir belgenin bölümlerini düzenleyicide gizlemenize olanak tanıyarak büyük belgelere genel bakışı kolaylaştırır. KatePart’de katlanabilir bölgeler, sözdizim vurgulama tanımlarında tanımlanan kurallar kullanılarak hesaplanır ve bu nedenle yalnızca bazı biçimlerde kullanılabilir — tipik olarak program kaynak kodu, XML işaretlemesi ve benzeri. Kod katlamayı destekleyen çoğu vurgu tanımı, genellikle `BEGIN` ve `END` anahtar sözcüklerini kullanarak katlanabilir bölgeleri elle tanımlamanıza da olanak tanır.

Kod katlama özelliğini kullanmak için halihazırda görünmüyorsa Görünüm → Katlama İmleyicilerini Göster menü ögesini kullanarak katlama imleyicilerini etkinleştirin. Ekranın sol tarafındaki Katlama İmleyicileri Bölmesi, belirli bir bölgedeki olası işlemi belirtmek için üçgen sembolleriyle katlanabilir bölgelerin grafiksel bir görünümünü görüntüler: Yukarıdan aşağıya bir üçgen, bölgenin genişletildiği anlamına gelir; tıklandığında bölge daraltılır ve bunun yerine sağa işaret eden bir üçgen görüntülenir.

Katlama bölgelerinin durumunu değiştirmek için üç komut sağlanır; ek bilgi için menü belgelendirmesine bakın.

Katlanmış çizgiler, bir dosya kapatıldığında anımsanır, böylece dosyayı yeniden açtığınızda katlanmış düğümler hâlâ katlanmış olacaktır. Bu aynı zamanda yeniden yükleme işlemleri için de geçerlidir.

Kod katlama özelliğini kullanmak istemiyorsanız düzenleyici yapılandırmasının Görünüş bölümündeki Katlama imleyicilerini göster seçeneğini kullanabilirsiniz.

Bölüm 6. KatePart’ı genişletmek
KatePart’ı genişletmek

# Bölüm 6. KatePart’ı genişletmek

T.C. Hollingsworth `<tchollingsworth@gmail.com>`

Çeviri: Emir SARI

## Giriş

Herhangi bir gelişmiş metin düzenleyicisi bileşeni gibi KatePart da işlevselliğini genişletmek için çeşitli yollar sunar. JavaScript ile basit betikler yazarak yeni özellikler ekleyebilirsiniz. Son olarak, KatePart için yeni özellikler yazdıktan sonra bize katılın ve iyileştirmelerinizi dünyanın geri kalanıyla paylaşın!

Sözdizim Vurgulama ile çalışmak
Sözdizim Vurgulama ile çalışmak

## Sözdizim Vurgulama ile çalışmak

### Genel Bakış

Sözdizim Vurgulama, dosyanın amacına göre dizinin işlevine bağlı olarak düzenleyicinin metni kendiliğinden farklı biçemlerde/renklerde görüntülemesini sağlayan şeydir. Örneğin program kaynak kodunda, denetim ifadeleri kalın harflerle gösterilebilirken, veri türleri ve yorumlar metnin geri kalanından farklı renkler alır. Bu, metnin okunabilirliğini büyük ölçüde artırır ve böylece yazarın daha verimli ve üretken olmasına yardımcı olur.

Sözdizim vurgulama ile gösterilen bir C++ işlevi.

Aynı C++ işlevi, vurgulama olmadan.

İki örnekten hangisini okuması daha kolay?

KatePart, sözdizim vurgulaması yapmak için esnek, yapılandırılabilir ve yetenekli bir sistemle birlikte gelir ve standart dağıtım, çok çeşitli programlama, komut dosyası yazma ve işaretleme dilleri ve diğer metin dosyası biçimleri için tanımlar sağlar. Ayrıca basit XML dosyalarında kendi tanımlarınızı da sağlayabilirsiniz.

KatePart, bir dosyayı açtığınızda onun doğru sözdizim kurallarını sırasıyla MIME türü, dosya uzantısı veya bunlardan ikisi de yoksa içeriğine bakarak algılayacaktır. Yanlış bir seçimle karşı karşıya kalırsanız Araçlar → Vurgulama menüsünden elle bir vurgulama türü seçebilirsiniz.

Sözdizim vurgulamaları tarafından kullanılan biçemler ve renkler yapılandırma iletişim kutusunun Vurgulanan Metin Biçemleri sekmesinden düzenlenebilirken, MIME türleri ve kullanması gereken dosya uzantıları ise Kipler ve Dosya Türleri sekmesinden ayarlanır.

### Not

Sözdizim vurgulama, doğru metnin okunabilirliğini artırmak için vardır; ancak metninizi doğrulamak için ona güvenemezsiniz. Kullandığınız biçime bağlı olarak metni sözdizimi için işaretlemek zordur ve bazı durumlarda sözdizim kurallarının yazarları metnin %​98’i doğru şekilde oluşturulursa gurur duyacaktır; ancak çoğunlukla yanlış %​2’yi görmek için nadir bir biçeme gereksiniminiz vardır.

### KatePart Sözdizim Vurgulama Sistemi

Bu bölümde KatePart sözdizim vurgulama mekanizmasını daha ayrıntılı olarak ele alacağız. Bu konuda bilgi sahibi olmak istiyor ve sözdizim tanımlarını değiştirmek veya yeni bir tane oluşturmak istiyorsanız tam size göre.

#### Nasıl Çalışır

Bir dosyayı açtığınızda KatePart düzenleyicisinin yaptığı ilk şeylerden biri, dosya için hangi sözdizim tanımının kullanılacağını algılamaktır. Dosya metnini okurken ve siz dosyaya bir şeyler yazarken, sözdizim vurgulama sistemi, sözdizim tanımıyla tanımlanan kuralları kullanarak metni çözümleyecek ve farklı bağlamların ve biçimlerin başladığı ve bittiği yerleri imleyecektir.

Belgeye bir şeyler yazdığınızda, yeni metin anında çözümlenir ve imlenir; böylece, bir bağlamın başlangıcı veya sonu olarak imlenen bir karakteri silerseniz çevreleyen metnin biçemi buna göre değişir.

KatePart Sözdizim Vurgulama Sistemi tarafından kullanılan sözdizim tanımları XML dosyalarıdır ve şunları içerir:

- Bağlam blokları halinde düzenlenmiş metnin rolünü algılamaya yönelik kurallar

- Anahtar sözcük listeleri

- Biçem ögesi tanımları

Metin çözümlenirken algılama kuralları tanımlandıkları sıraya göre değerlendirilir ve geçerli dizinin başlangıcı bir kuralla eşleşiyorsa ilgili bağlam kullanılır. Metindeki başlangıç noktası, kuralın eşleştiği son noktaya taşınır ve eşleşen kural tarafından belirlenen bağlamdan başlayarak yeni bir kurallar döngüsü başlar.

#### Kurallar

Algılama kuralları, vurgulama algılama sisteminin kalbidir. Kural, çözümlenen metinle eşleştirilecek bir dizi, karakter veya düzenli ifadedir. Metnin eşleşen kısmı için hangi biçemin kullanılacağı hakkında bilgi içerir. Sistemin çalışma bağlamını ya açıkça belirtilen bir bağlama ya da metin tarafından kullanılan önceki bağlama çevirebilir.

Kurallar bağlam gruplarında düzenlenir. Bir bağlam grubu, biçim içindeki ana metin kavramları için kullanılır; örneğin, alıntılanan metin dizileri veya program kaynak kodundaki yorum blokları. Bu, vurgulama sisteminin gerekli olmadığında tüm kurallar arasında döngü yapmasına gerek kalmamasını ve metindeki bazı karakter dizilerinin geçerli bağlama bağlı olarak farklı şekilde ele alınabilmesini sağlar.

Örneklere özgü verinin kurallarda kullanılmasına izin vermek için bağlamlar devingen olarak oluşturulabilir.

#### Bağlam Biçemleri ve Anahtar Sözcükler

Bazı programlama dillerinde tamsayılar, derleyici (kaynak kodunu ikili yürütülebilir dosyaya dönüştüren program) tarafından kayan noktalı sayılardan farklı şekilde ele alınır ve tırnak içine alınan bir dizi içinde özel bir anlama sahip karakterler olabilir. Bu gibi durumlarda, metni okurken kolayca tespit edilebilmeleri için onları çevreden farklı kılmak mantıklıdır. Dolayısıyla, özel bağlamları temsil etmeseler bile sözdizim vurgulama sistemi tarafından bu şekilde görülebilirler, böylece farklı sunum için imlenebilirler.

Bir sözdizim tanımı, kullanıldığı biçimin kavramlarını kapsayacak kadar çok sayıda biçem içerebilir.

Pek çok biçimde belirli bir kavramı temsil eden sözcük listeleri bulunur. Örneğin, programlama dillerinde, denetim ifadeleri bir kavramdır, veri türü adları başka bir kavramdır ve dilin yerleşik işlevleri üçüncüsüdür. KatePart Sözdizim Vurgulama Sistemi, metin biçimlerinin kavramlarını vurgulamak amacıyla metindeki sözcükleri tespit etmek ve imlemek için bu tür listeleri kullanabilir.

#### Öntanımlı Biçemler

KatePart’de bir C++ kaynak dosyası, bir Java™ kaynak dosyası ve bir HTML belgesi açarsanız biçimler farklı olsa ve dolayısıyla özel işlem için farklı sözcükler seçilse bile, kullanılan renklerin aynı olduğunu göreceksiniz. Bunun nedeni, KatePart’in ayrı ayrı sözdizimi tanımları tarafından kullanılan, önceden tanımlanmış bir Öntanımlı Biçemler listesine sahip olmasıdır.

Bu, farklı metin biçimlerindeki benzer kavramların tanınmasını kolaylaştırır. Örneğin, yorumlar hemen hemen her programlama, komut dosyası veya biçimlendirme dilinde bulunur ve tüm dillerde aynı biçem kullanılarak oluşturulduklarında, bunları metin içinde bunların ne olduğunu tanımlamaya çalışmakla vakit kaybetmezsiniz.

### İpucu

Bir sözdizim tanımındaki tüm biçemler, öntanımlı biçemlerden birini kullanır. Birkaç sözdizim tanımı, öntanımlılardan daha çok biçem kullanır; bu nedenle, bir biçimi sık sık kullanıyorsanız bazı kavramların aynı biçemi kullanıp kullanmadığını görmek için yapılandırma iletişim kutusunu açmanız faydalı olabilir. Örneğin, diziler için yalnızca bir öntanımlı biçem vardır; ancak Perl programlama dili iki tür diziyle çalıştığından, bunları biraz farklı olacak şekilde yapılandırarak vurgulamayı geliştirebilirsiniz. Tüm kullanılabilir öntanımlı biçemler daha sonra açıklanacaktır.

### XML Vurgu Tanımı Biçimi

#### Genel Bakış

KatePart, KDE Frameworks’ten Syntax-Highlighting kitaplığını kullanır. KatePart ile verilen öntanımlı XML vurgulama dosyaları, Syntax-Highlighting tarafından öntanımlı olarak derlenirler.

Bu bölüm, XML Vurgu Tanımı biçimine genel bir bakış sunar. Küçük bir örneğe dayanarak ana bileşenleri, bunların anlamlarını ve kullanımlarını açıklayacağız. Bir sonraki bölümde vurgu algılama kurallarının ayrıntılarına girilecektir.

XSD olarak da bilinen resmi tanım, Sözdizim Vurgulama deposundaki `language.xsd` dosyasında bulunabilir

`.xml` vurgu tanımlama dosyaları, kullanıcı klasörünüzde genelde ``$HOME`/.local/share/` ve `/usr/share/` olan `qtpaths`--paths GenericDataLocation`` ile `org.kde.syntax-highlighting/syntax/` konumunda bulunur.

Flatpak ve Snap paketlerinde, yukarıdaki dizin işe yaramaz; çünkü her bir uygulamanın veri konumları farklıdır. Bir Flatpak uygulamasında, özel XML dosyalarının konumu genellikle ``$HOME`/.var/app/`flatpak-package-name`/data/org.kde.syntax-highlighting/syntax/` olup Snap uygulamalarında ise ``$HOME`/snap/`snap-package-name`/current/.local/share/org.kde.syntax-highlighting/syntax/` olur.

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

Özetle, çoğu yapılandırma için özel XML dosyalarının dizini aşağıdaki gibidir:

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

Aynı dil için birden çok dosya varsa `language` ögesindeki en yüksek `version` özniteliğine sahip dosya yüklenir.

KatePart Vurgu Tanımı dosyalarının ana bölümleri

Vurgulama dosyası, XML sürümünü ayarlayan bir üstbilgi içerir:

      <?xml version="1.0" encoding="UTF-8"?>

Tanım dosyasının kökü öge `dilidir`. Kullanılabilir öznitelikler şunlardır:

  Zorunlu öznitelikler:

  `name`, dilin adını ayarlar. Sonrasında menülerde ve iletişim kutularında görünür.

  `section`, kategoriyi belirtir.

  `extensions`, dosya uzantılarını tanımlar, "*.cpp;*.h" gibi

  `version`, tanım dosyasının geçerli revizyonunu bir tamsayı türünden belirtir. Vurgu tanımı dosyasını değiştirdiğinizde bu sayıyı artırdığınızdan emin olun.

  `kateversion`, en son desteklenen KatePart sürümünü belirtir.

  İsteğe bağlı öznitelikler:

  `mimetype`, dosyaların MIME türlerini ilişkilendirir.

  `casesensitive`, anahtar sözcüklerin BÜYÜK/küçük harf duyarlı olup olmadığını tanımlar.

  `priority`, başka bir vurgu tanım dosyası aynı uzantıları kullanıyorsa gereklidir. Daha yüksek öncelik kazanır.

  `author`, yazarın adını ve e-posta adresini içerir.

  `license`, lisansı içerir. Yeni sözdizim vurgulama dosyaları için genelde MIT lisansıdır.

  `style`, sağlanan dili içerir ve `required-syntax-style` özniteliği için olan girintileyiciler tarafından kullanılır.

  `indenter`, öntanımlı olarak hangi girintileyicinin kullanılacağını tanımlar. Kullanılabilir girintileyiciler: ada, normal, cstyle, cmake, haskell, latex, lilypond, lisp, lua, pascal, python, replicode, ruby ve xml.

  `hidden`, adın KatePart menülerinde görünüp görünmeyeceğini tanımlar.

  Böylece, bir sonraki satır böyle görünebilir:

      <language name="C++" version="1" kateversion="2.4" section="Sources" extensions="*.cpp;*.h" />

Sonrasında `highlighting` ögesi gelir. Bu öge, isteğe bağlı `list` ögesini ve zorunlu `contexts` ve `itemDatas` ögelerini içerir.

  `list` ögeleri bir anahtar sözcükler listesi içerir. Bu durumda, anahtar sözcükler class ve const olur. İstediğiniz kadar liste ekleyebilirsiniz.

  KDE Frameworks 5.53 sürümünden bu yana, bir liste, başka bir listeden ve/veya dilden/dosyadan `include` ögesini kullanarak anahtar sözcükler içerebilirler. `IncludeRules` kuralında olduğu gibi, `##`, liste adını ve dil tanımını ayırmak için kullanılır. Bu, başka bir dilin/dosyanın anahtar sözcüklerini içermeniz gerekiyorsa yinelenen anahtar sözcük listelerini önlemek için yararlıdır. Örneğin, othername listesi, ISO C++ diline ait olan str anahtar sözcüğünü ve types listesinin tüm anahtar sözcüklerini içerir.

  `contexts` ögesi tüm bağlamları içerir. İlk bağlam, öntanımlı olarak, vurgulamanın başlangıcıdır. Normal Text adlı bağlamda iki adet kural vardır: somename adındaki bir kuralla eşleşen anahtar sözcükler ve bir tırnağı algılayıp bağlamı string yapan başka bir tanesi. Kurallar hakkında daha fazla bilgi almak için sonraki fasılı okuyun.

  Üçüncü kısımsa `itemDatas` ögesidir. Bağlamlar ve kurallar tarafından gereksinim duyulan tüm renk ve yazıtipi biçemlerini içerir. Bu örnekte, `itemData` Normal Text, String ve Keyword kullanılmıştır.

      <highlighting>
          <list name="somename">
            <item>class</item>
            <item>const</item>
          </list>
          <list name="othername">
            <item>str</item>
            <include>types##ISO C++</include>
          </list>
          <contexts>
            <context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
              <keyword attribute="Keyword" context="#stay" String="somename" />
              <keyword attribute="Keyword" context="#stay" String="othername" />
              <DetectChar attribute="String" context="string" char="&quot;" />
            </context>
            <context attribute="String" lineEndContext="#stay" name="string" >
              <DetectChar attribute="String" context="#pop" char="&quot;" />
            </context>
          </contexts>
          <itemDatas>
            <itemData name="Normal Text" defStyleNum="dsNormal" />
            <itemData name="Keyword" defStyleNum="dsKeyword" />
            <itemData name="String" defStyleNum="dsString" />
          </itemDatas>
        </highlighting>

Bir vurgu tanımının son kısmı ise isteğe bağlı olan `general` bölümüdür. Anahtar sözcükler, kod katlama, yorumlar, girintileme, boş satırlar ve yazım denetim üzerine bilgiler içerir.

  `comment` bölümü, tek bir satırlık bir yorumun hangi diziye konulduğunu tanımlar. Ayrıca, ek end özniteliği ile multiLine kullanarak çok satırlı bir yorum da tanımlayabilirsiniz. Bu, kullanıcı comment/uncomment ile ilişkili kısayola bastığı zaman kullanılır.

  `keywords` bölümü, anahtar sözcük listelerinin BÜYÜK/küçük harf duyarlı olup olmadığını tanımlar. Diğer öznitelikler daha sonra açıklanacaktır.

  `folding`, `emptyLines` ve `spellchecking` bölümleri genelde gerekli değildir ve daha sonra açıklanacaklardır.

      <general>
          <comments>
            <comment name="singleLine" start="#"/>
            <comment name="multiLine" start="###" end="###" region="CommentFolding"/>
          </comments>
          <keywords casesensitive="1"/>
          <folding indentationsensitive="0"/>
          <emptyLines>
            <emptyLine regexpr="\s+"/>
            <emptyLine regexpr="\s*#.*"/>
          </emptyLines>
          <spellchecking>
            <encoding char="á" string="\'a"/>
            <encoding char="à" string="\`a"/>
          </spellchecking>
        </general>
      </language>

#### Ayrıntılı Olarak Bölümler

Bu kısım; bağlamlar, itemData’lar, anahtar sözcükler, yorumlar, kod katlama ve girintileme ile ilgili tüm öznitelikleri açıklar.

`context` ögesi, `contexts` grubuna aittir. Bağlamın kendisi, vurgu sistemi bir satırın sonuna ulaştığında ne olması gerektiği gibi bağlama özgü kuralları tanımlar. Kullanılabilir özellikler şunlardır:

  `name`, bağlam adını belirtir. Kurallar, kuralın eşleşmesi durumunda geçiş yapılacak bağlamı belirtmek için bu adı kullanır.

  `attribute`, hiçbir kural eşleşmediğinde veya bir kural özniteliği belirtilmediğinde bir karakter için kullanılacak biçemi tanımlar. Sonraki durumda, kuralın context’inde belirtilen attribute kullanılır.

  `lineEndContext`, vurgu sistemi satırın sonuna geldiğinde geçiş yapılacak bağlamı tanımlar. Bu, ya başka bir bağlam adı, bağlamı değiştirmemek (bir şey yapmamak) için `#stay` veya bağlamdan çıkış yapmak için `#pop` olabilir. Örneğin, üç kez `#pop#pop#pop` yapmak veya hatta iki kez `#pop#pop!OtherContext` ve `OtherContext` adlı başka bağlama geçiş yapmak da olabilir. Ayrıca başka bir dil tanımına ait olan başka bir bağlama geçiş yapmak da olanaklıdır. Bu, `IncludeRules` kuralları ile aynı tarzdadır; örneğin, `SomeContext##JavaScript`. Bağlam anahtarları ek olarak “Vurgu Algılama Kuralları” içinde açıklanırlar. Öntanımlı: #stay.

  `lineEmptyContext`, boş bir satıra rastlandığındaki bağlamı tanımlar. Bağlam anahtarlarının terminolojisi daha önce lineEndContext’te açıklananla aynıdır. Öntanımlı: #stay.

  `fallthroughContext`, hiçbir kural eşleşmediğinde geçiş yapılacak sonraki bağlamı belirtir. Bağlam anahtarlarının terminolojisi daha önce lineEndContext’te açıklananla aynıdır. Öntanımlı: #stay.

  `fallthrough`, hiçbir kural eşleşmediğinde sistemin `fallthroughContext` içinde belirtilen geçiş yapacağı bağlamı belirtir. KDE Frameworks 5.62 sürümünden bu yana bu özniteliğin `fallthroughContext` namına kullanımdan kaldırıldığını aklınızdan çıkarmayın. Özellikle, `fallthroughContext` özniteliği varsa örtük olarak `fallthrough` değerinin true olacağı anlaşılır. Öntanımlı: false.

  `noIndentationBasedFolding`, bu bağlamdaki girintileme tabanlı katlamayı devre dışı bırakır. Girintileme tabanlı katlama etkinleştirilmemişse bu öznitelik bir işe yaramaz. Bu, general grubunun folding ögesinde tanımlanmıştır. Öntanımlı: false.

`itemData` ögesi, `itemDatas` grubundadır. Yazıtipi biçemini ve renklerini tanımlar. Böylece, kendi biçemlerinizi ve renklerinizi tanımlamanız olanaklıdır. Ancak biz yine de öntanımlı biçemlere sadık kalmanızı öneririz; böyle yaparsanız kullanıcı farklı dillerde de aynı renkleri görür. Bazen başka bir şansınız olmaz ve yazıtipi/renk özniteliklerini değiştirmeniz gerekebilir. name ve defStyleNum öznitelikleri zorunludur, diğerleri isteğe bağlıdır. Kullanılabilir öznitelikler şunlardır:

  `name`, itemData’nın adını ayarlar. Bağlamlar ve kurallar, attribute özniteliğinde bir itemData’ya başvurmak için bu adı kullanırlar.

  `defStyleNum`, hangi öntanımlı biçemin kullanılacağını tanımlar. Kullanılabilir öntanımlı biçemler ilerde daha ayrıntılı açıklanır.

  `color`, bir renk tanımlar. Geçerli biçimler “#rrggbb” veya “#rgb”dir.

  `selColor`, seçim rengini tanımlar.

  `italic` true ise metin yatık olur.

  `bold` true ise metin kalın olur.

  `underline` true ise metnin altı çizili olur.

  `strikeOut` true ise metnin üzeri çizili olur.

  `spellChecking` true ise metnin yazımı denetlenir.

`general` grubundaki `keywords` ögesi, anahtar sözcük özelliklerini tanımlar. Kullanılabilir öznitelikler şunlardır:

  `casesensitive`, true veya false olabilir. true ise tüm anahtar sözcükler BÜYÜK/küçük harf duyarlı olarak eşlenirler.

  `weakDeliminator`, sözcük sınırlandırıcısı olarak davranmayan bir karakterler listesidir. Örneğin, `'.'` noktası bir sözcük sınırlandırıcısıdır. `list` içindeki bir anahtar sözcüğün bir nokta içerdiğini varsayalım; bu, noktayı eğer yalnızca bir zayıf sınırlandırıcı olarak tanımlarsanız eşleştirir.

  `additionalDeliminator`, ek sınırlandırıcılar tanımlar.

  `wordWrapDeliminator`, ardından bir satır kaydırma oluşabilecek karakterleri tanımlar.

  Öntanımlı sınırlandırıcılar ve sözcük kaydırma sınırlandırıcıları şunlardır: `.():!+,-<=>%&*/;?[]^{|}~\`, boşluk (`' '`) ve sekmelendirici (`'\t'`).

`comments` grubundaki `comment` ögesi; Araçlar → Yorum, Araçlar → Yorumu Kapat ve Araçlar → Yorumu Aç/Kapat seçenekleri için kullanılan yorum özelliklerini tanımlar. Kullanılabilir öznitelikler şunlardır:

  `name`, ya singleLine ya da multiLine olabilir. multiLine seçerseniz end ve region öznitelikleri zorunludur. singleLine seçerseniz isteğe bağlı olan position özniteliğini ekleyebilirsiniz.

  `start`, bir yorum başlatmak için kullanılan diziyi tanımlar. C++ için bu, çoklu satır yorumlarda "/*" olur. Bu öznitelik, multiLine ve singleLine türleri için zorunludur.

  `end`, bir yorum kapatmak için kullanılan diziyi tanımlar. C++ için bu, çoklu satır yorumlarda "*/" olur. Bu öznitelik, yalnızca multiLine türü yorumlar için kullanılabilir ve onun için zorunludur.

  `region`, katlanabilir çoklu satır yorumun adı olmalıdır. Kurallarınızda beginRegion="Comment" … endRegion="Comment" olduğunu varsayalım; o zaman region="Comment" kullanmalısınız. Böylece, çoklu satır yorumun tüm metnini seçmeseniz bile yorumu kapatmak çalışır. Yalnızca, imleç çoklu satır yorumun içerisinde olmalıdır. Bu öznitelik, yalnızca multiLine türü için kullanılabilirdir.

  `position`, tek satırlık yorumun nereye eklendiğini tanımlar. Öntanımlı olarak, tek satırlık yorum satırın başında 0. sütuna koyulur; ancak position="afterwhitespace" kullanırsanız yorum, ilk boş olmayan karakterden sonra sağa doğru boşluk bırakılarak eklenir. Bu; örneğin, Python veya YAML gibi girintilemenin önemli olduğu diller için kullanışlıdır. Bu öznitelik isteğe bağlıdır ve tek olası değeri afterwhitespace’dir. Bu, yalnızca singleLine türü için kullanılabilirdir.

`general` grubundaki `folding` ögesi, kod katlama özelliklerini tanımlar. Kullanılabilir öznitelikler şunlardır:

  `indentationsensitive` true ise kod katlama imleyicileri girintileme tabanlı olarak eklenir. Örnek olarak yine Python verilebilir. Genelde öntanımlı olarak false olduğundan pek ayarlamanıza gerek olmaz.

`emptyLines` grubundaki `emptyLine` ögesi, hangi satırlara boş satır gibi davranılması gerektiğini tanımlar. Bu, `context` ögelerindeki lineEmptyContext özniteliğinin davranışının değiştirilmesine olanak tanır. Kullanılabilir öznitelikler şunlardır:

  `regexpr`, boş bir satır olarak davranılacak bir düzenli ifade tanımlar. Öntanımlı olarak, boş satırlar hiçbir karakter içermezler, dolayısıyla, bu ek boş satırlar ekler; örneğin, boşluklar içeren satırların da boş satırlar olarak kabul edilmesini istiyorsanız yararlıdır. Çoğu sözdizim tanımında bu özniteliği ayarlamanız gerekmez.

`spellchecking` grubundaki `encoding` ögesi, yazım denetimi için bir karakter kodlaması tanımlar. Kullanılabilir öznitelikler şunlardır:

  `char`, bir kodlanmış karakterdir.

  `string`, yazım denetimindeki char karakteri olarak kodlanacak karakterler dizisidir. Örneğin, LaTeX için `\"{A}` dizisi `Ä` karakterini temsil eder.

#### Kullanılabilir Öntanımlı Biçemler

Öntanımlı Biçemler daha önce halihazırda kısa bir özet olarak açıklammıştı: Öntanımlı biçemler, önceden tanımlanan yazıtipi ve renk biçemleridir.

Genel öntanımlı biçemler:

  Özel bir vurgulama gerekmediğinde `dsNormal`.

  `dsKeyword`, yerleşik dil anahtar sözcükleri.

  `dsFunction`, işlev çağrıları ve tanımları.

  `dsVariable`, kullanılabiliyorsa değişken adları (örneğin., PHP/Perl için $someVar).

  `dsControlFlow`; if, else, switch, break, return, yield, vb. denetim akışı anahtar sözcükleri.

  `dsOperator`, + - * / :: < > gibi işleçler.

  `dsBuiltIn`, yerleşik işlevler, sınıflar ve nesneler.

  `dsExtension`, ortak uzantılar; örneğin, C++ ve Python içindeki Qt™ sınıfları ve işlevler/makrolar.

  `dsPreprocessor`, önişlemci ifadeleri veya makro tanımları.

  `dsAttribute`, @override ve __declspec(…) gibi açıklamalar.

Dizi ile ilgili öntanımlı biçemler:

  `dsChar`, “x” gibi tekli karakterler.

  `dsSpecialChar`, kaçışlar, yer değiştirmeler, veya düzenli ifade işleçleri gibi özel anlama sahip diziler.

  `dsString`, "merhaba dünya" gibi diziler.

  `dsVerbatimString`, Perl, CoffeeScript ve kabuklardaki ’raw \backlash’ ve Python’daki r’\raw’ gibi gerçek veya ham diziler.

  `dsSpecialString`, SQL, regex’ler, HERE belgeleri, LATEX matematik kipi, …

  `dsImport`; modüllerin import, include, require ifadeleri.

Sayı ile ilgili öntanımlı biçemler:

  `dsDataType`; int, void, u64 gibi yerleşik veri türleri.

  `dsDecVal`, ondalık değerler.

  `dsBaseN`, 10 dışında tabana sahip değerler.

  `dsFloat`, kayan noktalı değerler.

  `dsConstant`, Pİ gibi yerleşik ve kullanıcı tanımlı sabitler.

Yorum ve belgelendirmeyle ilgili öntanımlı biçemler:

  `dsComment`, yorumlar.

  `dsDocumentation`, /** Belgelendirme yorumları */ veya """docstrings""".

  `dsAnnotation`, @param, @brief gibi belgelendirme komutları.

  `dsCommentVar`, yukarıdaki komutlarda kullanılan değişken adları; @param foobar’daki "foobar" gibi.

  `dsRegionMarker`; yorumlardaki //BEGIN, //END gibi bölge imleyicileri.

Diğer öntanımlı biçemler:

  `dsInformation`, doxygen içindeki @note gibi notlar ve ipuçları.

  `dsWarning`, doxygen’deki @warning gibi uyarılar.

  `dsAlert`; TODO, FIXME, XXXX gibi özel sözcükler.

  `dsError`, hata vurgulaması ve yanlış sözdizim.

  `dsOthers`, başka hiçbir şey uymadığında kullanılır.

### Vurgu Algılama Kuralları

Bu bölüm, sözdizim algılama kurallarını tanımlar.

Her kural, sınandıkları dizinin başlangıcındaki sıfır veya daha fazla karakterle eşleşebilir. Kural eşleşirse eşleşen karakterlere kural tarafından tanımlanan biçem veya öznitelik atanır ve bir kural, geçerli bağlamın değiştirilmesini isteyebilir.

Kural şuna benzer:

    <KuralAdı attribute="(tanımlayıcı)" context="(tanımlayıcı)" [kurala özel öznitelikler] />

attribute, eşleşen karakterlerle kullanılacak biçemi ada göre tanımlar ve context ise buradan sonra kullanılacak bağlamı tanımlar.

context, şöyle tanımlanabilir:

- identifier, bu diğer bağlamın adıdır.

- Bir order, işletkeye geçerli bağlamda kalmasını (`#stay`) veya dizide kullanılan bir önceki bağlama geri gitmesini (`#pop`) söyler. Boş veya var olmayan bir bağlam `#stay` ile eşdeğerdir.

  Daha çok adım geri gitmek için #pop anahtar sözcüğü yinelenebilir: `#pop#pop#pop`

- Bir ünlem işareti (!) ve tanımlayıcı tarafından izlenen bir sıra, işletkenin ilk sırayı izlemesini ve başka bir bağlama geçmesini söyler; örneğin, `#pop#pop!OtherContext`.

- Bir bağlam adı olan, iki adet kare tarafından izlenen (`##`) ve sonrasında başka bir tanımlayıcı olan bir tanımlayıcı, bir dil tanımının adıdır. Bu adlandırma, `IncludeRules` kurallarında kullanılana benzerdir ve başka bir sözdizim vurgulama tanımında kullanılan bağlama geçiş yapmanıza olanak tanır; örneğin, `SomeContext##JavaScript`.

Kurala özgü öznitelikler farklılık gösterir ve aşağıdaki bölümlerde açıklanmaktadır.

Ortak öznitelikler

Tüm kurallar aşağıdaki ortak özelliklere sahiptir ve `(ortak özellikler)` göründüğünde kullanılabilir. Tüm özellikler isteğe bağlıdır.

- attribute: Bir tanımlı ile itemData eşlemlenen öznitelik. Öntanımlı: context özniteliğinde tanımlanan attribute.

- context: Kural eşleşirse vurgulama sisteminin geçiş yapacağı bağlamı belirtir. Öntanımlı: #stay.

- beginRegion: Bir kod katlama bloku başlatın. Öntanımlı: Ayarsız.

- endRegion: Bir kod katlama blokunu kapatın. Öntanımlı: Ayarsız.

- lookAhead: true ise vurgulama sistemi eşleşmelerin uzunluğunu dikkate almaz.Öntanımlı: false.

- firstNonSpace: Dizi, satırdaki ilk boşluk olmayan karakterse eşleşir. Öntanımlı: false.

- column: Yalnızca sütun eşleşirse eşleşir. Öntanımlı: Ayarsız.

Devingen kurallar

Bazı kurallar, öntanımlı olarak false olan isteğe bağlı Boole türündeki `dynamic` özniteliğine izin verirler. Dynamic true ise bir kural bir regular expression ile eşleşen metni temsil eden yer tutucular kullanabilir. Bunlar kendi `string` veya `char` özniteliklerinde geçerli bağlama geçiş yaparlar. Bir `string`’de, `%N` yer tutucusu (N bir sayıdır), çağırdığı düzenli ifadede ilişkili olduğu `N` ile değiştirilir. Bir `char`’da, yer tutucu bir `N` sayısı olmalıdır ve çağıran düzenli ifadedeki ilişkili olduğu `N` ile değiştirilir. Bir kural bu özniteliğe izin veriyorsa bir (dynamic) içerir.

- dynamic: (true|false) olabilir.

`Nasıl çalışır:`

`RegExpr` kuallarının düzenli ifadelerinde, basit süslü ayraçlar arasındaki tüm metin `(PATTERN)` yakalanır ve anımsanır. Bu yakalamalar, geçiş yapıldıkları bağlama göre kullanılabilirler. Bu, `dynamic` özniteliği true iken ve `%N` (String içinde) veya `N` (char içinde) iken geçerlidir.

Bir `RegExpr` kuralında yakalanan metnin, `context` özniteliğinde belirtildiği üzere, yalnızca geçiş yapıldığı bağlam için depolandığını belirtmek önemlidir.

### İpucu

- Yakalamalar, hem devingen kurallar hem de düzenli ifadeler tarafından kullanılmayacaksa `yakalamayan gruplar` kullanılmalıdır: `(?:PATTERN)`

  `(?=PATTERN)`, `(?!PATTERN)` or `(?<=PATTERN)` gibi lookahead veya lookbehind grupları yakalanmazlar. Daha fazla bilgi için Düzenli İfadeler bölümüne bakın.

- Yakalama grupları, `%N` yerine `\N` kullanılarak aynı düzenli ifadede kullanılabilirler. Daha fazla bilgi için Düzenli İfadeler içindeki Eşleşen metni yakalamak (geriye başvurular) bölümüne bakın.

Örnek 1:

Bu basit örnekte, `=*` düzenli ifadesi ile eşleşen metin yakalanır ve devingen kuralda `%1` yerine yerleştirilir. Bu, yorumun başlangıçta aynı sayıda `=` ile bitmesine olanak tanır. Şu tür metinlerle eşleştirilir: `[[ comment ]]`, `[=[ comment ]=]`veya `[=====[ comment ]=====]`.

Ek olarak, yakalamalar yalnızca geçilen Multi-line Comment bağlamında kullanılabilirdir.

    <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
      <RegExpr context="Multi-line Comment" attribute="Comment" String="\[(=*)\[" beginRegion="RegionComment"/>
    </context>
    <context name="Multi-line Comment" attribute="Comment" lineEndContext="#stay">
      <StringDetect context="#pop" attribute="Comment" String="]%1]" dynamic="true" endRegion="RegionComment"/>
    </context>

Örnek 2:

Devingen kuralda; `%1`, `#+` ve `%2`, `&quot;+` ile eşleşen yakalamalara karşılık gelir. Bu, şu tür metinlerle eşleşir: `#etiket""""bağlamın içi""""#`.

Bu yakalamalar; OtherContext, FindEscapes veya SomeContext gibi başka bağlamlarda kullanılabilir olmayacaktır.

    <context name="SomeContext" attribute="Normal Text" lineEndContext="#stay">
      <RegExpr context="#pop!NamedString" attribute="String" String="(#+)(?:[\w-]|[^[:ascii:]])(&quot;+)"/>
    </context>
    <context name="NamedString" attribute="String" lineEndContext="#stay">
      <RegExpr context="#pop!OtherContext" attribute="String" String="%2(?:%1)?" dynamic="true"/>
      <DetectChar context="FindEscapes" attribute="Escape" char="\"/>
    </context>

Örnek 3:

Bu, şunun gibi metinlerle eşleşir: `Class::function<T>(…)`.

    <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
      <RegExpr context="FunctionName" lookAhead="true"
                  String="\b([a-zA-Z_][\w-]*)(::)([a-zA-Z_][\w-]*)(?:&lt;[\w\-\s]*&gt;)?(\()"/>
    </context>
    <context name="FunctionName" attribute="Normal Text" lineEndContext="#pop">
      <StringDetect context="#stay" attribute="Class" String="%1" dynamic="true"/>
      <StringDetect context="#stay" attribute="Operator" String="%2" dynamic="true"/>
      <StringDetect context="#stay" attribute="Function" String="%3" dynamic="true"/>
      <DetectChar context="#pop" attribute="Normal Text" char="4" dynamic="true"/>
    </context>

Yerel sınırlandırıcılar

Bazı kurallar, aynı adlı `keywords` etiketinin öznitelikleriyle birleştirilen `weakDeliminator` ve `additionalDeliminator` gibi isteğe bağlı özniteliklere izin verirler. Örneğin, `'%'`, `keywords`’ün zayıf bir sınırlandırıcısıysa yalnızca onun `additionalDeliminator` özniteliğine konularak bir sözcük sınırlandırıcısı olabilir. Ne zaman bir kural bu özniteliklere izin veriyorsa o bir (local deliminators) (yerel sınırlandırıcılar) içerir.

- weakDeliminator: Sözcük sınırlandırıcısı olarak davranmayan karakterlerin listesi.

- additionalDeliminator: Ek sınırlandırıcılar tanımlar.

#### Ayrıntılı Olarak Kurallar

DetectChar

  Tek bir belirli karakteri algılar. Genellikle kapatma tırnaklarını bulmak için kullanılır.

      <DetectChar char="(karakter)" (ortak öznitelikler) (devingen) />

  `char` özniteliği, eşleştirilecek karakteri tanımlar.

Detect2Chars

  Tanımlı bir sırada iki belirli karakteri algılar.

      <2KarakterAlgıla char="(karakter)" char1="(karakter)" (ortak öznitelikler) />

  `char` özniteliği, eşleştirilecek ilk karakteri, `char1` ise ikincisini tanımlar.

  Bu kural tarihsel nedenlerden dolayı buradadır; okunabilirlik açısından `StringDetect` kullanılması tercih nedenidir.

AnyChar

  Belirli bir karakter kümesinden tek bir karakteri algılar.

      <AnyChar String="(dizi)" (ortak öznitelikler) />

  `String` özniteliği, karakterlerin kümesini tanımlar.

StringDetect

  Kesin bir diziyi algılar.

      <StringDetect String="(dizi)" [insensitive="true|false"] (ortak öznitelikler) (devingen) />

  `String` özniteliği, eşleştirilecek diziyi tanımlar. `insensitive` özniteliği öntanımlı olarak false’tur ve dizi karşılaştırma işlevine geçirilir. Değer true ise duyarsız karşılaştırma kullanılır.

WordDetect

  Tam bir diziyi algılar; ancak sözcük başlangıcında ve sonunda `'.'` veya boşluk gibi sözcük sınırlarına gereksinim duyar. Bir düzenli ifade kapsamında `\b<string>\b` gibi düşünün; ancak `RegExpr` kuralından daha hızlıdır.

      <SözcükAlgıla String="(dizi)" [insensitive="true|false"] (ortak öznitelikler) (yerel sınırlandırıcılar) />

  `String` özniteliği, eşleştirilecek diziyi tanımlar. `insensitive` özniteliği öntanımlı olarak false’tur ve dizi karşılaştırma işlevine geçirilir. Değer true ise duyarsız karşılaştırma kullanılır.

  Kate 3.5 (KDE 4.5) sürümünden bu yana

RegExpr

  Bir düzenli ifade ile eşleşir.

      <RegExpr String="(dizi)" [insensitive="true|false"] [minimal="true|false"] (ortak öznitelikler) (devingen) />

  `String` özniteliği, düzenli ifadeyi tanımlar.

  `insensitive` öntanımlı olarak false’tur ve düzenli ifade işletkesine geçirilir.

  `minimal` öntanımlı olarak false’tur ve düzenli ifade işletkesine geçirilir.

  Kurallar her zaman geçerli dizinin başlangıcına göre eşleştirildiğinden, şapka (`^`) ile başlayan düzenli ifade, kuralın yalnızca satırın başlangıcına göre eşleştirilmesi gerektiğini belirtir.

  Bunlar hakkında daha fazla bilgi için Düzenli İfadeler bağlantısına bakın.

keyword

  Belirli bir listeden bir anahtar sözcüğü algılar.

      <anahtar sözcük String="(liste ado)" (ortak öznitelikler) (yerel sınırlandırıcılar) />

  `String` özniteliği, adıyla anahtar sözcük listesini tanımlar. Bu ada sahip bir liste var olmalıdır.

  Vurgulama sistemi, anahtar sözcük kurallarını oldukça eniyilenmiş bir biçimde işler. Bu, eşleştirilecek tüm anahtar sözcüklerin, örtük biçimde (öntanımlı sınırlandırıcılar) veya keywords etiketinin additionalDeliminator özelliğiyle açıkça belirtilmiş bir biçimde tanımlı sınırlandırıcılarla eşleştirilmiş olmasını bir gereklilik kılar.

  Eşleştirilecek bir anahtar sözcükte sınırlandırıcı bir karakter varsa bu ilgili karakter keywords etiketinin weakDeliminator özelliğine eklenmelidir. Sonrasında bu karakter tüm keyword kurallarında sınırlandırıcı kimliğini kaybeder. Aynı zamanda, keyword’ün weakDeliminator özniteliği de kullanılabilir; böylece bu değişiklik yalnızca bu kural için geçerli olur.

Int

  Bir tamsayıyı algılar (şu düzenli ifade gibi: `\b[0-9]+`).

      <Int (ortak öznitelikler) (yerel sınırlandırıcılar) />

  Bu kuralın belirli bir özniteliği yoktur.

Float

  Bir kayan noktalı sayıyı algılar (şu düzenli ifade gibi: `(\b[0-9]+\.[0-9]*|\.[0-9]+)([eE][-+]?[0-9]+)?`).

      <Float (ortak öznitelikler) (yerel sınırlandırıcılar) />

  Bu kuralın belirli bir özniteliği yoktur.

HlCOct

  Bir sekizlik noktalı sayı temsilini algılar (şu düzenli ifade gibi: `\b0[0-7]+`).

      <HlCOct (ortak öznitelikler) (yerel sınırlandırıcılar) />

  Bu kuralın belirli bir özniteliği yoktur.

HlCHex

  Bir onaltılık sayı temsilini algılar (şu düzenli ifade gibi: `\b0[xX][0-9a-fA-F]+`).

      <HlCHex (ortak öznitelikler) (yerel sınırlandırıcılar) />

  Bu kuralın belirli bir özniteliği yoktur.

HlCStringChar

  Kaçırılan bir karakteri algılar.

      <HlCStringChar (ortak öznitelikler) />

  Bu kuralın belirli bir özniteliği yoktur.

  Program kodunda sıkça kullanılan karakterlerin gerçek temsilleriyle eşleşir; örneğin, `\n` (yenisatır) veya `\t` (SEKME).

  Eğer bir ters eğik çizgi (`\`) sonrasında geliyorlarsa aşağıdaki karakterler eşleşir: `abefnrtv"'?\`. Ek olarak, kaçırılan onaltılık (örneğin, `\xff`) ve sekizlik (örneğin, `\033`) karakterler de eşleşir.

HlCChar

  Bir C karakterini algılar.

      <HlCChar (ortak öznitelikler) />

  Bu kuralın belirli bir özniteliği yoktur.

  Bir kesme işareti çifti içine alınmış C karakterleriyle eşleşir (Örnek: `'c'`). Kesme işaretleri normal bir karakter veya kaçırılmış bir karakter olabilir. Eşleştirilen kaçırılmış karakter dizileri hakkında daha fazla bilgi için HlCStringChar bölümüne bakın.

RangeDetect

  Tanımlı bir başlangıç ve bitiş karakterleri olan bir diziyi algılar.

      <RangeDetect char="(karakter)"  char1="(karakter)" (ortak öznitelikler) />

  `char`, erimi başlatan karakteri, `char1` ise bitiren karakteri tanımlar.

  Örneğin küçük alıntılanmış dizileri ve benzerlerini algılamak için kullanışlıdır; ancak vurgulama işletkesi her kerede bir satır üzerinde çalıştığından, bunun bir satır sonu boyunca uzanan dizileri bulmayacağını unutmayın.

LineContinue

  Satırın sonundaki belirli bir karakterle eşleşir.

      <LineContinue (ortak öznitelik) [char="\"] />

  `char` isteğe bağlı eşleştirilecek karakterdir, öntanımlısı ise ters eğik çizgidir (`'\'`). KDE 4.13 sürümünden bu yana eklidir.

  Bu kural, satırın sonunda bağlamı değiştirmek için kullanışlıdır. Bu, örneğin C/C++’da makroları veya dizileri sürdürmek için gereklidir.

IncludeRules

  Başka bir bağlamdan, dilden veya dosyadan kuralları içerir.

      <IncludeRules context="contextlink" [includeAttrib="true|false"] />

  `context` özniteliği, hangi bağlamın içerileceğini tanımlar.

  Basit bir diziyse tanımlı tüm kuralları geçerli bağlama içerir; örneğin:

      <IncludeRules context="anotherContext" />

  Dizi bir `##` içeriyorsa vurgu sistemi, verilen adda başka bir dilden bir bağlam arar; örneğin,

      <IncludeRules context="String##C++" />

  , C++ vurgulama tanımından String bağlamını içerir.

  `includeAttrib` özniteliği true ise hedef özniteliği kaynağın olanına değiştirin. Bu; örneğin dahil edilen bağlamla eşleşen metnin ana bilgisayar bağlamından farklı bir vurgu olması durumunda yorum yapma işleminin gerçekleştirilmesi için gereklidir.

DetectSpaces

  Boşlukları algılar.

      <DetectSpaces (ortak öznitelikler) />

  Bu kuralın belirli bir özniteliği yoktur.

  İleride birkaç boşluk olabileceğini biliyorsanız; örneğin, girintili çizgilerin başında bu kuralı kullanın. Bu kural, birden fazla kuralı sınamak ve eşleşme olmaması nedeniyle birer birer atlamak yerine, tüm boşlukları tek kerede atlayacaktır.

DetectIdentifier

  Tanımlayıcı dizilerini algılar (şu düzenli ifade gibi: `[a-zA-Z_][a-zA-Z0-9_]*`).

      <DetectIdentifier (ortak öznitelikler) />

  Bu kuralın belirli bir özniteliği yoktur.

  Birden çok kuralla sınamak ve eşleşme olmaması nedeniyle birer birer atlamak yerine, bir dizi sözcük karakterini aynı anda atlamak için bu kuralı kullanın.

#### İpuçları ve Kolaylıklar

Bağlam değiştirmenin nasıl çalıştığını anladıktan sonra vurgu tanımlarını yazmak kolay olacaktır. Hangi durumda hangi kuralı seçtiğinizi dikkatlice denetlemelisiniz. Düzenli ifadeler çok güçlüdür; ancak diğer kurallara göre yavaştırlar. Bu nedenle aşağıdaki ipuçlarını dikkate alabilirsiniz.

- Düzenli ifadelerin kullanımı kolaydır ancak çoğu zaman aynı sonucu elde etmenin çok daha hızlı başka bir yolu vardır. Satırdaki ilk karakter ise `'#'` karakterini eşleştirmek istediğinizi varsayalım. Düzenli ifade tabanlı bir çözüm şöyle görünecektir:

      <RegExpr attribute="Macro" context="macro" String="^\s*#" />

  Aynısını çok daha hızlıca şunu kullanarak elde edebilirsiniz:

      <DetectChar attribute="Macro" context="macro" char="#" firstNonSpace="true" />

  . `'^#'` düzenli ifadesini eşleştirmek istiyorsanız hâlâ `column="0"` özniteliğiyle `DetectChar` kullanabilirsiniz. `column` özniteliği karakterleri sayar, bu nedenle, sekme karakteri yalnızca bir karakter olarak geçer.

- `RegExpr` kurallarında, `^PATTERN` dizgisi satırın başındaki metni eşleştirmek için kullanılacaksa `column="0"` özniteliğini kullanın. Geri kalan sütunlarda arama yapmayacağından bu, başarımı önemli ölçüde iyileştirir.

- Düzenli ifadelerde, yakalamalar aynı düzenli ifadeler içinde veya devingen kurallarda kullanılmayacaklarsa `(PATTERN)` yakalayan grupları yerine yakalamayan `(?:PATTERN)` gruplarını kullanın. Bu, gereksiz yere yakalamaları depolamayı önler.

- Karakterleri işlemeden bağlamlar arasında geçiş yapabilirsiniz. `*/` dizisiyle karşılaştığınızda bağlamı değiştirmek istediğinizi; ancak bu diziyi bir sonraki bağlamda işlemeniz gerektiğini varsayalım. Aşağıdaki kural eşleşecektir ve `lookAhead` özelliği, vurgulayıcının eşleşen diziyi bir sonraki bağlam için tutmasını sağlar.

      <StringDetect attribute="Comment" context="#pop" String="*/" lookAhead="true" />

- Çok sayıda boşluk oluşacağını biliyorsanız `DetectSpaces` kullanın.

- `'[a-zA-Z_]\w*'` düzenli ifadesi yerine `DetectIdentifier` kullanın.

- Olabildiğince öntanımlı biçemleri kullanın. Böylece, kullanıcı tanıdık bir ortam bulacaktır.

- Başkalarının karmaşık kuralları nasıl uyguladıklarını görmek için diğer XML dosyalarına bakın.

- validatehl.sh mySyntax.xml komutunu kullanarak tüm XML dosyalarını doğrulayabilirsiniz. `validatehl.sh` dosyası, her ikisi de Sözdizim Vurgulaması deposunda bulunabilen `language.xsd` dosyalarını kullanır.

- Karmaşık düzenli ifadeleri pek sık yineliyorsanız ENTITIES kullanabilirsiniz. Örnek:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE language
      [
              <!ENTITY myref    "[A-Za-z_:][\w.:_-]*">
      ]>

  Şimdi, düzenli ifade yerine &myref; kullanabilirsiniz.

- Kate’de, yerleşik komut satırını (öntanımlı kısayolu `F7`) ve reload-highlighting komutunu kullanarak sözdizimleri yenileyebilirsiniz.

- Bir sözdizimi sınamak ve biçemi ve metnin her bir kısmıyla ilgili bölgeleri görüntülemek için `ksyntaxhighlighter6` (eski sürümlerde `kate-syntax-highlighter`) adlı komut satırı izlencesini kullanabilirsiniz.

  ksyntaxhighlighter6 --output-format=ansi --syntax-trace=format test.cpp sonucu.

  Daha çok seçenek için ksyntaxhighlighter6 -h kullanın.

Renk Temalarıyla Çalışmak
Renk Temalarıyla Çalışmak

## 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 Ayarlar → Renk Şeması ögesinden ulaşılabilir.

“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ı.

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 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 Ayarlar → `Uygulama` 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.

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 Ayarlar → Renk 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.

JavaScript ile betik yazımı
JavaScript ile betik yazımı

## JavaScript ile betik yazımı

KatePart düzenleyici bileşeni, betik yazımı ile kolaylıkla genişletilebilir. Bunun içn kullanılan dil ECMAScript’tir (genellikle JavaScript olarak bilinir). KatePart iki tür betiği destekler: Girintileme ve komut satırı betikleri. Komut satırı betiklerine benzer bir işlevsellik ayrıca parçacıklar eklentisinde sunulmaktadır. Bu eklenti, özellikle küçük özelleştirilmiş betikler için daha iyi bir başlangıç noktası sağlayabilir.

### Girintileme Betikleri

Girintileme betikleri (aynı zamanda girintileyiciler olarak da bilinir) metin yazarken kaynak kodu kendiliğinden girintiler. Örnek olarak, Dönüş düğmesine bastıktan sonra girinti düzeyi genelde artar.

Aşağıdaki bölümlerde basit bir girintileyici için temel çerçevenin nasıl oluşturulacağı adım adım açıklanmaktadır. İlk adım olarak, yerel ana klasör olan `$`XDG_DATA_HOME`/katepart5/script/indentation` klasöründe yeni bir `*.js` dosyası oluşturun; örneğin, `javascript.js`. Burada, `XDG_DATA_HOME` çevre değişkeni genellikle `~/.local` veya `~/.local/share` olarak genişletilir.

Windows®’ta bu dosyalar genelde `C:\\Users\\`user`` olarak genişleyen `%USERPROFILE%\AppData\Local\katepart5\script\indentation`. `%USERPROFILE%` konumundadır.

#### Girintileme Betiği Üstbilgisi

`javascript.js` dosyasının üstbilgisi, aşağıdaki gibi belgenin başına JSON olarak gömülür:

    var katescript = {
        "name": "JavaScript",
        "author": "Örnek Ad <örnek.ad@bir.adres.org>",
        "license": "BSD License",
        "revision": 1,
        "kate-version": "5.1",
        "required-syntax-style": "javascript",
        "indent-languages": ["javascript"],
        "priority": 0,
    }; // kate-script-header, dosyanın başında yorumsuz olmalıdır

Burada her giriş ayrıntılı olarak açıklanır:

- `name` [zorunlu]: Bu, Araçlar → Girintileme menüsünde ve yapılandırma iletişim kutusunda görünen girintileyici adıdır.

- `author` [isteğe bağlı]: Yazarın adı ve iletişim bilgisi.

- `license` [isteğe bağlı]: Lisansın kısa adı; örneğin, BSD License veya LGPLv3.

- `revision` [zorunlu]: Betiğin revizyonu. Komut dosyasında her değişiklik yapıldığında bu sayının artırılması gerekir.

- `kate-version` [zorunlu]: Zorunlu en düşük KatePart sürümü.

- `required-syntax-style` [isteğe bağlı]: Sözdizim vurgulama dosyalarında belirtilen `biçem` ile eşleşen gerekli sözdizim biçemi. Bu, belgedeki belirli vurgulama bilgilerine dayanan girintileyiciler için önemlidir. Gerekli bir sözdizim biçemi belirtilirse girintileyici yalnızca uygun vurgulayıcı etkin olduğunda kullanılabilir. Bu, girintileyicinin beklenen vurgulama şeması olmadan kullanılmasından kaynaklanan “tanımsız davranışı” önler. Örneğin, Ruby girintileyicisi bunu, `ruby.js` ve `ruby.xml` dosyalarında kullanır.

- `indent-languages` [isteğe bağlı]: Girintileyicinin düzgünce girintileyebildiği sözdizim biçemlerinin JSON dizilişi; örneğin: `["c++", "java"]`.

- `priority` [isteğe bağlı]: Vurgulanan belirli bir dosya için birden fazla girintileyici uygunsa öncelik, öntanımlı girintileyici olarak hangi girintileyicinin seçileceğine karar verir.

#### Girintileyici Kaynak Kodu

Üstbilgiyi belirledikten sonra bu bölüm girintileme betiği oluşturma işleminin nasıl çalıştığını açıklamaktadır. Gövdenin temel iskeleti şöyle görünür:

    // zorunlu katepart js kitaplıkları; örneğin, Range require ("range.js"); kullanıyorsanız range.js

    triggerCharacters = "{}/:;";
    function indent(line, indentWidth, ch)
    {
        // triggerCharacters global değişkeninde belirtilen her bir yenisatır (ch == ’\n’) ve tüm karakterler için çağrılır. Araçlar → Girintilemeyi Biçimlendir, ch değişkeni boştur; demeli, ch == ’’.
        //
        // Ayrıca bakınız: Betik Yazımı API’si
        return -2;
    }

`indent()` işlevinin üç parametresi vardır:

- `line`: Girintilenmesi gereken satır

- `indentWidth`: Boşluk türünden girintileme genişliği

- `ch`: Ya bir yenisatır karakteri (`ch == ’\n’`) ya `triggerCharacters` içinde belirtilen tetikleyici karakter ya da kullanıcı Araçlar → Girintilemeyi Biçimlendir eylemini çağırdıysa boş.

`indent()` işlevinin döndürdüğü değer, satırın nasıl girintileneceğini belirtir. Dönüş değeri basit bir tamsayıysa aşağıdaki gibi değerlendirilir:

- return value `-2`: Bir şey yapma

- return value `-1`: Girintilemeyi tut (önceki boş olmayan satırları arar)

- return value `0`: >=0 sayıları, boşluk türünden girintileme derinliğini belirtir

Alternatif olarak, iki ögeli bir diziliş döndürülebilir:

- `return [ indent, align ];`

Bu durumda ilk öge, yukarıdaki gibi özel değerlerle aynı anlama gelen girintileme derinliğidir. Ancak ikinci öge, “hizalama” sütununu temsil eden mutlak bir değerdir. Bu değer girinti değerinden yüksekse, fark, ilk parametrenin girintisinden sonra eklenecek boşluk sayısını temsil eder. Aksi halde ikinci sayı dikkate alınmaz. Girintileme için sekmelerin ve boşlukların kullanılmasına genellikle “karma kip” adı verilir.

Aşağıdaki örneğe ele alın: Girintileme için sekmelerin kullanıldığını ve sekme genişliğinin 4 olduğunu varsayalım. Burada, <tab> bir sekmeyi ve '.' bir boşluğu temsil eder:

    1: <tab><tab>foobar("merhaba",
    2: <tab><tab>......."dünya");

2. satırı girintilerken, `indent()` işlevi [8, 15] değerini döndürür. Sonuç olarak, 8. sütuna girinti yapmak için iki sekme eklenir ve ikinci parametreyi birincinin altına hizalamak için 7 boşluk eklenir, böylece dosya farklı bir sekme genişliğinde görüntülenirse hizalı kalır.

Öntanımlı bir KDE kurulumu, KatePart uygulamasını birkaç girintileyici ile kurar. Karşılık gelen JavaScript kaynak kodu `$`XDG_DATA_DIRS`/katepart5/script/indentation` konumunda bulunabilir.

Windows®’ta bu dosyalar genelde `C:\\Users\\`user`` olarak genişleyen `%USERPROFILE%\AppData\Local\katepart5\script\indentation`. `%USERPROFILE%` konumundadır.

Bir girintileyici geliştirmek, değişikliklerin uygun şekilde davranıp davranmadığını görmek için betiklerin yeniden yüklenmesini gerektirir. Uygulamayı yeniden başlatmak yerine komut satırına geçin ve reload-scripts komutunu çağırın.

Eğer yararlı betikler geliştiriyorsanız lütfen onları KatePart projesine katkıda bulunmayın düşünün. Katkılarınızı GitLab sayfamıza gönderin.

### Komut Satırı Betikleri

### Not

Komut satırı betiklerine benzer bir işlevsellik ayrıca parçacıklar eklentisinde sunulmaktadır. Bu eklenti, özellikle küçük özelleştirilmiş betikler için daha iyi bir başlangıç noktası sağlayabilir.

Herkesin gereksinimlerini karşılamak güç olsa da, KatePart, yerleşik komut satırı ile tez metin manipülasyonunu sağlamak için küçük yardımcı araçlar sağlar. Örneğin, sort komutu bir betik olarak uygulanmıştır. Bu bölüm, KatePart uygulamasını olabildiğince genişletmek için nasıl `*.js` dosyaları oluşturulacağını açıklar.

Komut satırı betikleri, girintileme betikleriyle aynı klasörde bulunurlar. İlk adım olarak, yerel ana klasör olan `$`XDG_DATA_HOME`/katepart5/script/commands` klasöründe yeni bir `*.js` dosyası oluşturun; örneğin, `izlencelerim.js`. Burada, `XDG_DATA_HOME` çevre değişkeni genellikle `~/.local` veya `~/.local/share` olarak genişletilir.

Windows®’ta bu dosyalar genelde `C:\\Users\\`user`` olarak genişleyen `%USERPROFILE%\AppData\Local\katepart5\script\commands`. `%USERPROFILE%` konumundadır.

#### Komut Satırı Betik Üstbilgisi

`javascript.js` dosyasının üstbilgisi, aşağıdaki gibi belgenin başına JSON olarak gömülür:

    var katescript = {
        "author": "Örnek Ad <örnek.ad@bir.adres.org>",
        "license": "LGPLv2+",
        "revision": 1,
        "kate-version": "5.1",
        "functions": ["sort", "moveLinesDown"],
        "actions": [
            {   "function": "sort",
                "name": "Seçili Metni Sırala",
                "category": "Editing",
                "interactive": "false"
            },
            {   "function": "moveLinesDown",
                "name": "Satırları Aşağı Taşı",
                "category": "Editing",
                "shortcut": "Ctrl+Shift+Down",
                "interactive": "false"
            }
        ]
    }; // kate-script-header, dosyanın başında yorumsuz olmalıdır

Burada her giriş ayrıntılı olarak açıklanır:

- `author` [isteğe bağlı]: Yazarın adı ve iletişim bilgisi.

- `license` [isteğe bağlı]: Lisansın kısa adı; örneğin, BSD License veya LGPLv3.

- `revision` [zorunlu]: Betiğin revizyonu. Komut dosyasında her değişiklik yapıldığında bu sayının artırılması gerekir.

- `kate-version` [zorunlu]: Zorunlu en düşük KatePart sürümü.

- `functions` [zorunlu]: Betikteki komutların JSON dizilişi.

- `actions` [isteğe bağlı]: Uygulama menüsünde görünen eylemleri tanımlayan JSON nesnelerinin JSON dizilişi. Ayrıntılı bilgi, Kısayolları Bağıntılamak bölümünde sağlanmıştır.

`functions` değeri bir JSON dizilişi olduğundan, tek bir betik istediğiniz kadar komut satırı komutu içerebilir. Her bir işlev, KatePart uygulamasının yerleşik komut satırından kullanılabilir.

#### Betik Kaynak Kodu

Üstbilgide belirtilen tüm işlevlerin betikte uygulanması gerekir. Örneğin, yukarıdaki örnekteki komut dosyasının sort ve moveLinesDown işlevlerini uygulaması gerekir. Tüm işlevler aşağıdaki sözdizime sahiptir:

    // zorunlu katepart js kitaplıkları; örneğin, Range require ("range.js"); kullanıyorsanız range.js

    function <name>(arg1, arg2, …)
    {
        // … uygulama, ayrıca bakınız: Betik Yazımı API’si
    }

Komut satırındaki argümanlar işleve `arg1`, `arg2`, vb. olarak geçirilirler. Her bir komut için belgelendirmek sağlamak istiyorsanız yalnızca '`help`' işlevini aşağıdaki gibi uygulayın:

    function help(cmd)
    {
        if (cmd == "sort") {
            return i18n("Seçili metni sıralayın.");
        } else if (cmd == "…") {
            // …
        }
    }

Komut satırında help sort işlevini yürütmek, sonrasında bu yardım işlevini verilen komuta ayarlı `cmd` ile çağırır; başka bir deyişle, `cmd == "sort"`. KatePart sonrasında döndürülen metni kullanıcıya belgelendirme olarak sunar. Dizileri başka dillere çevrilebilir yaptığınızdan emin olun.

Bir komut satırı betiği geliştirmek, değişikliklerin uygun şekilde davranıp davranmadığını görmek için betiklerin yeniden yüklenmesini gerektirir. Uygulamayı yeniden başlatmak yerine komut satırına geçin ve reload-scripts komutunu çağırın.

##### Kısayolları Bağıntılamak

Betiklerin uygulama menüsünden erişilebilir olmasını sağlamak ve kısayollar atamak için betiğin uygun bir betik başlığı sağlaması gerekir. Yukarıdaki örnekte, betik üstbilgisindeki aşağıdaki bölüm nedeniyle menüde hem `sort` hem de `moveLinesDown` işlevleri görünüyor:

    var katescript = {
        …
        "actions": [
            {   "function": "sort",
                "name": "Seçili Metni Sırala",
                "icon": "",
                "category": "Editing",
                "interactive": "false"
            },
            {   "function": "moveLinesDown",
                "name": "Satırları Aşağı Taşı",
                "icon": "",
                "category": "Editing",
                "shortcut": "Ctrl+Shift+Down",
                "interactive": "false"
            }
        ]
    };

Tek bir eylem için olan alanlar aşağıdaki gibidir:

- `function` [zorunlu]: Araçlar → Betikler menüsünde görünmesi gereken işlev.

- `name` [zorunlu]: Betikler menüsünde görünen metin.

- `icon` [isteğe bağlı]: Menüde metnin yanında görünen simge. Burada tüm KDE simgeleri adları kullanılabilir.

- `category` [isteğe bağlı]: Bir kategori belirtilirse betik bir alt menüde görünür.

- `shortcut` [isteğe bağlı]: Burada verilen kısayol, öntanımlı kısayoldur. Örnek: `Kontrol+Seçenek+T`. Daha fazla ayrıntı için Qt™ belgelendirmesine bakın.

- `interactive` [isteğe bağlı]: Betiğin komut satırında kullanıcı girdisi bekleyip beklemediği. Bunu, `true` olarak ayarlayın.

Eğer yararlı betikler geliştiriyorsanız lütfen onları KatePart projesine katkıda bulunmayın düşünün. Katkılarınızı GitLab sayfamıza gönderin.

### Betik Yazımı API’si

Burada sunulan betik yazımı API’si, tüm betikler için kullanılabilirdir; başka bir deyişle, girintileme betikleri ve komut satırı betikleri. `Cursor` ve `Range` sınıfları, `$`XDG_DATA_DIRS`/katepart5/libraries` içindeki kitaplık dosyaları tarafından sağlanırlar. `Document` veya `View` işlevlerinden bazılarını kullanması gereken bu API’yi betiğinizde kullanmak istiyorsanız şunu kullanarak gerekli kitaplığı içerin:

    // zorunlu katepart js kitaplıkları; örneğin, Range require ("range.js"); kullanıyorsanız range.js
    require ("range.js");

Standart betik yazımı API’sini kendi işlevleriniz ve prototiplerinizle genişletmek istiyorsanız yalnızca KDE’nin yerel yapılandırma klasörü olan `$`XDG_DATA_HOME`/katepart5/libraries` içinde yeni bir dosya oluşturun ve onu betiğinizde şunu kullanarak içerin:

    require ("benimbetiğiminadıburaya.js");

Windows®’ta bu dosyalar genelde `C:\\Users\\`user`` olarak genişleyen `%USERPROFILE%\AppData\Local\katepart5\libraries`. `%USERPROFILE%` konumundadır.

`Cursor` veya `Range` gibi var olan prototipleri genişletmek istiyorsanız tavsiye edilen yol global `*.js` dosyalarını değiştirmek değildir. Bunun yerine, JavaScript içindeki `Cursor` prototipini `cursor.js` betiğinizde `require` ile içerildikten sonra değiştirin.

#### İmleçler ve Erimler

KatePart bir metin düzenleyici olduğundan, tüm betik oluşturma API’si olabildiğince imleçlere ve erimlere dayanır. İmleç, belgedeki bir metin konumunu temsil eden basit bir `(satır, sütun)` demettir. Erim, metni başlangıç imleç konumundan bitiş imleç konumuna kadar yayar. API sonraki bölümlerde ayrıntılı olarak açıklanmaktadır.

##### İmleç Prototipi

    Cursor();

  Yapıcı. `(0, 0)` konumunda bir imleç döndürür.

  Örnek: `var cursor = new Cursor();`

    Cursor(int satır, int sütun);

  Yapıcı. Belirli bir konumda (satır, sütun) bir imleç döndürür.

  Örnek: `var cursor = new Cursor(3, 42);`

    Cursor(Cursor diğer);

  Yapıcıyı kopyala. `diğer` imlecinin bir kopyasını döndürür.

  Örnek: `var copy = new Cursor(other);`

    Cursor Cursor.clone();

  İmlecin bir klonunu döndürür.

  Örnek: `var clone = cursor.clone();`

    Cursor.setPosition(int satır, int sütun);

  İmleç konumunu `satır` ve `sütun` olarak ayarlar.

  Eklendiği sürüm: KDE 4.11

    bool Cursor.isValid();

  İmlecin geçerli olup olmadığını denetler. Satır ve/veya sütun `-1` olarak ayarlanırsa imleç geçersizdir.

  Örnek: `var valid = cursor.isValid();`

    Cursor Cursor.invalid();

  `(-1, -1)` konumunda yeni geçersiz bir imleç döndürür.

  Örnek: `var invalidCursor = cursor.invalid();`

    int Cursor.compareTo(Cursor diğer);

  Bu imleci `diğer` imleç ile karşılaştırır. İmleç,

  - `diğer` imlecinden önce konumlandırılmışsa `-1`,

  - her iki imleç de eşitse `0` ve

  - bu imleç `other` imlecinden önce geliyorsa `+1` döndürür.

    bool Cursor.equals(Cursor diğer);

  Bu imleç ve `diğer` imleç eşitse `true`, aksi takdirde `false` döndürür.

    String Cursor.toString();

  İmleci, “`Cursor(satır, sütun)`” biçiminde bir dizi olarak döndürür.

##### Erim Prototipi

    Range();

  Yapıcı. `new Range()` çağırmak, (0, 0)–(0, 0) konumunda bir erim döndürür.

    Range(Cursor başlangıç, Cursor bitiş);

  Yapıcı. `new Range(`başlangıç`, `bitiş`)` çağırmak, (`başlangıç`, `bitiş`) erimini döndürür.

    Range(int başlangıçSatırı, int başlangıçSütunu, int bitişSatırı, int bitişSütunu);

  Yapıcı. `new Range(`başlangıçSatırı`, `başlangıçSütunu`, `bitişSatırı`, `bitişSütunu`)` çağırmak, (`başlangıçSatırı`, `başlangıçSütunu`) değerlerini (`bitişSatırı`, `bitişSütunu`) olarak döndürür.

    Range(Range diğer);

  Yapıcıyı kopyala. `diğer` eriminin bir kopyasını döndürür.

    Range Range.clone();

  Erimin bir klonunu döndürür.

  Örnek: `var clone = range.clone();`

    bool Range.isEmpty();

  Başlangıç ve bitiş imleçleri eşitse `true` döndürür.

  Örnek: `var empty = range.isEmpty();`

  Eklendiği sürüm: KDE 4.11

    bool Range.isValid();

  Hem başlangıç hem bitiş imleçleri eşitse `true`, aksi takdirde `false` döndürür.

  Örnek: `var valid = range.isValid();`

    Range Range.invalid();

  (-1, -1) ile (-1, -1) arasındaki erimi döndürür.

    bool Range.contains(Cursor imleç);

  Eğer bu erim imleç konumunu içeriyorsa `true`, aksi takdirde `false` döndürür.

    bool Range.contains(Range diğer);

  Eğer bu erim `diğer` erimini içeriyorsa `true`, aksi takdirde `false` döndürür.

    bool Range.containsColumn(int sütun);

  `sütun`, yarı açık `[başlangıç.sütun, bitiş.sütun)` aralığındaysa `true`, aksi takdirde `false` döndürür.

    bool Range.containsLine(int satır);

  `satır`, yarı açık `[başlangıç.satır, bitiş.satır)` aralığındaysa `true`, aksi takdirde `false` döndürür.

    bool Range.overlaps(Range diğer);

  Bu erim ve `diğer` erimi ortak bir bölge paylaşıyorlarsa `true`, aksi takdirde `false` döndürür.

    bool Range.overlapsLine(int satır);

  `satır`, `[başlangıç.satır, bitiş.satır)` aralığındaysa `true`, aksi takdirde `false` döndürür.

    bool Range.overlapsColumn(int sütun);

  `sütun`, `[başlangıç.sütun, bitiş.sütun)` aralığındaysa `true`, aksi takdirde `false` döndürür.

    bool Range.onSingleLine();

  Erim aynı satırda başlıyor ve bitiyorsa `true` döndürür; başka bir deyişle, `Range.start.line == Range.end.line` ise.

  Eklendiği sürüm: KDE 4.9

    bool Range.equals(Range diğer);

  Eğer bu erim ve `diğer` erimi eşitse `true`, aksi takdirde `false` döndürür.

    String Range.toString();

  Erimi, “`Cursor(satır, sütun)`” biçiminde bir dizi olarak döndürür.

#### Global İşlevler

Bu bölüm, tüm global işlevleri listeler.

##### Dosyaları Okumak ve İçermek

    String read(String dosya);

  Verilen `dosya`’yı `katepart5/script/files` dizinine göreceli olarak arar ve içeriğini bir dizi olarak döndürür.

    void require(String dosya);

  Verilen `dosya`’yı `katepart5/script/libraries` dizinine göreceli olarak arar ve onu değerlendirir. `require`, aynı `dosya`’nın birden çok içerilmesine karşı korumalıdır.

  Eklendiği sürüm: KDE 4.10

##### Hata Ayıklama

    void debug(String metin);

  `metin`’i, uygulamayı başlatan konsolda `stdout`’a yazdırır.

##### Çeviri

Tam yerelleştirmeyi desteklemek için betiklerdeki dizileri çevirmek üzere birkaç işlev bulunur; bunlar, `i18n`, `i18nc`, `i18np` ve `i18ncp` olarak geçer. Bunlar kesin olarak KDE’nin çeviri işlevleri gibi davranırlar.

Çeviri işlevleri, sarılmış dizileri KDE’nin çeviri sistemi aracılığıyla uygulamada kullanılan dile çevirir. Resmi KatePart kaynaklarında geliştirilen komut dosyalarındaki dizeler otomatik olarak çıkarılır ve çevrilebilir. Başka bir deyişle, bir KatePart geliştiricisi olarak ileti çıkarma ve çeviri ile uğraşmanıza gerek yoktur. Bununla birlikte, çevirinin yalnızca KDE altyapısı içinde çalıştığını, yani KDE dışında geliştirilen 3. taraf betiklerdeki yeni dizilerin çevrilmediğini de belirtmek gerekir. Bu nedenle, doğru çevirinin olabilmesi için lütfen betiklerinizle Kate’e katkıda bulunmayı düşünün.

    void i18n(String metin, arg1, …);

  `metin`’i, uygulama tarafından kullanılan dile çevirir. `arg1`, …, argümanları isteğe bağlıdır ve `%1`, `%2`, gibi yer tutucuları değiştirmede kullanılırlar.

    void i18nc(String bağlam, String metin, arg1, …);

  `metin`’i, uygulama tarafından kullanılan dile çevirir. Ek olarak, `bağlam` metni çevirmenlere görünür, böylece daha iyi bir çeviri sağlayabilirler. `arg1`, …, argümanları isteğe bağlıdır ve `%1`, `%2`, gibi yer tutucuları değiştirmede kullanılırlar.

    void i18np(String tekil, String çoğul, int sayı, arg1, …);

  `tekil` veya `çoğul` varyantları, verilen `sayı`’ya bağlı olarak uygulama tarafından kullanılan dile çevirir. `arg1`, …, argümanları isteğe bağlıdır ve `%1`, `%2`, gibi yer tutucuları değiştirmede kullanılırlar.

    void i18ncp(String bağlam, String tekil, String çoğul, int sayı, arg1, …);

  `tekil` veya `çoğul` varyantları, verilen `sayı`’ya bağlı olarak uygulama tarafından kullanılan dile çevirir. Ek olarak, `bağlam` metni çevirmenlere görünür, böylece daha iyi bir çeviri sağlayabilirler. `arg1`, …, argümanları isteğe bağlıdır ve `%1`, `%2`, gibi yer tutucuları değiştirmede kullanılırlar.

#### Görünüm API’si

Ne zaman bir betik yürütülürse geçerli etkin düzenleyici görünümünü temsil eden bir “`view`” global değişkeni vardır. Tüm kullanılabilir View işlevleri aşağıda listelenmiştir.

    void view.copy()

  `[ ] Metin seçilmeden çağrılırsa geçerli satırı kes/kopyala` ayarlıysa bir seçim varken seçimi kopyala, aksi takdirde geçerli satırı kopyala.

  Eklendiği sürüm: KDE Frameworks 5.79

    void view.cut()

  `[ ] Metin seçilmeden çağrılırsa geçerli satırı kes/kopyala` ayarlıysa bir seçim varken seçimi kes, aksi takdirde geçerli satırı kes.

  Eklendiği sürüm: KDE Frameworks 5.79

    void view.paste()

  Pano içeriğini yapıştır.

  Eklendiği sürüm: KDE Frameworks 5.79

    Cursor view.cursorPosition()

  Görünümdeki geçerli imleç konumunu döndürür.

    void view.setCursorPosition(int satır, int sütun);
    void view.setCursorPosition(Cursor imleç);

  Geçerli imleç konumunu ya (satır, sütun) ya da verilen imlece ayarla.

    Cursor view.virtualCursorPosition();

  Geçerli sekme genişliğine bağlı olarak her sekmenin karşılık gelen boşluk miktarını saydığı sanal imleç konumunu döndürür.

    void view.setVirtualCursorPosition(int satır, int sütun);
    void view.setVirtualCursorPosition(Cursor imleç);

  Geçerli sanal imleç konumunu (satır, sütun) veya verilen imleç olarak ayarlayın.

    String view.selectedText();

  Seçilen metni döndürür. Hiçbir metin seçilmezse döndürülen dizi boştur.

    bool view.hasSelection();

  Görünümde seçili metin varsa `true` değerini, aksi takdirde `false` değerini döndürür.

    Range view.selection();

  Seçili metin erimini döndürür. Seçili metin yoksa döndürülen erim geçersizdir.

    void view.setSelection(Range erim);

  Seçili metni verilen erime ayarla.

    void view.removeSelectedText();

  Seçili metni kaldır. Görünümde seçili metin yoksa bu hiçbir şey yapmaz.

    void view.selectAll();

  Belgedeki tüm metni seçer.

    void view.clearSelection();

  Metni kaldırmadan metin seçimini temizler.

    void view.setBlockSelection(bool on);

  Blok seçim kipini açar/kapatır.

    bool view.blockSelection();

  Blok seçim kipi açıksa `true`, aksi takdirde `false` döndürür.

    void view.align(Range erim);

  Geçerli girintileme ayarlarına göre `erim`’i düzgünce yeniden girintile.

    void view.alignOn(Range erim, String dizgi = "");

  Düzenli ifade `dizgi` verdiği sütundaki `erim`’deki satırları hizalar. Boş bir `dizgi` ile öntanımlı olarak ilk boş olmayan karaktere hizalanır. Dizginin bir yakalaması varsa yakalanan eşleşmeye girintili olacaktır.

  Örnekler:

  `view.alignOn(document.documentRange(), '-');`, tümünü aynı sütunda hizalamak için her satırın ilk `-` satırından önce boşluk ekler.

  `view.alignOn(document.documentRange(), ':\\s+(.)');`, tümünü aynı sütunda hizalamak için iki nokta üst üsteden sonra oluşan ilk boş olmayan karakterden önce boşluk ekler.

    object view.executeCommand(String komut,
                               String argümanlar,
                               Range erim);

  `komut` komut satırı komutunu isteğe bağlı `argümanlar` ve `erim` ile yürütür. Döndürülen `nesne`’nin `komut` yürütmesinin başarılı olup olmadığını söyleyen bir `object.ok` Boole değeri vardır. Bir hata durumunda, `object.status` bir hata iletisi içerir.

  Eklendiği sürüm: KDE Frameworks 5.50

    Range view.searchText(Range erim,
                          String dizgi,
                          bool backwards = false);

  `erim`’de `dizgi`’nin ilk oluşunu ara ve eşleşen erimi döndür. İsteğe bağlı Boole değeri `backwards` `true` olarak ayarlanırsa arama geriye doğru yapılır.

  `dizgi`, `erim`’de bulunamazsa döndürülen erim geçersizdir (bkz. Range.isValid()).

  Eklendiği sürüm: KDE Frameworks 5.97

#### Belge API’si

Ne zaman bir betik yürütülürse geçerli etkin belgeyi temsil eden bir “`document`” global değişkeni vardır. Tüm kullanılabilir Document işlevlerinin bir listesini aşağıda bulabilirsiniz.

    String document.fileName();

  Kaydedilmemiş metin arabellekleri için belgenin dosya adını veya boş bir diziyi döndürür.

    String document.url();

  Belgenin tam URL’sini veya kaydedilmemiş metin arabellekleri için boş bir diziyi döndürür.

    String document.mimeType();

  Belgenin MIME türünü veya uygun MIME türü bulunamazsa `application/octet-stream` MIME türünü döndürür.

    String document.encoding();

  Dosyayı kaydetmek için kullanılan geçerli kodlamayı döndürür.

    String document.highlightingMode();

  Tüm belge için kullanılan global vurgulama kipini döndürür.

    String document.highlightingModeAt(Cursor konum);

  Belgedeki belirli konumda kullanılan vurgulama kipini döndürür.

    Array document.embeddedHighlightingModes();

  Bu belgeye gömülü bir dizi vurgulama modunu döndürür.

    bool document.isModified();

  Belgede kaydedilmemiş değişiklikler varsa `true`, aksi takdirde `false` döndürür.

    String document.text();

  Belgenin tüm içeriğini tek bir metin dizisinde döndürür. Yeni satırlar, “`\n`” yenisatır karakteriyle işaretlenir.

    String document.text(int satırdan, int sütundan, int satıra, int sütuna);
    String document.text(Cursor şuradan, Cursor şuraya);
    String document.text(Range erim);

  Verilen erimdeki metni döndürür. Kaynak kodunun daha iyi okunabilmesi için imleç ve aralık tabanlı sürümün kullanılması önerilir.

    String document.line(int satır);

  Verilen metin satırını dizi olarak döndürür. İstenen satır erim dışıysa dizi boştur.

    String document.wordAt(int satır, int sütun);
    String document.wordAt(Cursor imleç);

  Verilen imleç konumundaki sözcüğü döndürür.

    Range document.wordRangeAt(int satır, int sütun);
    Range document.wordRangeAt(Cursor imleç);

  Verilen imleç konumundaki sözcüğün erimini döndürür. Metin konumu bir satırın sonundan sonraysa döndürülen erim geçersizdir (bkz. Range.isValid()). Verilen imleçte sözcük yoksa boş bir erim döndürülür.

  Eklendiği sürüm: KDE 4.9

    String document.charAt(int satır, int sütun);
    String document.charAt(Cursor imleç);

  Verilen imleç konumundaki karakteri döndürür.

    String document.firstChar(int satır);

  Verilen `satırdaki` boşluk olmayan ilk karakteri döndürür. İlk karakter 0 sütunundadır. Satır boşsa veya yalnızca boşluk karakterleri içeriyorsa döndürülen dizi boştur.

    String document.lastChar(int satır);

  Verilen `satırdaki` boşluk olmayan son karakteri döndürür. Satır boşsa veya yalnızca boşluk karakterleri içeriyorsa döndürülen dizi boştur.

    bool document.isSpace(int satır, int sütun);
    bool document.isSpace(Cursor imleç);

  Verilen imleç konumundaki karakter boşluksa `true`, aksi takdirde `false` döndürür.

    bool document.matchesAt(int satır, int sütun, String metin);
    bool document.matchesAt(Cursor imleç, String metin);

  Verilen `metin` ilgili imleç konumunda eşleşiyorsa `true`, aksi takdirde `false` döndürür.

    bool document.startsWith(int satır, String metin, bool skipWhiteSpaces);

  Satır `metin` ile başlıyorsa `true`, aksi takdirde `false` döndürür. `skipWhiteSpaces` argümanı, baştaki boşlukların yok sayılıp sayılmayacağını denetler.

    bool document.endsWith(int satır, String metin, bool skipWhiteSpaces);

  Satır `metin` ile bitiyorsa `true`, aksi takdirde `false` döndürür. `skipWhiteSpaces` argümanı, sondaki boşlukların yok sayılıp sayılmayacağını denetler.

    bool document.setText(String metin);

  Tüm belge metnini ayarlar.

    bool document.clear();

  Belgedeki tüm metni kaldırır.

    bool document.truncate(int satır, int sütun);
    bool document.truncate(Cursor imleç);

  Verilen satırı verilen sütun veya imleç konumunda keser. Başarı durumunda `true`, verilen satır belge aralığının parçası değilse `false` döndürür.

    bool document.insertText(int satır, int sütun, String metin);
    bool document.insertText(Cursor imleç, String metin);

  Verilen imleç konumunda `metin` metnini ekler. Başarı durumunda `true`, belge saltokunur kipteyse `false` döndürür.

    bool document.removeText(int satırdan, int sütundan, int satıra, int sütuna);
    bool document.removeText(Cursor şuradan, Cursor şuraya);
    bool document.removeText(Range erim);

  Verilen erimdeki metni kaldırır. Başarı durumunda `true`, belge saltokunur kipteyse `false` döndürür.

    bool document.insertLine(int satır, String metin);

  Verilen satırda metin ekler. Başarı durumunda `true`, belge saltokunur kipteyse veya satır belge eriminde değilse `false` döndürür.

    bool document.removeLine(int satır);

  Verilen metin satırını kaldırır. Başarı durumunda `true`, belge saltokunur kipteyse veya satır belge eriminde değilse `false` döndürür.

    bool document.wrapLine(int satır, int sütun);
    bool document.wrapLine(Cursor imleç);

  Verilen imleç konumunda satırı kaydırır. Başarı durumunda `true`, aksi takdirde; örneğin, satır < 0 ise `false` döndürür.

  Eklendiği sürüm: KDE 4.9

    void document.joinLines(int başlangıçSatırı, int bitişSatırı);

  `başlangıçSatırı` konumundan `bitişSatırı` konumuna kadar olan satırları birbirine katar. İki birbirini izleyen metin satırı her zaman bir boşluk ile ayrılır.

    int document.lines();

  Belgedeki satır sayısını döndürür.

    bool document.isLineModified(int satır);

  `satır` şu anda kaydedilmemiş veri içeriyorsa `true` döndürür.

  Eklendiği sürüm: KDE 5.0

    bool document.isLineSaved(int satır);

  `line` değiştirildi ve belge kaydedildiyse `true` döndürür. Böylece, satırda şu anda kaydedilmeyen bir veri kalmamış olur.

  Eklendiği sürüm: KDE 5.0

    bool document.isLineTouched(int satır);

  `line` içinde şu anda kaydedilmemiş veri varsa veya daha önce değiştirildiyse `true` döndürür.

  Eklendiği sürüm: KDE 5.0

    bool document.findTouchedLine(int başlangıçSatırı, bool aşağı);

  `line` konumundan başlayan sonraki dokunulmuş satırı arar. Arama, `down` içinde belirtilen yöne göre aşağı veya yukarı doğru yapılır.

  Eklendiği sürüm: KDE 5.0

    int document.length();

  Belgedeki karakter sayısını döndürür.

    int document.lineLength(int satır);

  `satır`’ın uzunluğunu döndürür.

    void document.editBegin();

  Geri Al/Yinele gruplaması için bir düzenleme grubu başlatır. Hem `editEnd()` hem de `editBegin()` işlevlerini aynı sayıda çağırdığınızdan emin olun. `editBegin()` işlevini çağırmak içsel olarak bir başvuru sayacı kullanır; demeli, bu çağrı iç içe geçirilebilir.

    void document.editEnd();

  Bir düzenleme grubunu sonlandırır. `editEnd()` işlevinin son çağrısı (başka bir deyişle `editBegin()` işlevinin ilk çağrısı için olan) düzenleme adımını bitirir.

    int document.firstColumn(int satır);

  Verilen `satır`’daki ilk boşluk olmayan sütunu döndürür. Satırda yalnızca boşluklar varsa `-1` döndürülür.

    int document.lastColumn(int satır);

  Verilen `satır`’daki son boşluk olmayan sütunu döndürür. Satırda yalnızca boşluklar varsa `-1` döndürülür.

    int document.prevNonSpaceColumn(int satır, int sütun);
    int document.prevNonSpaceColumn(Cursor imleç);

  Verilen imleç konumundan başlayıp geriye doğru arama yaparak boşluk olmayan karakter içeren sütunu döndürür.

    int document.nextNonSpaceColumn(int satır, int sütun);
    int document.nextNonSpaceColumn(Cursor imleç);

  Verilen imleç konumundan başlayıp ileriye doğru arama yaparak boşluk olmayan karakter içeren sütunu döndürür.

    int document.prevNonEmptyLine(int satır);

  Verilen imleç konumundan başlayıp geriye doğru arama yaparak sonraki boş olmayan satırı döndürür.

    int document.nextNonEmptyLine(int satır);

  Verilen imleç konumundan başlayıp ileriye doğru arama yaparak sonraki boş olmayan satırı döndürür.

    bool document.isInWord(String karakter, int öznitelik);

  Verilen `öznitelik`’i içeren `karakter` bir sözcüğün parçası olabiliyorsa `true`, aksi takdirde `false` döndürür.

    bool document.canBreakAt(String karakter, int öznitelik);

  Verilen `öznitelik`’i içeren `karakter` bir satırı kaydırmak için uygunsa `true`, aksi takdirde `false` döndürür.

    bool document.canComment(int başlangıçÖzniteliği, int bitişÖzniteliği);

  Verilen özniteliklerle başlayan ve biten bir erim, yorum olarak imlenebiliyorsa `true`, aksi takdirde `false` döndürür.

    String document.commentMarker(int öznitelik);

  Verilen bir `öznitelik` için tek satırlık yorumlar için olan yorum imleyicisini döndürür.

    String document.commentStart(int öznitelik);

  Verilen bir `öznitelik` için çok satırlık yorum başlangıçı için olan yorum imleyicisini döndürür.

    String document.commentEnd(int öznitelik);

  Verilen bir `öznitelik` için çok satırlık yorum bitişi için olan yorum imleyicisini döndürür.

    Range document.documentRange();

  Tüm belgeyi kapsayan bir erim döndürür.

    Cursor documentEnd();

  Belgedeki son satırın son sütununda konumlanan imleci döndürür.

    bool isValidTextPosition(int satır, int sütun);
    bool isValidTextPosition(Cursor imleç);

  Verilen imleç konumu geçerli bir metin konumundaysa `true` değerini döndürür. Bir metin konumu yalnızca geçerli bir satırın başında, ortasında veya sonunda bulunuyorsa geçerlidir. Ayrıca bir metin konumu, bir Unicode vekilinde bulunuyorsa geçersizdir.

  Eklendiği sürüm: KDE 5.0

    int document.attribute(int satır, int sütun);
    int document.attribute(Cursor imleç);

  Verilen imleç konumundaki özniteliği döndürür.

    bool document.isAttribute(int satır, int sütun, int öznitelik);
    bool document.isAttribute(Cursor imleç, int öznitelik);

  Verilen imleç konumundaki öznitelik `attribute` ile eşitse `true`, aksi takdirde `false` döndürür.

    String document.attributeName(int satır, int sütun);
    String document.attributeName(Cursor imleç);

  Öznitelik adını insanlar tarafından okunabilir metin olarak döndürür. Bu, sözdizim vurgulama dosyalarındaki `itemData` adına eşittir.

    bool document.isAttributeName(int satır, int sütun, String ad);
    bool document.isAttributeName(Cursor imleç, String ad);

  Belirli bir imleç konumundaki öznitelik adı verilen `ad` ile eşleşiyorsa `true`, aksi takdirde `false` döndürür.

    String document.variable(String anahtar);

  İstenen belge değişkeni `anahtar`’ın değerini döndürür. Belge değişkeni yoksa dönüş değeri boş bir dizidir.

    void document.setVariable(String anahtar, String değer);

  İstenen belge değişkeni `anahtar`’ın değerini ayarla.

  Ayrıca bakınız: Kate belge değişkenleri

  Eklendiği sürüm: KDE 4.8

    int document.firstVirtualColumn(int satır);

  Verilen satırdaki boşluk olmayan ilk karakterin sanal sütununu veya satır boşsa veya yalnızca boşluk karakterleri içeriyorsa `-1` döndürür.

    int document.lastVirtualColumn(int satır);

  Verilen satırdaki boşluk olmayan son karakterin sanal sütununu veya satır boşsa veya yalnızca boşluk karakterleri içeriyorsa `-1` döndürür.

    int document.toVirtualColumn(int satır, int sütun);
    int document.toVirtualColumn(Cursor imleç);
    Cursor document.toVirtualCursor(Cursor imleç);

  Verilen “gerçek” imleç konumunu, bir int veya Cursor nesnesi döndürerek sanal bir imleç konumuna dönüştürür.

    int document.fromVirtualColumn(int satır, int sanalSütun);
    int document.fromVirtualColumn(Cursor sanalİmleç);
    Cursor document.fromVirtualCursor(Cursor sanalİmleç);

  Verilen sanal imleç konumunu, bir int veya Cursor nesnesi döndürerek “gerçek” imleç konumuna dönüştürür.

    Cursor document.anchor(int satır, int sütun, Char karakter);
    Cursor document.anchor(Cursor imleç, Char karakter);

  Verilen imleçten başlayarak verilen karakteri geriye doğru arar. Örnek olarak, eğer “(” karakter olarak iletilirse bu işlev “(” açılışının konumunu döndürecektir. Bu başvuru sayımı, yani diğer “(…)” yok sayılır.

    Cursor document.rfind(int satır, int sütun, String metin, int öznitelik = -1);
    Cursor document.rfind(Cursor imleç, String metin, int öznitelik = -1);

  Verilen metni uygun `öznitelik` ile geriye doğru arayarak bulun. Argüman `özniteliği`, `-1` olarak ayarlanmışsa yok sayılır. Metin bulunamadığında döndürülen imleç geçersizdir.

    int document.defStyleNum(int satır, int sütun);
    int document.defStyleNum(Cursor imleç);

  Verilen imleç konumunda kullanılan öntanımlı biçemi döndürür.

    bool document.isCode(int satır, int sütun);
    bool document.isCode(Cursor imleç);

  Verilen imleç konumundaki öznitelik aşağıdaki biçemlerin tümüne eşit değilse `true` değerini döndürür: `dsComment`, `dsString`, `dsRegionMarker`, `dsChar`, `dsOthers`.

    bool document.isComment(int satır, int sütun);
    bool document.isComment(Cursor imleç);

  İmleç konumundaki karakterin özniteliği `dsComment` ise `true`, aksi takdirde `false` döndürür.

    bool document.isString(int satır, int sütun);
    bool document.isString(Cursor imleç);

  İmleç konumundaki karakterin özniteliği `dsString` ise `true`, aksi takdirde `false` döndürür.

    bool document.isRegionMarker(int satır, int sütun);
    bool document.isRegionMarker(Cursor imleç);

  İmleç konumundaki karakterin özniteliği `dsRegionMarker` ise `true`, aksi takdirde `false` döndürür.

    bool document.isChar(int satır, int sütun);
    bool document.isChar(Cursor imleç);

  İmleç konumundaki karakterin özniteliği `dsChar` ise `true`, aksi takdirde `false` döndürür.

    bool document.isOthers(int satır, int sütun);
    bool document.isOthers(Cursor imleç);

  İmleç konumundaki karakterin özniteliği `dsOthers` ise `true`, aksi takdirde `false` döndürür.

    void document.indent(Range erim, int değişiklik);

  `erim`’deki tüm satırları `değişiklik` sekme kadar veya `değişiklik` kez girintiler. `tabSize` boşlukları kullanıcı tercihlerine bağlıdır. `değişiklik` parametresi negatif olabilir.

#### Düzenleyici API’si

Belge ve görünüm API’sine ek olarak, genel düzenleyici betiği oluşturma işlevlerine yönelik işlevler sağlayan bir genel düzenleyici API’si vardır.

    String editor.clipboardText();

  Şu anda global panoda bulunan metni döndürür.

  Eklendiği sürüm: KDE Frameworks 5.50

    String editor.clipboardHistory();

  Düzenleyici, en fazla 10 pano girdisini içeren bir pano geçmişini tutar. Bu işlev, şu anda pano geçmişinde bulunan tüm girdileri döndürür.

  Eklendiği sürüm: KDE Frameworks 5.50

    void editor.setClipboardText(String metin);

  Panonun içeriğini `metin` olarak ayarlar. `metin`, pano geçmişine eklenir.

  Eklendiği sürüm: KDE Frameworks 5.50

Bölüm 7. KatePart Yapılandırması
KatePart Yapılandırması

# Bölüm 7. KatePart Yapılandırması

Menüden Ayarlar → `Uygulama` Uygulamasını Yapılandır… seçildiğinde Yapılandır iletişim kutusu açılır. Bu iletişim kutusu bir dizi farklı ayarı değiştirmek için kullanılabilir. Değiştirilebilecek ayarlar, kullanıcının iletişim kutusunun sol tarafındaki dikey listeden hangi kategoriyi seçtiğine göre değişir. Kullanıcı, kutunun alt kısmındaki üç düğme aracılığıyla işlemi denetleyebilir.

Yardım sistemini çağırabilir, Tamam düğmesine basarak geçerli ayarları kabul edip iletişim kutusunu kapatabilir veya işlemi İptal edebilirsiniz. Görünüş, Yazıtipleri ve Renkler, Düzenleme, Aç/Kaydet ve Uzantılar kategorileri aşağıda açıklanmıştır.

## Düzenleyici Bileşeni Yapılandırması

Bu grup, KatePart uygulamasının düzenleyici bileşeni ile ilgili tüm sayfaları içerir. Buradaki ayarların çoğu öntanımlılardır; bunlar, bir dosya türü tanımlayarak, Belge Değişkenleri ile veya düzenleme sırasında belgeye özel olarak geçersiz kılınabilirler.

### Görünüş

#### Genel

Düzenleyici yazıtipi

  Burada düzenleyici metninin yazıtipini seçebilirsiniz. Sisteminizde bulunan herhangi bir yazıtipi arasından seçim yapabilir ve öntanımlı bir boyut belirleyebilirsiniz. İletişim kutusunun altında örnek bir metin görüntülenir, böylece seçimlerinizin etkisini görebilirsiniz.

  Yazıtipi seçimi üzerine daha fazla bilgi almak için KDE Temelleri belgelendirmesinin Yazıtipleri Seçmek bölümüne bakın.

Boşluk göstergelerini göster
  Asla

    Düzenleyici hiçbir zaman boşluk varlığını belirtmek için noktaları görüntülemez.

  Bir satırın sonunda

    Düzenleyici, satır sonlarında fazladan boşluk bulunduğunu belirtmek için noktalar görüntüleyecektir.

  Her zaman

    Düzenleyici, boşlukların varlığını belirtmek için her zaman noktalar görüntüleyecektir.

Boşluk göstergesi boyutu

  Görünür gösterge işaretçisinin boyutunu değiştirmek için sürgüyü kullanın.

Sekme göstergelerini göster

  Düzenleyici işaretlendiğinde, metinde bir sekmenin varlığını belirtmek için bir » sembolü görüntüleyecektir.

Ayraç eşleştirme

  Seçili ayraçlar arasındaki erimi vurgula

    Bu etkinleştirilirse seçilen eşleşen ayraçlar arasındaki erim vurgulanacaktır.

  Eşleşen açık ayraç önizlemesini göster

    Etkinleştirildiğinde, düzenleyici eşleşen açık ayracın ipucunu gösterecektir.

  İmleç çift halinde başka bir ayraca hareket ettiğinde eşleşen ayraç yanıp söner

    Etkinleştirilmişse ayraçlara gitmek ({, [, ], },( veya )), eşleşen ayracı tez yanıp söndürür.

Girintileme satırlarını göster

  Bu işaretlenirse düzenleyici, girintili çizgileri tanımlamaya yardımcı olmak için dikey çizgiler görüntüleyecektir.

Sayımlar

  Sözcük sayısını göster

    Belgedeki ve durum çubuğundaki geçerli seçimdeki sözcük ve karakter sayısını görüntüler. Bu seçenek aynı zamanda durum çubuğu bağlam menüsünde de kullanılabilir.

  Satır sayısını göster

    Durum çubuğunda belgedeki toplam satır sayısını görüntüler. Bu seçenek aynı zamanda durum çubuğu bağlam menüsünde de kullanılabilir.

İlk satırı katla

  Etkinleştirilirse ve olanaklıysa ilk satır katlanır. Dosya telif hakkı gibi bir yorumla başlıyorsa bu kullanışlıdır.

Devingen sözcük kaydırma

  Bu seçenek işaretlenirse metin satırları ekrandaki görünüm sınırında sarılır.

  Durağan sözcük kaydırma imleyicisinde devingen olarak kaydır

    İşaretlendiğinde, düzenleyici satırları durağan sözcük kaydırma konumunda devingen olarak kaydırır.

  Devingen kaydırma için sözcük sınırlarını dikkate alma

    İşaretlendiğinde düzenleyici, metin satırlarını kaydırırken sözcük sınırlarını dikkate almaz.

Devingen sözcük kaydırma göstergeleri

  Devingen sözcük kaydırma göstergelerinin ne zaman görüntüleneceğini seçin; Kapalı, Satır numaralarını izle veya Her zaman açık.

Kaydırılan satırları girintile

  Ek olarak bu, ekranın en büyük genişliğini yüzde olarak ayarlamanıza olanak tanır; bundan sonra devingen olarak kaydırılan satırlar artık dikey olarak hizalanmayacaktır. Örneğin, %​50’de, girinti düzeyleri ekran genişliğinin %​50’sinden daha derin olan satırlara sonraki sarılmış çizgilere dikey hizalama uygulanmayacaktır.

Satır yüksekliği çarpanı

  Bu değer, yazıtipinin öntanımlı satır yüksekliğiyle çarpılacaktır. 1,0 değeri, öntanımlı yüksekliğin kullanılacağı anlamına gelir.

#### Kenarlıklar

Kod bloku katlama
  Kod bloklarını daraltmak için okları göster

    Bu seçenek işaretlenirse kod katlamanın kullanılabilir olması durumunda geçerli görünüm, kod katlama imlerini görüntüleyecektir.

  Üzerine gelindiğinde katlanmış kodun önizlemesini göster

    İşaretlenirse katlanmış bir bölgenin üzerine gelindiğinde, katlanmış metnin bir önizlemesi açılır pencerede gösterilir.

Katlama okları görünürlüğü

  Katlama oklarının görünümünü Üzerine gelindiğinde göster ve Her zaman göster arasında değiştirin.

Sol taraf
  İmleri göster

    Bu işaretlenirse sol tarafta bir simge kenarlığı göreceksiniz. Simge kenarlığı; örneğin, yer imi işaretlerini gösterir.

  Satır numaralarını göster

    Bu işaretlenirse sol tarafta satır numaralarını göreceksiniz.

  Değiştirilen ve kaydedilmeyen satırları vurgula

    Bu işaretlenirse satır değişikliği işaretleri görünür olacaktır. Daha fazla bilgi için “Satır Değişiklik Göstergeleri” bölümüne bakın.

Sarma çubukları
  İmleri göster

    Bu seçenek işaretlenirse her yeni görünümde dikey sarma çubuğu üzerinde işaretler gösterilir. Örneğin, bu imler yer imlerini gösterir.

  Sarma çubuğu üzerine gelindiğinde önizleme göster

    Bu seçenek işaretlenirse ve sarma çubuğu üzerinde fare imleciyle gezinirseniz imleç konumu çevresinde geçerli belgenin birkaç satırının yer aldığı küçük bir metin önizlemesi görüntülenecektir. Bu, belgenin başka bir bölümüne tez geçiş yapmanızı sağlar.

Mini harita
  Mini haritayı göster

    Bu seçenek işaretlenirse her yeni görünüm dikey sarma çubuğunda belgenin bir mini haritasını gösterecektir.

    Sarma çubuğu mini haritası üzerine daha fazla bilgi için “Sarma Çubuğu Mini Haritası” bölümüne bakın.

  Küçük harita genişliği

    Sarma çubuğu mini haritasının piksel türünden tanımlanan genişliğini ayarlar.

  Sarma çubukları görünürlüğü

    Sarma çubuğunu yalnızca gerektiğinde açın, kapatın veya gösterin. Ekranda görüntülenen belgenin satır numarası aralığını görüntülemek için mavi dikdörtgenin üzerinde Sol Fare Düğmesi ile tıklayın. Belgede kendiliğinden kaydırma yapmak için Sol Fare Düğmesi’ni mavi dikdörtgenin dışında basılı tutun.

Yer imleri menüsünü sırala
  Oluşturulma tarihine göre

    Her yeni yer imi, belgede yerleştirildiği yerden bağımsız olarak alt tarafa eklenecektir.

  Satır numarasına göre

    Yer imleri, yerleştirildikleri satır numaralarına göre sıralanacaktır.

### Renk Temaları

İletişim kutusunun bu bölümü, sahip olduğunuz herhangi bir renk temasındaki tüm renkleri yapılandırmanıza ve yeni temalar oluşturmanıza, var olan temaları silmenize veya yalnızca Sistem renk şemasını izle’menize olanak tanır. Her şemada renkler ve normal ve vurgulanan metin biçemleri için ayarlar bulunur.

KatePart sizin için o anda etkin olan temayı önceden seçecektir, eğer farklı bir tema üzerinde çalışmak istiyorsanız Tema seç çoklu kutusundan bunu seçerek başlayın. Kopyala ve Sil düğmeleriyle yeni bir tema oluşturabilir (var olan temayı kopyalayarak) veya önceden olan temaları silebilirsiniz.

Bu, “Renk Temaları Grafik Arayüzü” bölümünde ayrıntılı açıklanmıştır.

### Düzenleme

#### Genel

Sözcük kaydırma

  Sözcük kaydırma, düzenleyicinin kendiliğinden yeni bir metin satırı başlatmasına ve imleci bu yeni satırın başına taşımasını (kaydırmasını) sağlayan bir özelliktir. KatePart, geçerli satır Sözcükleri şurada kaydır: seçeneğiyle belirtilen uzunluğa ulaştığında kendiliğinden yeni bir metin satırı başlatacaktır.

  Sözcükleri belirli bir sütunda kaydır

    Durağan sözcük kaydırmayı açar veya kapatır.

  Sözcük kaydırma sütununda dikey çizgi çiz

    Bu seçenek işaretlenirse Ayarlar → Düzenleyiciyi Yapılandır… menüsündeki Düzenleme sekmesinde tanımlandığı üzere sözcük kaydırma sütununda dikey bir çizgi çizilecektir. Lütfen sözcük kaydırma işaretçisinin yalnızca eş aralıklı bir yazıtipi kullanıyorsanız çizileceğini unutmayın.

  Sözcükleri şurada kaydır:

    Sözcükleri belirli bir sütunda kaydır seçeneği seçilirse bu girdi, düzenleyicinin hangi satır uzunluğunda (karakter türünden) kendiliğinden yeni bir satır başlatacağını belirler.

Öntanımlı giriş kipi

  Yeni bir görünüm açıldığında seçili olan giriş kipi etkinleştirilecektir. Düzen menüsünde belirli bir görünüm için Vi giriş kipini açıp kapatabilirsiniz.

Ayraçlar

  Açılış ayracı girildiğinde kendiliğinden ayracı kapat seçeneği seçilirse kullanıcı bir sol ayraç girdiğinde ([, ( veya {), KatePart kendiliğinden sağ ayracı (}, ) veya ]) imlecin sağ tarafına girer.

Kapsanan karakterler

  İlgili açılır listeyi kullanarak kapsanan karakterleri seçmek olanaklıdır.

  Metin seçildiğinde bu karakterlerden birinin girilmesi seçili metni kaydırır.

Kopyala ve yapıştır
  Seçili metni sürüklerken taşı

    Bu seçenek, seçili metnin düzenleyici penceresinin içine sürükleyip bırakılmasını sağlar.

  Herhangi bir metin seçilmeden çağrılırsa geçerli satırı kopyala/kes

    Bu seçenek etkinleştirilirse ve metin seçimi boşsa, gerçek imleç konumundaki metin satırı için kopyalama ve kesme işlemi gerçekleştirilir.

  Fareyle yapıştırırken metin imlecini hareket ettirme

    Bu seçenek etkinleştirilirse ve Orta Fare Düğmesi ile düzenleyici penceresine bir metin yapıştırırsanız KatePart metin imlecini tıklanan konuma taşımayacaktır.

#### Metinde Dolaşma

Metin İmleci Hareketi
  Akıllı başlangıç ve akıllı son

    Seçildiğinde Baş düğmesine basmak, imlecin boşlukları atlamasına ve satır metninin başına gitmesini sağlar.

  Sayfa Yukarı/Sayfa Aşağı imleci hareket ettirir

    Bu seçenek, kullanıcı Sayfa Yukarı veya Sayfa Aşağı düğmesine bastığında imlecin davranışını değiştirir. Seçili değilse işlem sonucunda yeni metin görünür hale geldikçe metin imleci KatePart’deki görünür metin içindeki göreceli konumunu koruyacaktır. Dolayısıyla, işlem gerçekleştiğinde imleç görünür metnin ortasındaysa orada kalacaktır (başlangıç veya sona ulaşma durumu hariç). Bu seçenek seçiliyken ilk düğme basımı, imlecin yeni bir metin sayfası görüntülendikçe ya yukarı ya da aşağı gitmesine neden olur.

  Deve biçimi imleç hareketini etkinleştir

    Bu seçenek, kullanıcı Kontrol+Sol Ok veya Kontrol+Sağ Ok kısayollarını kullandığında görülen davranışı değiştirir. Seçili değilse metin imleci tam sözcüklerin üzerinden atlar. Bu seçenek seçildiğinde, imleç deve hörgücü tümseklerinde kesintiye uğrayarak atlar.

  İmleci kendiliğinden ortala:

    Olasıyken imlecin üstünde ve altında görünür kalacak satır sayısını ayarlar.

Metin seçim kipi
  Normal

    Girilen metin seçimlerin üzerine yazılır ve imleç hareket ettirildiğinde kaybolur.

  Kalıcı

    Seçimler, imleç hareket ettirildikten ve metin girildikten sonra bile kalacaktır.

  Belgenin sonunu aşan sarmaya izin ver

    Bu seçenek belgenin sonunu geçmenizi sağlar. Bu, belgenin altını dikey olarak ortalamak veya geçerli görünümün üstüne yerleştirmek için kullanılabilir.

  Geri Sil düğmesi, karakterin tabanını aksan işaretleriyle birlikte kaldırır

    Seçildiğinde, oluşturulan karakterler yalnızca temel karakteri kaldırmak yerine aksanlarıyla birlikte kaldırılır. Bu Hint yerel dilleri için kullanışlıdır.

Çoklu imleç niteleyicisi

  Bu seçenek, Sol Fare Düğmesi ile birden çok imleç oluşturmak için kullanılacak niteleyiciyi ayarlamanıza olanak tanır. İstediğiniz konumda bir imleç oluşturmak için niteleyicilere basmanız ve Sol Fare Düğmesi ile tıklamanız gerekir. Birden çok imleç oluşturmanın diğer yollarını keşfetmek için Birden çok imleç oluşturma konusuna bakın.

#### Girintileme

Öntanımlı girintileme kipi:

  Öntanımlı olarak kullanmak istediğiniz girintileme kipini seçin. Burada, `Yok` veya `Normal` kullanmanız ve C/C++ veya XML gibi diğer girintileme kipleri için dosya türü yapılandırmalarını kullanmanız şiddetle önerilir.

Şunu kullanarak girintile
  Sekmeler

    Bu etkinleştirildiğinde, Sekme düğmesine basıldığında veya kendiliğinden girintileme kullanıldığında, düzenleyici sekme karakterleri ekler.

  Boşluklar

    Bu etkinleştirildiğinde düzenleyici; metindeki konuma ve `tab-width` ayarına göre, Sekme ddüğmesine basıldığında veya kendiliğinden girintileme kullanıldığında, hesaplanan sayıda boşluk ekler.

  Sekmeler ve Boşluklar

    Bu etkinleştirildiğinde düzenleyici, bir satırın başında girinti yaparken veya Sekme’ye basarken yukarıda açıklandığı gibi boşluklar ekleyecektir; ancak bir satırın ortasında veya sonunda Sekme düğmesine basıldığında sekmeler ekler.

  Sekme genişliği:

    Bu, sekme karakteri yerine görüntülenen boşluk sayısını yapılandırır.

  Girintileme genişliği:

    Girintileme genişliği, bir satırı girintilemek için kullanılan boşlukların sayısıdır. Sekmeler kullanılarak girintili olacak şekilde yapılandırılmışsa ve girintileme sekme genişliğine bölünebiliyorsa bir sekme karakteri eklenir.

Girintileme Özellikleri
  Ek boşlukları tut

    Bu seçenek devre dışı bırakılırsa girintileme düzeyini değiştirmek, bir satırı Girintileme genişliği alanında belirtilen genişliğin katlarına hizalar.

  Panodan yapıştırılan kodun girintilemesini ayarla

    Bu seçenek seçilirse panodan yapıştırılan metin girintilenir. Geri Al eyleminin tetiklenmesi girintilemeyi kaldırır.

Girintileme Eylemleri
  Baştaki boşlukta Geri tuşu kullanımı, girintiyi azaltır

    Bu seçenek seçilirse Geri Sil düğmesi, imleç bir satırın başındaki boşluğa konumlandırılmışsa girintilemeyi azaltır.

  Sekme düğmesi eylemi (seçim yoksa)

    Sekme düğmesinin geçerli kod blokundaki geçerli satırı Emacs’te olduğu gibi hizalamasını istiyorsanız Sekme’yi Girintilemeyi Biçimlendir eyleminin kısayolu yapın.

    Her zaman sonraki sekme konumuna git

      Bu seçenek seçilirse Sekme düğmesi, sonraki sekme konumuna ulaşana dek her zaman boşluk ekler. Düzenleme bölümündeki Genel sekmesinde, Sekmeler yerine boşluklar ekle seçeneği etkinleştirilmişse boşluk karakterleri, aksi takdirde bir adet sekme eklenir.

    Girintileme düzeyini her zaman artır

      Bu seçenek seçilirse Sekme düğmesi, her zaman geçerli satırı Girintileme genişliği alanında belirtilen karakter konumu sayısına göre girintiler.

    Baştaki boşluktaysa girintileme düzeyini artır

      Bu seçenek seçilirse Sekme düğmesi geçerli satırı girintiler veya sonraki sekme konumuna ilerletir. Ekleme noktası satırdaki ilk boşluk olmayan karakterde veya öncesindeyse veya bir seçim varsa geçerli satır, Girintileme genişliği alanında belirtilen karakter konumu sayısına göre girintilenir. Ekleme noktası, satırdaki ilk boşluk olmayan karakterden sonra yer alıyorsa ve seçim yoksa bir sonraki sekme konumuna ulaşılması için boşluk karakterleri eklenir: Düzenleme bölümündeki Genel sekmesinde, Sekmeler yerine boşluklar ekle seçeneği etkinleştirilmişse boşluk karakterleri, aksi takdirde bir adet sekme eklenir.

#### Kendiliğinden Tamamlama

Genel
  Kendiliğinden tamamlamayı etkinleştir

    Etkinleştirilirse yazma sırasında imlecin altındaki geçerli metni tamamlamak için metin girişlerinin listesini gösteren bir sözcük tamamlama kutusu kendiliğinden açılır.

  İlk tamamlama girdisini kendiliğinden seç

    Etkinleştirilirse ilk kendiliğinden tamamlama ögesi her zaman önceden seçilir, böylece onu Giriş ile ekleyebilirsiniz. Bu tür bir davranış istemiyorsanız örneğin Giriş düğmesine basarak yalnızca yeni bir satır eklemek istiyorsanız bu ögeyi devre dışı bırakın.

Tamamlanacak en kısa sözcük uzunluğu

  Metin yazarken sözcük tamamlama, önceden yazılmış olan metinden başlayarak belgedeki sözcükleri arar. Bu seçenek, sözcük tamamlamayı etkin hale getirmek ve bir tamamlama kutusu açmak için gereken en az karakter sayısını yapılandırır.

Tamamlandığında son boşlukları kaldır

  Bir listeden tamamlama ögesi seçildiğinde önceki sözcüğün sonunu kaldır

Anahtar Sözcük Tamamlama

  Etkinleştirilirse yerleşik kendiliğinden tamamlama, sözdizim vurgulamasıyla tanımlanan anahtar sözcükleri kullanır.

#### Yazım Denetimi

Bu yapılandırma seçenekleri, Yazım Denetleyicisi Sistem Ayarları modülünde açıklanmıştır.

#### Vi Giriş Kipi

Genel
  Vi komutlarının Kate kısayollarını geçersiz kılmasına izin ver

    Seçildiklerinde Vi komutları, KatePart yerleşik komutlarını geçersiz kılar. Örneğin: Kontrol+R kısayolu Yinele eylemini gerçekleştirir ve standart eylemi (Bul ve Değiştir penceresini gösterme) geçersiz kılar.

  Göreceli satı numaralarını göster

    Bu etkinleştirilirse geçerli satır her zaman 0. satıra başvurur. Yukarıdaki ve altındaki satırlar, satır numarasını göreceli olarak artırır.

Düğme Eşlemleme

  Düğme eşlemleme, girilen düğmelerin anlamını değiştirmek için kullanılır. Bu, komutları diğer düğmelere taşımanıza veya bir dizi komutu gerçekleştirmek için özel düğmelere basmanıza olanak tanır.

  Örnek:

  F2 -> `I--` Vazgeç

  Bu, F2 düğmesine basıldığında bir satırın başına `I--` ekleyecektir.

### Aç/Kaydet

#### Genel

Dosya Biçimi
  Kodlama

    Bu, aç/kaydet iletişim kutusunda veya bir komut satırı seçeneği kullanılarak değiştirilmediği takdirde, dosyaları açmak/kaydetmek için kullanılacak standart kodlamayı tanımlar.

  Kodlama algılaması

    Kendiliğinden algılamayı devre dışı bırakmak için açılır kutudan bir öge seçin veya tüm kodlamalar için kendiliğinden algılamayı etkinleştirmek üzere Evrensel’i kullanın. Ancak bu büyük olasılıkla yalnızca UTF-8/UTF-16’yı algılayabileceğinden, bir bölge seçmek daha iyi sonuçlar için özel buluşsal yöntemi kullanın. Yukarıda standart olarak seçili kodlama, aç/kaydet iletişim kutusunda belirtilen kodlama veya komut satırında belirtilen kodlama dosyanın içeriğiyle eşleşmiyorsa bu algılama çalıştırılacaktır.

  Yedek Kodlama

    Bu, yukarıda standart olarak seçilen kodlamanın, aç/kaydet iletişim kutusunda belirtilen kodlamanın veya komut satırında belirtilen kodlamanın dosyanın içeriğiyle eşleşmemesi durumunda, dosyaları açarken denenecek yedek kodlamayı tanımlar. Bu kullanılmadan önce, dosyanın başlangıcında bir bayt sırası işareti aranarak kullanılacak kodlamanın belirlenmesi için bir girişimde bulunulacaktır: eğer bir tane bulunursa doğru Unicode kodlama seçilecektir; aksi takdirde, her iki başarısız geri dönüş kodlaması da denenecekse kodlama algılaması çalıştırılacaktır.

  Satır sonu

    Etkin belgeniz için tercih ettiğiniz satır sonu kipini seçin. UNIX®, DOS/Windows® veya Macintosh arasından bir seçim yapabilirsiniz.

  Kendiliğinden satır sonu algılaması

    Düzenleyicinin satır türünü kendiliğinden algılamasını istiyorsanız bunu işaretleyin. İlk bulunan satır sonu türü, tüm dosya için kullanılacaktır.

  Bayt sırası imini (BOM) etkinleştir

    Bayt sırası imi, Unicode ile kodlanmış belgelerin başında özel bir dizidir. Düzenleyicilerin metin belgelerini doğru Unicode kodlamayla açmalarına yardımcı olur. Bayt sırası imi, görüntülenen belgede görünür değildir. Daha fazla bilgi için Bayt Sırası İmi adresine bakın.

  Satır uzunluğu sınırı

    Ne yazık ki Qt™’deki eksiklikler nedeniyle KatePart çok uzun satırlarla çalışırken düşük başarım sergiler. Bu nedenle KatePart, burada belirtilen karakter sayısından daha uzun olan satırları kendiliğinden kaydırır. Bunu devre dışı bırakmak için bunu `0` olarak ayarlayın.

Kaydederken Kendiliğinden Temizle
  Satır sonu boşluklarını kaldır

    Düzenleyici, dosyayı kaydederken metin satırlarının sonundaki fazladan boşlukları kendiliğinden kaldıracaktır. Bu işlevi devre dışı bırakmak için Hiçbir zaman, bunu yalnızca belgeyi son kaydettiğinizden bu yana değiştirdiğiniz satırlarda yapmak için Değiştirilen satırlarda veya belgenin tümünden koşulsuz olarak kaldırmak için Tüm belgede seçeneğini kullanın.

  Kaydederken dosyanın sonuna yenisatır iliştir

    Dosyayı kaydettikten sonra eğer yoksa düzenleyici, dosyanın sonuna kendiliğinden yeni bir satır ekleyecektir.

Kendiliğinden Kaydetmeyi Etkinleştir (Yalnızca yerel dosyalar)

  Siz üzerinde çalışırken düzenleyicinin belgeleri kendiliğinden kaydetmesini istiyorsanız bunu işaretleyin.

  Etkin belge odağı kaybederken onu kendiliğinden kaydet

    Düzenleyicinin dışında bir şeye, örneğin Kate’deki uçbirim paneline geçtiğinizde, düzenleyici belgeleri kendiliğinden kaydeder.

  Kendiliğinden kaydetme aralığı

    Kendiliğinden kaydetme aralığını buradan saniye türünde belirleyebilirsiniz. Aralık 0 olursa belge aralıklardan sonra kendiliğinden kaydedilmez.

#### Gelişmiş

Kaydetmek için bir yedek dosyası yaz

  Kaydı yedeklemek, KatePart uygulamasının diskteki dosyayı (dosyanın önceden kaydedilen sürümünü) yeni değişiklikleri kaydetmeden önce <önek><dosya-adı><sonek> olarak kaydetmesini sağlar. Yedekleme dosyası, kaydederken bir şeyler ters giderse veya daha sonra dosyanın önceki sürümünü kurtarmak isterseniz çalışmanızı kurtarmanıza yardımcı olabilir. Sonek öntanımlı olarak ~ yapılır ve önek öntanımlı olarak boştur.

  Yerel dosyalar

    Kaydederken, yerel dosyaların yedeğinin alınmasını istiyorsanız bunu işaretleyin.

  Uzak dosyalar

    Kaydederken, uzak dosyaların yedeğinin alınmasını istiyorsanız bunu işaretleyin.

  Yedek dosyaları için önek

    Yedek dosyası adlarına iliştirilecek öneki girin.

  Yedek dosyaları için sonek

    Yedek dosyası adlarına iliştirilecek soneki girin.

  Takas dosyası kipi

    KatePart, bir kilitlenme veya elektrik kesintisi durumunda (çoğu) kaydedilmemiş çalışmayı kurtarabilir. Bir belge düzenlendiğinde bir takas dosyası (.<dosyaadı>.kate-swp) oluşturulur. KatePart çöker ve kullanıcı değişikliklerini kaydetmemişse takas dosyası diskte kalır. KatePart, bir dosyayı açarken belge için bir takas dosyası olup olmadığını denetler ve varsa kullanıcıya kaybolan verileri kurtarmak isteyip istemediğini sorar. Kullanıcı, özgün dosya ile kurtarılan dosya arasındaki farkları da görüntüleme olanağına sahiptir. Takas dosyası, her kaydetme sonrasında ve normal çıkışta silinir.

    KatePart, diskteki takas dosyalarını her 15 saniyede bir eşzamanlar; ancak yalnızca son eşzamanlamadan bu yana değiştiyse bu işlemi yapar. Kullanıcı isterse Devre dışı’yı seçerek takas dosyalarının eşzamanlamasını devre dışı bırakabilir; ancak bu daha çok veri kaybına neden olur.

    Takas dosyası etkinleştirildiğinde, Etkin, Öntanımlı Dizinde Depola ve Etkin, Özel Dizinde Depola adındaki iki kip arasından seçim yapılabilir.

  Takas dosyalarını şurada depola

    Öntanımlı olarak takas dosyaları, dosyayla aynı klasöre kaydedilir. Takas dosyası kipi için Etkin, Özel Dizinde Depola seçildiğinde, takas dosyaları belirtilen klasörde oluşturulur. Bu, gereksiz ağ trafiğini önlemek amacıyla ağ dosya sistemleri için kullanışlıdır.

  Takas dosyası kaydetme aralığı

    KatePart, diskteki takas dosyalarını her 15 saniyede bir eşzamanlar; ancak yalnızca son eşzamanlamadan bu yana değiştiyse bu işlemi yapar. Eşzamanlama aralığını istediğiniz gibi değiştirebilirsiniz.

#### Kipler ve Dosya Türleri

Bu sayfa, belirtilen MIME türlerindeki belgeler için öntanımlı yapılandırmayı geçersiz kılmanıza olanak tanır. Düzenleyici bir belge yüklediğinde, bunun tanımlanmış dosya türlerinden biri için dosya maskeleri veya MIME türleriyle eşleşip eşleşmediğini deneyecek ve eğer öyleyse tanımlanan değişkenleri uygulayacaktır. Daha fazla dosya türü eşleşirse en yüksek önceliğe sahip olan kullanılır.

Dosya türü:

  En yüksek önceliğe sahip dosya türü, ilk açılan kutuda görüntülenen dosya türüdür. Daha fazla dosya türü bulunursa onlar da listelenir.

  Yeni

    Yeni bir dosya türü oluşturmak için kullanılır. Bu düğmeye tıkladıktan sonra aşağıdaki alanlar boşalır ve yeni dosya türü için istediğiniz özellikleri doldurabilirsiniz.

  Sil

    Var olan bir dosya türünü kaldırmak için açılır kutudan onu seçin ve Sil düğmesine basın.

`Geçerli dosya türü` özellikleri

  En yüksek önceliğe sahip dosya türü, ilk açılan kutuda görüntülenen dosya türüdür. Daha fazla dosya türü bulunursa onlar da listelenir.

  Ad:

    Dosya türünün adı ilgili menü ögesinin metni olacaktır. Bu ad Araçlar → Dosya Türleri menüsünde görüntülenir.

  Bölüm:

    Bölüm adı menülerdeki dosya türlerini düzenlemek için kullanılır. Bu aynı zamanda Araçlar → Dosya Türleri menüsünde de kullanılır.

  Değişkenler:

    Bu dizi, KatePart değişkenlerini kullanarak bu MIME türü tarafından seçili dosyalar için KatePart ayarlarını yapılandırmanıza olanak tanır. Vurgulama, girinti kipi vb. gibi neredeyse tüm yapılandırma seçeneklerini ayarlayabilirsiniz.

    Kullanılabilir tüm değişkenlerin ve bunların açıklamalarının bir listesini görmek için Düzenle’ye basın. Belirli bir değişkeni etkinleştirmek için soldaki onay kutusunu seçin ve ardından sağdaki değişkenin değerini ayarlayın. Bazı değişkenler olası değerleri seçebileceğiniz bir açılır kutu sağlarken, diğerleri ise elle geçerli bir değer girmenizi gerektirir.

    Bu değişkenler hakkındaki tam bilgi için Belge Değişkenleriyle Yapılandırmak bölümüne bakın.

  Vurgulama:

    Yeni bir dosya türü oluşturursanız bu açılır kutu, vurgulama için bir dosya türü seçmenize olanak tanır.

  Girintileme kipi:

    Açılır kutu, yeni belgeler için girintileme kipini belirtir.

  Dosya uzantıları:

    Joker maskeleri, dosyaları dosya adına göre seçmenize olanak tanır. Tipik bir maske, bir yıldız işareti ve dosya uzantısını kullanır; örneğin, `*.txt; *.text`. Dizi, noktalı virgülle ayrılan bir maske listesidir.

  MIME türleri:

    MIME türlerini kolayca seçmenize yardımcı olan bir sihirbaz görüntüler.

  Öncelik:

    Bu dosya türü için bir öncelik ayarlar. Birden fazla dosya türü aynı dosyayı seçerse en yüksek önceliğe sahip olan kullanılacaktır.

Belge Değişkenleriyle Yapılandırmak
Belge Değişkenleriyle Yapılandırmak

## Belge Değişkenleriyle Yapılandırmak

KatePart değişkenleri, Emacs ve Vi kip satırlarına benzer biçimde KatePart’in belge değişkenlerini uygulamasıdır. Katepart’ta satırlar aşağıdaki biçime sahiptir: `kate: DEĞİŞKEN-ADI DEĞER; [ DEĞİŞKEN-ADI DEĞER; … ]`. Satırlar dosya yorum içeren bir biçimdeyse elbette yorumda yer almalıdır. Değişken adları tek sözcüklerden oluşur (boşluk yoktur) ve sonraki noktalı virgülden sonraki her şey değerdir. Noktalı virgül gereklidir.

İşte bir C++, Java™ veya JavaScript dosyası için girintileme ayarlarını zorlayan örnek bir değişken satırı:

    // kate: replace-tabs on; indent-width 4; indent-mode cstyle;

### Not

Değişken satırları için yalnızca ilk ve son on satır aranır.

Ek olarak, belge değişkenleri herhangi bir dizindeki `.kateconfig` adlı bir dosyaya yerleştirilebilir ve yapılandırılan ayarlar, dizindeki ve alt dizinlerindeki her dosyaya kip satırları girilmiş gibi uygulanacaktır. Belge değişkenleri, `.kateconfig` dosyasındaki kip satırları ile aynı sözdizimini kullanır; ancak genişletilmiş seçeneklerle.

KatePart’de hemen hemen tüm yapılandırmaları destekleyecek değişkenler vardır ve ayrıca eklentiler değişkenleri kullanabilir, bu durumda eklentinin belgelerinde belgelenmesi gerekir.

KatePart’de, editorconfig kurulu olduğu zaman `.editorconfig` dosyalarından yapılandırmaları okuma desteği vardır. KatePart, bir dosya açtığınızda kendiliğinden bir `.editorconfig` dosyası arar. Yine de `.kateconfig` dosyalarına öncelik tanır.

### KatePart değişkenleri nasıl kullanır

Yapılandırma okurken, katepart aşağıdaki yerlere bakar (sırasıyla):

- Global yapılandırma.

- İsteğe bağlı oturum verisi.

- "Dosya Türü" yapılandırması.

- `.kateconfig` dosyasındaki belge değişkenleri.

- Belgenin içindeki belge değişkenleri.

- Komut satırından veya uygulama menüsünden ayarlanan ayarlar.

Gördüğünüz üzere, belge değişkenleri yalnzca çalışma zamanında yapılan değişikliklerle geçersiz kılınabilirler. Bir belge kaydedildiğinde, belge değişkenleri yeniden okunur ve komut satırından veya menü ögelerinden yapılan değişikliklerin üzerine yazılır.

Aşağıda listelenmeyen herhangi bir değişken belgede depolanır ve bunları kendi amaçları doğrultusunda kullanabilen eklentiler gibi diğer nesneler tarafından sorgulanabilirler. Örneğin, değişken girinti kipi, yapılandırması için belge değişkenlerini kullanır.

Burada listelenen değişkenler, KatePart 5.38 sürümünü belgelemektedir. Gelecekte daha fazla değişken eklenebilir. Değişkenler için aşağıdaki geçerli ifadelerle birlikte 3 olası değer türü vardır:

- BOOL — on|off|true|false|1|0

- INTEGER — herhangi bir tamsayı

- STRING — başka herhangi bir şey

### Kullanılabilir Değişkenler

auto-brackets [BOOL]

  Ayraçların kendiliğinden eklenmesini etkinleştirin.

auto-center-lines [INT]

  Kendiliğinden hizalama satırlarının sayısını ayarlayın.

background-color [STRING]

  Belge arka plan rengini ayarlayın. Değer, geçerli bir renge dönüştürülebilir olmalıdır; örneğin, `#ff0000`.

backspace-indents [BOOL]

  Geri Sil düğmesine basıldığında girintinin geri alınmasını etkinleştirin veya devre dışı bırakın.

block-selection [BOOL]

  Blok seçimini açın veya kapatın.

bom | byte-order-mark | byte-order-marker [BOOL]

  Dosyaları Unicode (utf8, utf16, utf32) biçiminde kaydederken, bayt sırası imini etkinleştirin veya devre dışı bırakın.

  Kate 3.4 (KDE 4.4) sürümünden beri

bracket-highlight-color [STRING]

  Ayraç vurgusunun rengini ayarlayın. Değer, geçerli bir renk için değerlendirilebilecek bir şey olmalıdır; örneğin; `#ff0000`.

current-line-color [STRING]

  Geçerli satırın rengini ayarlayın. Değer, geçerli bir renk için değerlendirilebilecek bir şey olmalıdır; örneğin, `#ff0000`.

default-dictionary [STRING]

  Yazım denetimi için kullanılan öntanımlı sözlüğü ayarlar.

  Kate 3.4 (KDE 4.4) sürümünden beri

dynamic-word-wrap [BOOL]

  Devingen sözcük kaydırmayı açar veya kapatır.

eol | end-of-line [STRING]

  Satır sonu kipini ayarlayın. Geçerli ayarlar `unix`, `mac` ve `dos` olarak üçe ayrılır.

folding-markers [BOOL]

  Katlama imleyicilerinin görüntülenmesini açar veya kapatır.

folding-preview [BOOL]

  Düzenleyici kenarlığında katlama önizlemesini etkinleştirin.

font-size [INT]

  Belgenin yazıtipi boyutunu punto türünden ayarlayın.

font [STRING]

  Belgenin yazıtipini ayarlayın. Değer, geçerli bir yazıtipi adı olmalıdır; örneğin, `courier`.

hl | syntax [STRING]

  Sözdizimi vurgulamasını ayarlayın. Geçerli diziler, menüde kullanılabilir olan tüm adlardır. Örneğin, C++ için yalnızca `C++` yazın.

icon-bar-color [STRING]

  Simge çubuğunun rengini ayarlayın. Değer, geçerli bir renk olmalıdır; örneğin, `#ff0000`.

icon-border [BOOL]

  Simge kenarlığının görüntülenmesini açın veya kapatın.

indent-mode [STRING]

  Kendiliğinden girintileme kipini ayarlayın. Şu seçenekler desteklenir: `none`, `normal`, `cstyle`, `haskell`, `lilypond`, `lisp`, `python`, `ruby` ve `xml`. Ayrıntılar için “Kendiliğinden Girintilemeyi Kullanmak” bölümüne bakın.

indent-pasted-text [BOOL]

  Panodan yapıştırılan metnin girintileme ayarlamasını etkinleştirin/devre dışı bırakın.

  Kate 3.11 (KDE 4.11) sürümünden beri

indent-width [INT]

  Girintileme genişliğini ayarlayın.

keep-extra-spaces [BOOL]

  Girintileme genişliği hesaplanırken, fazladan boşlukların tutulup tutulmayacağını ayarlayın.

line-numbers [BOOL]

  Satır numaralarının görüntülenmesini açın veya kapatın.

newline-at-eof [BOOL]

  Belgeyi kaydederken, dosyanın sonuna (EOF) boş bir satır ekleyin.

  Kate 3.9 (KDE 4.9) sürümünden beri

overwrite-mode [BOOL]

  Üzerine yazma kipini açın veya kapatın.

persistent-selection [BOOL]

  Kalıcı seçimi açın veya kapatın.

replace-tabs-save [BOOL]

  Kaydetme sırasında sekmeden boşluğa dönüşümü açın veya kapatın.

replace-tabs [BOOL]

  Devingen sekmeden boşluğa dönüşümü açın veya kapatın.

remove-trailing-spaces [STRING]

  Belgeyi kaydederken satır sonlarındaki boşlukları kaldırır. Geçerli seçenekler:

  - `none`, `-` veya `0`: Asla satır sonu boşluklarını kaldırmayın.

  - `modified`, `mod`, `+` veya `1`: Yalnızca değiştirilen satırlardaki sondaki boşlukları kaldırın. Değiştirilen çizgiler, satır değişiklik sistemi tarafından işaretlenir.

  - `all`, `*` veya `2`: Tüm belgedeki satır sonu boşluklarını kaldırın.

scrollbar-minimap [BOOL]

  Sarma çubuğu mini haritasını gösterin.

scrollbar-preview [BOOL]

  Sarma çubuğu önizlemesini gösterin.

scheme [STRING]

  Renk şemasını ayarlayın. Herhangi bir etki yaratabilmesi için dizinin, yapılandırmanızda bulunan renk şemasının adı olması gerekir.

selection-color [STRING]

  Seçim rengini ayarlayın. Değer, geçerli bir renkle değerlendirilebilecek bir şey olmalıdır; örneğin, `# ff0000`.

show-tabs [BOOL]

  Görsel sekme karakterini açın veya kapatın.

smart-home [BOOL]

  Akıllı ana klasör dolaşımını açın veya kapatın.

tab-indents [BOOL]

  Sekme düğmesi girintilemesini açın veya kapatın.

tab-width [INT]

  Sekme karakterinin genişliğini ayarlayın.

undo-steps [INT]

  Anımsanacak geri alma eylemi sayısını ayarlayın.

  Not: KDE4 üzerindeki Kate 3 sürümünden beri kullanılmıyor. Bu değer yok sayılır. Geri alma eyleminin en yüksek sayısı sınırsızdır.

word-wrap-column [INT]

  Durağan sözcük kaydırma genişliğini ayarlayın.

word-wrap-marker-color [STRING]

  Sözcük kaydırma imleyicisinin rengini ayarlayın. Değer, geçerli bir renkle değerlendirilebilecek bir şey olmalıdır; örneğin, `#ff0000`.

word-wrap [BOOL]

  Durağan sözcük kaydırmayı açın veya kapatın.

### `.kateconfig` dosyalarındaki genişletilmiş seçenekler

KatePart, her zaman yerel dosyalar için bir `.kateconfig` dosyası arar (uzak dosyalarda aramaz). Ek olarak, aşağıdaki biçimde özel karakter araması için seçenekler ayarlamak da olanaklıdır (dosya uzantıları):

    kate: tab-width 4; indent-width 4; replace-tabs on;
    kate-wildcard(*.xml): indent-width 2;
    kate-wildcard(Makefile): replace-tabs off;

Bu örnekte, tüm dosyalar 4 boşluktan oluşan sekme genişliği kullanır, girinti genişliği 4 boşluktur ve sekmeler genişletilerek boşluklarla değiştirilir. Ancak tüm `*.xml` dosyaları için girinti genişliği 2 boşluktur. Makefile dosyaları sekmeler kullanır; örneğin, sekmeler boşluklarla değiştirilmez.

Joker karakterleri noktalı virgülle ayrılır; ayrıca birden fazla dosya uzantısını aşağıdaki gibi de belirtebilirsiniz:

    kate-wildcard(*.json;*.xml): indent-width 2;

Ayrıca, belirli dosyaları eşleştirmek için MIME türünü de kullanabilirsiniz; örneğin, tüm C++ kaynak dosyalarını 4 boşlukla girintilemek için şunu yazabilirsiniz:

    kate-mimetype(text/x-c++src): indent-width 4;

### Not

`.kateconfig` dosyalarındaki desteğin yanı sıra, joker karakterlerine ve MIME türüne bağlı belge değişkenleri de dosyaların kendisinde yorumlar olarak desteklenir.

Bölüm 8. Emeği Geçenler ve Lisans
Emeği Geçenler ve Lisans

# Bölüm 8. Emeği Geçenler ve Lisans

KatePart ve KWrite Telif hakkı 2001–2014 Kate takımı.

Özgün KWrite temellidir, Telif hakkı 2000 Jochen Wilhelmy `(digisnap AT cs.tu-berlin.de)`

Katkılar:

- Christoph Cullmann `(cullmann AT kde.org)`

- Michael Bartl `(michael.bartl1 AT chello.at)`

- Phlip `(phlip_cpp AT my-deja.com)`

- Anders Lund `(anders AT alweb.dk)`

- Matt Newell `(newellm AT proaxis.com)`

- Joseph Wenninger `(kde AT jowenn.at)`

- Jochen Wilhelmy `(digisnap AT cs.tu-berlin.de)`

- Michael Koch `(koch AT kde.org)`

- Christian Gebauer `(gebauer AT kde.org)`

- Simon Hausmann `(hausmann AT kde.org)`

- Glen Parker `(glenebob AT nwlink.com)`

- Scott Manson `(sdmanson AT altel.net)`

- John Firebaugh `(jfirebaugh AT kde.org)`

- Nibaldo González `(nibgonz AT gmail.com)`

KatePart belgelendirmesi, özgün KWrite belgelendirmesi temellidir ve KatePart ile alakalı olacak şekilde değiştirilmiştir.

Özgün KWrite belgelendirmesi, Thad McGinnis `(ctmcginnis AT compuserve.com)` tarafından yazılmış, Christian Tibirna `(tibirna AT kde.org)` tarafından birçok düzeltme almıştır. Lauri Watts `(lauri AT kde.org)` tarafından docbook biçimine dönüştürülmüş, Anne-Marie Mahfouf `(annma AT kde.org)` ve Anders Lund `(anders AT alweb.dk)` tarafından güncellenmiştir

Şu anki KatePart belgelendirmesi T.C. Hollingsworth `(tchollingsworth AT gmail.com)` tarafından tutulur. Değişiklikler istemek için KDE hata izleme sistemine bir kayıt açın veya GitLab sayfamıza bir yama gönderin.

Çeviri: Kaan Özdinçer `(kaanozdincer AT gmail.com)`

Çeviri: Emir SARI `(emir_sari AT icloud.com)`

Bu belgelendirme, GNU Serbest Belge Lisansı (GFDL) altında dağıtılmaktadır.

Bu program, GNU Genel Kamu Lisansı altında dağıtılmaktadır.

Bölüm 9. Vi Giriş Kipi
Vi Giriş Kipi

# Bölüm 9. Vi Giriş Kipi

Erlend Hamberg `<ehamberg@gmail.com>`

Çeviri: Emir SARI

## Vi Giriş Kipi

Vi kipinin amacı, Vim’in tam yerini almak ve Vim’in tüm özelliklerini desteklemek değildir. Amacı, metin düzenlemenin “Vim yöntemini” - ve öğrenilen Vim alışkanlıklarını — içsel düzenleyici olarak KatePart metin düzenleyicisini kullanan programlar için kullanılabilir hale getirmektir.

Vi kipi, programla güzel bir şekilde bütünleşmeyi ve Vim’in davranışından mantıklı olduğu yerde sapmayı amaçlamaktadır. Örneğin, `:w`, KatePart’in Vi kipinde bir kaydetme iletişim kutusu açacaktır.

Vi Giriş Kipi’ni tüm yeni görünümler için etkinleştirmek üzere Ayarlar → KatePart Uygulamasını Yapılandır…+Düzenleme → Vi Giriş Kipi bölümüne gidin. Bu sekmede Vi Giriş Kipi için seçenekler koyabilir ve düğme eşlemlerini düzenleyebilirsiniz. Vi Giriş Kipi, aynı zamanda Edit menüsündeki Vi Giriş Kipi ögesinden de açılabilir/kapatılabilir. (Öntanımlı kısayol düğmesi: Meta+Kontrol+V — Meta, genelde Windows düğmesidir).

### Not

Birçok Vi Kipi klavye kısayolu, çoğu KDE uygulamasını aksine BÜYÜK/küçük harf duyarlıdır. Bu; örneğin, `y` ve `Y` girişlerinin farklı komutlara karşılık geldiği anlamına gelir. `y` (yank-kopyala) komutunu girmek için Büyük Harf düğmesinin kapalı olduğundan emin olun ve Y düğmesine basın. `Y` (tüm satırı kopyala) komutunu girmek içinse Üst Karakter+Y düğmelerine basın.

Bu, Büyük Harf ve Üst Karakter düğmelerinin durumundan bağımsız olarak girilebilen Kontrol düğmesini kullanan komutlar için geçerli değildir. Ancak bazı komutlar, Kontrol düğmesinin yanı sıra BÜYÜK/küçük harf duyarlı başka bir düğmenin kullanımını gerektiren bir düğme kombinasyonu gerektirebilir. Örneğin, “Kontrol+W, `h`” (sağdaki bölünmüş görünüme geç) kısayolunu kullanmak için Büyük Harf düğmesinin kapalı olduğundan emin olun, Kontrol+W düğmelerine basın, bırakın ve sonrasında H düğmesine basın.

### Vim ile uyumsuzluklar

KatePart’in Vi kipinin Vim ile uyumsuz olan yalnızca birkaç özelliği vardır (eksik şeyleri saymazsak). Aşağıda nedenleri ile birlikte sıralanmışlardır.

- KatePart: `U` ve Kontrol+R, yinele komutudur.

  Vim: Kontrol+R normal yinele komutudur; U, bir satırdaki tüm güncel değişiklikleri geri almak için kullanılır.

  KatePart’in Vi kipinde U düğmesini yinele olarak kullanmanın nedeni, Kontrol+R kısayolu öntanımlı olarak KatePart’in değiştir işlevi için ayrılmıştır (ara ve değiştir). Öntanımlı olarak Vi kipi, KatePart’in kısayollarını geçersiz kılmaz (bu, Ayarlar → KatePart Uygulamasını Yapılandır…+Düzenleme → Vi Giriş Kipi bölümünde yapılandırılabilir), bundan dolayı bir yinele eyleminin “düzenli” bir düğme basımı olarak kullanılabilir olması gereklidir. Ek olarak, Vim’deki `U` komutu, KatePart’in içsel geri al sistemiyle düzgün bir biçimde tümleşmez, o yüzden desteklemek kolay değildir.

- KatePart: `print`, Yazdır iletişim kutusunu gösterir.

  Vim: `print`, verilen erimdeki satırları yazdırır, tıpkı dedesi ed gibi.

  `:print` gibi komutlar yalnızca Vi kipinde değil “düzenli” KatePart kullanıcıları için de kullanılabilirdir; bu demektir ki `:print` komutu Vim’in davranışını taklit etmek yerine yazdırma iletişim kutusunu açar.

- KatePart: `Y`, satırın sonuna kadar kopyalar.

  Vim: `Y` tüm satırı kopyalar, tıpkı `y` `y` gibi.

  Vi’nin `Y` komutu davranışı aslında bir hatadır. Değiştir ve sil komutları için `c` `c`/ `d` `d` girişleri eylemini geçerli satırda yapar ve `C`/`D` geçerli imleç sütunundan satırın sonuna kadar çalışır. Ancak hem `y` `y` ve `Y`, geçerli satırı kopyalar. KatePart’in Vi Kipi’nde `Y`, satırın sonuna kadar kopyalar. Bu, Vim belgelendirmesinde “daha mantıklı bir davranış” olarak açıklanmıştır.

- KatePart: `O` ve `o`, yeni satırlar [`sayı`] açar ve sizi ekle kipine koyar.

  Vim: `O` ve `o` yeni bir satır açar ve ekle kipinden çıkarken [`sayı`] kadar metin koyar.

  Bu çoğunlukla, Vim IRC kanalında (Libera Chat üzerinde #vim) bu davranış nedeniyle birçok kişinin kafasının karışmasına tanık olmanın bir sonucu olarak yapılmıştır.

### Kip Değiştirmek

- Normal Kip, bir belgede gezinmek veya belgeyi düzenlemek için komutlar girmenize olanak tanır ve öntanımlı kiptir. Vazgeç düğmesine basarak başka herhangi bir kipten bu kipe geri dönebilirsiniz.

- Görsel Kip, bir belgedeki metni vurgulamanıza olanak tanır. Normal Kip komutlarının çoğu bu kipte de geçerlidir. Karakterleri seçmek için `v` düğmesine veya satırları seçmek için `V` düğmesine basabilirsiniz.

- Ekle Kipi, belgeyi doğrudan düzenlemenize olanak tanır. `i` düğmesine veya aşağıda listelenen diğer birkaç komuttan birine basarak girebilirsiniz.

- Komut Kipi, KatePart’in komut satırını çağırarak, Vi uygulamalarında bulunan birçok komutun yanı sıra KatePart’e özgü bazı komutları çalıştırmanıza olanak tanır. Bu komutlar hakkında daha fazla bilgi için “Düzenleyici Bileşeni Komut Satırı” bölümüne bakın. Kullanmak için : düğmesine basın, komutu girin ve Giriş ile sürdürün.

### Kate özellikleriyle tümleştirme

- Fare ile metin seçildiğinde Görsel Kip’e kendiliğinden girilir. Ayrıca Tümünü Seç gibi metni seçen Kate işlevleri kullanılırken de girilebilir (menüden veya Kontrol+A aracılığıyla.)

- Vi imleri ve Kate yer imleri birbirleriyle tümleşiktir. Vi Kipi’nde bir im oluşturulduğunda, onunla eşleşen bir Kate yer imi de oluşturulur ve Yer İmleri menüsünde görünür. Tam tersi olarak bir Kate yer imi de oluşturulduğunda eşleşen bir Vi imi, 0. sütünda yerini alır.

### Desteklenen normal/görsel kip komutları

`a` | Ekle Kipi’ne gir, imleçten sonra iliştir
`A` | Ekle Kipi’ne gir, satırdan sonra iliştir
`i` | Ekle Kipi’ne gir, imleçten önce ekle
Ekle | Ekle Kipi’ne gir, imleçten önce ekle
`I` | Ekle Kipi’ne gir, satırdaki ilk boş olmayan karakterden önce ekle
`gi` | Ekle Kipi’ne gir, son Ekle Kipi’nden çıkış sırasında bırakılan yerden önce ekle
`v` | Görsel Kip’e gir, karakterler seç
`V` | Görsel Kip’e gir, satırlar seç
Kontrol+v | Görsel Kip’e gir, bloklar seç
`gb` | Görsel Kip’e gir, son seçimi yeniden seç
`o` | Geçerli satırın altında yeni bir satır aç
`O` | Geçerli satırın üstünde yeni bir satır aç
`J` | Satırları birbirlerine kat
`c` | Değiştir: Ardına bir hareket ekle ve Ekle Kipi’ne gir
`C` | Satır sonuna kadar değiştir: Satırın sonuna kadar sil ve Ekle Kipi’ne gir
`cc` | Satırı değiştir: Satırı sil ve Ekle Kipi’ne gir
`s` | Karakteri başkasıyla değiştir
`S` | Satırı başkasıyla değiştir
`dd` | Satırı sil
`d` | Silmek için ardına bir hareket ekle
`D` | Satır sonuna kadar sil
`x` | İmlecin sağındaki karakteri sil
Sil | İmlecin sağındaki karakteri sil
`X` | İmlecin solundaki karakteri sil
`gu` | Küçük harf yapmak için ardına bir hareket ekle
`guu` | Geçerli satırı küçük harf yap
`gU` | BÜYÜK harf yapmak için ardına bir hareket ekle
`gUU` | Geçerli satırı büyük harf yap
`y` | “Kopyalamak” için ardına bir hareket ekle
`yy` | Satırı kopyala
`Y` | Satırı kopyala
`p` | İmleçten sonra yapıştır
`P` | İmleçten önce yapıştır
`]p` | İmleç girintilendikten sonra yapıştır
`[p` | İmleç girintilendikten önce yapıştır
`r` | İmleçten sonraki karakteri değiştirmek için ardına bir karakter ekle
`R` | Değiştir Kipi’ne gir
`:` | Komut Kipi’ne gir
`/` | Ara
`u` | Geri al
Kontrol+R | Yinele
`U` | Yinele
`m` | İm koy (sonrasında hareketler tarafından kullanılabilir)
`n` | Sonrakini bul
`N` | Öncekini bul
`>>` | Satırı girintile
`<<` | Satır girintisini kaldır
`>` | Satırları girintile
`<` | Satır girintilerini kaldır
Kontrol+F | Sayfa aşağı
Kontrol+F | Sayfa yukarı
`ga` | Karakterin ASCII değerini yazdır
`.` | Son değişikliği yinele
`==` | Satırı hizala
`=` | Satırları hizala
`~` | Geçerli karakterin BÜYÜK/küçük harf durumunu değiştir
Kontrol+S | Görünümü yatay böl
Kontrol+V | Görünümü dikey böl
Kontrol+W, `w` | Sonraki bölünmüş pencereye geç
Kontrol+W, `h` Kontrol+W Sol Ok | Soldaki bölünmüş pencereye geç
Kontrol+W, `l` Kontrol+W Sağ Ok | Sağdaki bölünmüş pencereye geç
Kontrol+W, `k` Kontrol+W Yukarı Ok | Yukarıdaki bölünmüş pencereye geç
Kontrol+W, `j` Kontrol+W Aşağı Ok | Aşağıdaki bölünmüş pencereye geç

### Desteklenen hareketler

Bunlar, Normal veya Görsel kipte bir belgede gezinmek için veya yukarıdaki komutlardan biriyle birlikte kullanılabilir. Bunların önüne, uygun hareketlerden kaç tanesinin yapılacağını gösteren bir sayı gelebilir.

`h` | Sol
Sol Ok | Sol
Geri Sil | Sol
`j` | Aşağı
Aşağı Ok | Aşağı
`k` | Yukarı
Yukarı Ok | Yukarı
`l` | Sağ
Sağ Ok | Sağ
Boşluk | Sağ
`$` | Satır sonu
Son | Satır sonu
`0` | Satırın ilk karakteri (0. sütun)
Baş | Satırın ilk karakteri
`^` | Satırın ilk boşluk olmayan karakteri
`f` | İmlecin sağına gitmek için ardına bir karakter ekle
`F` | İmlecin soluna gitmek için ardına bir karakter ekle
`t` | İmleci önceki karaktere yerleştirerek imlecin sağına gitmek için ardına bir karakter ekle
`T` | İmleci önceki karaktere yerleştirerek imlecin soluna gitmek için ardına bir karakter ekle
`gg` | İlk satır
`G` | Son satır
`w` | Sonraki sözcük
`W` | Boşlukla ayrılan sonraki sözcük
`b` | Önceki sözcük
`B` | Boşlukla ayrılan önceki sözcük
`e` | Sözcüğün sonu
`E` | Boşlukla ayrılan sözcük sonu
`ge` | Önceki sözcüğün sonu
`gE` | Boşlukla ayrılan önceki sözcüğün sonu
`|` | Bu sütuna gitmek için ardına bir sütun numarası ekle
`%` | O ögeye gitmek için ardına bir öge ekle
``` | İm
`‘` | İmin bulunduğu satırın boşluk olmayan ilk karakteri
`[[` | Önceki açılış ayracı
`]]` | Sonraki açılış braketi
`[]` | Önceki kapanış ayracı
`][` | Sonraki kapanış ayracı
Kontrol+I | Sonraki konuma atla
Kontrol+O | Önceki konuma atla
`H` | Ekranın ilk satırına git
`M` | Ekranın orta satırına git
`L` | Ekranın son satırına git
`%`yüzde`` | Belgenin belirtilen yüzdesine git
`gk` | Görsel olarak bir satır yukarı git (devingen sözcük kaydırma kullanılırken)
`gj` | Görsel olarak bir satır aşağı git (devingen sözcük kaydırma kullanılırken)
Kontrol+Sol Ok | Bir sözcük sola git
Kontrol+Sağ Ok | Bir sözcük sağa git

### Desteklenen metin nesneleri

Bunlar, bir belgenin belirli bölümlerini seçmek için kullanılabilir.

`iw` | İçteki sözcük: Boşlukla birlikte sözcük
`aw` | Bir sözcük: Boşluk içermeyen sözcük
`i"` | Önceki çift tırnaktan (`"`) sonraki çift tırnağa, tırnak işaretleri içerilir
`a”` | Önceki çift tırnaktan (`"`) sonraki çift tırnağa, tırnak işaretleri içerilmez
`i'` | Önceki tek tırnaktan (`"`) sonraki tek tırnağa, tırnak işaretleri içerilir
`a'` | Önceki tek tırnaktan (`"`) sonraki tek tırnağa, tırnak işaretleri içerilmez
`i(` | Önceki açılış parantezinden [`(`] sonraki kapanış parantezine [`)`], parantez içerilir
`a(` | Önceki açılış parantezinden [`(`] sonraki kapanış parantezine [`)`], parantez içerilmez
`i[` | Önceki açılış köşeli ayracından (`[`) sonraki kapanış köşeli ayracına (`]`), ayraçlar içerilir
`a[` | Önceki açılış köşeli ayracından (`[`) sonraki kapanış köşeli ayracına (`]`), ayraçlar içerilmez
`i{` | Önceki açılış süslü ayracından (`{`) sonraki kapanış süslü ayracına (`}`), ayraçlar içerilir
`a{` | Önceki açılış süslü ayracından (`{`) sonraki kapanış süslü ayracına (`}`), ayraçlar içerilmez
`i<` | Önceki açılış açılı ayracından (`<`) sonraki kapanış açılı ayracına (`>`), ayraçlar içerilir
`a<` | Önceki açılış açılı ayracından (`<`) sonraki kapanış açılı ayracına (`>`), ayraçlar içerilmez
`i`` | Önceki ters tırnaktan (```) sonraki ters tırnağa, tırnaklar içerilir
`a`` | Önceki ters tırnaktan (```) sonraki ters tırnağa, tırnaklar içerilmez

### Desteklenen Ekle Kipi komutları

Kontrol+D | Girintilemeyi kaldır
Kontrol+T | Girintile
Kontrol+E | Aşağıdan ekle
Kontrol+Y | Sözcük sil
Kontrol+W | Sözcük sil
Kontrol+U | Satırı sil
Kontrol+J | Yeni satır
Kontrol+H | Karakteri geriye doğru sil
Kontrol+Baş | Belgedeki ilk karaktere git
Kontrol+R `n` | `n` yazmacının içeriğini ekle
Kontrol+O, `komut` | Yalnızca bir komut için Normal Kip’e gir
Kontrol+A | Geçerli seçili sayıyı artır
Kontrol+X | Geçerli seçili sayıyı azalt

### Virgül Metin Nesnesi

Bu nesne Vim’de yoktur. Virgül Metin Nesnesi, C benzeri dillerdeki ve diğer virgülle ayrılmış listelerdeki parametre listelerini değiştirmeyi kolaylaştırır. Temel olarak iki virgül veya virgül ile parantez arasındaki alandır. Çizimde gösterilen satırda, bu metin nesnesinin yayılabileceği üç erim vurgulanmıştır.

Virgül metin nesnesi erimleri. Örneğin, imleç `arg2` üzerindeyse `ci` komutunu girmek (“içteki virgülü değiştir”), `double arg2` ögesini siler ve imleci iki virgülün arasına yerleştirir ve Ekle Kipi’ne geçer. Bir işlevin parametrelerini değiştirmenin pek kolay bir yoludur.

### Eksik Özellikler

Daha önce de belirtildiği üzere, KatePart Vi Kipi’nin amacı Vim’in özelliklerinin %​100’ünü desteklemek değildir.

Ek A. Düzenli İfadeler
Düzenli İfadeler

# Ek A. Düzenli İfadeler

Anders Lund `<anders@alweb.dk>`

-: İşbaran Akçayır
-: Emir SARI

    Bu Ek, düzenli ifadeler dünyasına kısa;
    ancak umarım yeterli ve kapsamlı bir giriş içerir. Bu belgede,
    KatePart içinde kullanılabilir olan düzenli ifadeler anlatılır.
    Bu düzenli ifade biçimi, ne perl düzenli ifadeleriyle ne de
    grep ile kullanılabilir düzenli ifadelerle
    doğrudan uyumlu değildir.

## Giriş

Düzenli İfadeler, bize bir metin dizisinin kimi olası içeriğini küçük bir yazılım parçası tarafından anlaşılacak şekilde tanımlamanın bir yolunu sağlar, böylece bir metnin eşleşip eşleşmediğini görebilir ve bazı gelişmiş durumlarda belirli parçaları veya eşleşen metni kaydedebiliriz.

Örnek: Bir metni, içinde “Henrik” veya “Pernille” adlarından biriyle başlayan ve sonrasında “say” gelen paragraflar için aramak istiyoruz.

Normal bir aramada, öncelikle adla aramaya başlardık; “Henrik”, belki sonrasında “sa” getirirdik: `Henrik sa`; eşleşmeleri ararken paragraf başı olmayan varyantları ve “sa” ile başlayan sözcükleri yok saymamız gerekirdi; örneğin “says”, “said” vb. Sonrasında bunların hepsini diğer adla da yinelememiz gerekecekti…

Düzenli İfadeler sayesinde bu görev tek bir aramayla ve daha büyük bir doğrulukla gerçekleştirilebilir.

Bunu başarmak için Düzenli İfadeler, eşleşecek bir dizinin genelleştirilmesini ayrıntılı olarak ifade etmeye yönelik kuralları tanımlar. Sözcüğü tam anlamıyla şu şekilde ifade edebiliriz: “Ya ‘Henrik’ ya da ‘Pernille’ ile başlayan bir satır (büyük olasılıkla öncesinde bir sekme karakteri veya 4 adet boşluk olabilir), sonrasında bir boşluk ve ‘sa’ ve sonrasında ya ‘ys’ veya ‘id’” şu düzenli ifadeyle gösterilebilirdi:

`^[ \t]{0,4}(Henrik|Pernille) sa(ys|id)`

Yukarıdaki örnek, çağdaş Düzenli İfadelerin dört ana konseptinin tümünü göstermektedir:

- Dizgiler

- Savlar

- Niceleyiciler

- Geriye başvurular

İfadeyi başlatan şapka (`^`) bir savdır ve yalnızca aşağıdaki eşleşen dizi bir satırın başındaysa doğrudur.

`[ \t]` ve `(Henrik|Pernille) sa(ys|id)` dizgilerdir. İlki, ya bir boş ya da (yatay) sekme karakteriyle eşleşen bir karakter sınıfıdır; diğer dizgi ise ya `Henrik` ya da `Pernille` ile eşleşen bir alt dizgi ve `sa` dizisiyle tam olarak eşleşen bir parçadır ve son olarak ya `ys` ya da `id` ile eşleşen bir alt dizgidir

`{0,4}` dizisi, “öncekinin 0’dan 4’e kadar herhangi bir yer” olan bir niceleyicidir.

Geriye başvurular kavramını destekleyen düzenli ifade yazılımı, dizinin eşleşen kısmının tümünü ve parantez içine alınmış alt dizgileri kaydettiği için bu başvurulara bazı erişim araçları verildiğinde, ya eşleşmenin tümünü (düzenli bir ifadeyle bir düzenleyicide bir metin belgesi aranırken, bu genellikle seçilmiş olarak işaretlenir) ya da bulunan ad ya da yüklemin son kısmını ele alabiliriz.

Tümü birlikte, ifade nerede eşleşmesini istiyorsak yalnızca orada eşleşir.

Aşağıdaki bölümlerde dizgilerin, karakter sınıflarının, savların, niceleyicilerin ve geriye başvuruların nasıl oluşturulacağı ve kullanılacağı ayrıntılı olarak açıklanacak ve son bölümde birkaç yararlı örnek verilecektir.

Dizgiler
Dizgiler

## Dizgiler

Dizgiler, değişmez dizilerden ve karakter sınıflarından oluşur. Dizgiler, parantez içine alınmış dizgiler olan alt dizgiler içerebilir.

### Karakterleri kaçırmak

Dizgilerde olduğu gibi karakter sınıflarında da bazı karakterlerin özel bir anlamı vardır. Bu karakterlerden herhangi birini tam anlamıyla eşleştirmek için düzenli ifade yazılımının bu tür karakterleri gerçek anlamlarında yorumlaması gerektiğini bilmesini sağlamak amacıyla bunların imlenmesi veya kaçırılması gerekir.

Bu, karakterin başına ters eğik çizgi (`\`) getirilerek yapılır.

Düzenli ifade yazılımı, bağlamda herhangi bir özel anlamı olmayan bir karakterden kaçmayı sessizce yok sayar; bu nedenle, örneğin bir “j” (`\j`) karakterinden kaçmak güvenlidir. Bir karakterin özel bir anlamı olup olmadığından kuşkunuz varsa onu güvenle kaçırabilirsiniz.

Kaçış, elbette ters eğik çizgi karakterinin kendisini de içerir, böyle bir dizinin tam anlamıyla eşleşmesi için `\\` yazarsınız.

### Karakter sınıfları ve kısaltmalar

Bir karakter sınıfı, tanımlanmış bir karakter kümesinden biriyle eşleşen bir ifadedir. Düzenli ifadelerde karakter sınıfları, sınıfın yasal karakterlerini `[]` köşeli parantez içine alarak veya aşağıda açıklanan kısaltılmış sınıflardan birini kullanarak tanımlanır.

Basit karakter sınıfları yalnızca bir veya daha çok düz karakter içerir; örneğin, `[abc]` (“a”, “b” veya “c” harflerinden biriyle eşleşir) veya `[0123456789]` (herhangi bir rakamla eşleşir).

Harfler ve rakamlar mantıksal bir sıraya sahip olduğundan, erimlerini belirterek bunları kısaltabilirsiniz: `[a-c]`, `[abc]`’ye ve `[0-9]` ise `[0123456789]`’a eşittir. Bu yapıları birleştirerek; örneğin `[a-fynot1-38]` gibi tümüyle geçerli bir yapı oluşturabilirsiniz (sonuncusu, elbette “a”,“b”,“c”,“d”, “e”,“f”,“y”,“n”,“o”,“t”, “1”,“2”,“3” veya “8” ögelerinden biriyle eşleşecektir).

BÜYÜK harfler, BÜYÜK harf olmayan karşılıklarından farklı karakterler olduğundan, “a” veya “b” ile eşleşen ve BÜYÜK/küçük harf duyarsız bir karakter sınıfı oluşturmak için her durumda, onu `[aAbB]` olarak yazmanız gerekir.

Elbette “herhangi bir şeyin dışındaki her şeyle” eşleşen bir “negatif” sınıf oluşturmak olanaklıdır. Bunu yapmak için sınıfın başına bir şapka (`^`) koyun:

`[^abc]`, “a”, “b” veya “c” dışındaki herhangi bir karakterler eşleşir.

Gerçek karakterlerin yanı sıra bazı kısaltmalar da tanımlanmış olup bu da işimizi biraz daha kolaylaştırmaktadır:

`\a`

  Bu, ASCII zil karakteriyle (BEL, 0x07) eşleşir.

`\f`

  Bu, ASCII form besleme karakteriyle (FF, 0x0C) eşleşir.

`\n`

  Bu, ASCII satır besleme karakteriyle (LF, 0x0A, Unix yenisatır) eşleşir.

`\r`

  Bu, ASCII satır başı karakteriyle (CR, 0x0D) eşleşir.

`\t`

  Bu, ASCII yatay sekme karakteriyle (HT, 0x09) eşleşir.

`\v`

  Bu, ASCII dikey sekme karakteriyle (VT, 0x0B) eşleşir.

`\xhhhh`

  Bu, onaltılık hhhh Unicode karakteriyle eşleşir (0x0000 ve 0xFFFF arasında). \0ooo (başka bir deyişle, \zero ooo), ooo sekizlik ASCII/Latin-1 karakteriyle eşleşir (0 ve 0377).

`.` (nokta)

  Bu, herhangi bir karakterle eşleşir (yenisatır içerilir).

`\d`

  Bu, bir rakamla eşleşir. `[0-9]` ile aynıdır

`\D`

  Bu, rakam olmayan bir şeyle eşleşir. `[^0-9]` veya `[^\d]` ile aynıdır

`\s`

  Bu, boşluk karakteriyle eşleşir. `[ \t\n\r]` ile aynı şeydir

`\S`

  Bu, boşluk olmayan bir karakterle eşleşir. `[^ \t\r\n]` ve `[^\s]` ile aynıdır

`\w`

  Herhangi bir “sözcük karakteriyle” eşleşir; bu durumda bu bir harf, rakam veya alt çizgi olabilir. `[a-zA-Z0-9_]` ile aynıdır

`\W`

  Bu, sözcük karakteri olmayan herhangi bir karakterler eşleşir; bu durumda bu harfler, sayılar ve alt çizgi dışındaki her şey olabilir. `[^a-zA-Z0-9_]` veya `[^\w]` ile aynıdır

Sınıfların POSIX biçimine simgelemi, `[:<class name>:]` de ayrıca desteklenir. Örneğin, `[:digit:]`, `\d`’e ve `[:space:]` de `\s`’e eşittir. POSIX karakter sınıflarının tam listesine buradan bakabilirsiniz.

Kısaltılmış sınıflar özel bir sınıfın içine yerleştirilebilir; örneğin bir sözcük karakteriyle, bir boşlukla veya bir noktayla eşleştirmek için `[\w \.]` yazabilirsiniz

#### Karakter sınıflarındaki özel anlamlara sahip karakterler

Aşağıdaki karakterlerin “[]” karakter sınıfı yapısında özel bir anlamı vardır ve bir sınıfa sözcüğün tam anlamıyla içerilebilmesi için kaçış karakterlerinin kullanılması gerekir:

`]`

  Karakter sınıfını sonlandırır. Sınıftaki ilk karakter olmadığı sürece kaçırılmalıdır (kaçırılmamış bir şapka işaretinden sonra gelebilir).

`^` (şapka)

  İlk karakter ise negatif sınıfı belirtir. Sınıfın ilk karakteri ise sözcüğün tam anlamıyla eşleşecek biçimde kaçırılmalıdır.

`-` (tire)

  Mantıksal bir erimi belirtir. Bir karakter sınıfı içinde her zaman kaçırılmalıdır.

`\` (ters eğik çizgi)

  Kaçış karakteri. Her zaman kaçırılmalıdır.

### Alternatifler: Bunlardan “biriyle” eşleştirmek

Bir dizi alternatif dizgiden birini eşleştirmek istiyorsanız bunları `|` (dikey çubuk karakteri) ile ayırabilirsiniz.

Örneğin “John” veya “Harry” bulmak istediğinizde `John|Harry` düzenli ifadesini kullanırsınız.

### Alt Dizgiler

Alt dizgiler, parantez içine alınmış dizgilerdir ve düzenli ifadeler dünyasında çeşitli kullanımları vardır.

#### Alternatifleri belirtmek

Bir dizi alternatifi daha büyük bir dizgi içinde gruplandırmak için bir alt dizgi kullanabilirsiniz. Alternatifler “|” (dikey çubuk) karakteriyle ayrılır.

Örneğin, “int”, “float” veya “double” sözcüklerinden biriyle eşleşmek için `int|float|double` dizgisini kullanabilirsiniz. Yalnızca bir boşluk ve ardından birkaç harf gelen bir tanesini bulmak istiyorsanız alternatifleri bir alt dizginin içine yerleştirin: `(int|float|double)\s+\w+`.

#### Eşleşen metni yakalamak (geriye başvurular)

Geriye başvuru kullanmak istiyorsanız dizginin istenilen kısmının anımsanması için `(DİZGİ)` alt dizgisini kullanın. Alt dizginin anımsanmasını önlemek için yakalamayan bir `(?:DİZGİ)` grubu kullanın.

Örneğin, aynı sözcüğün virgülle ve büyük olasılıkla bir miktar boşlukla ayrılmış iki örneğini bulmak istiyorsanız `(\w+),\s*\1` yazabilirsiniz. `\w+` alt dizgisi bir sözcük karakterleri parçası bulur ve ifadenin tümü onlardan sonra bir virgül, 0 veya birden çok boşluk ve aynı miktarda sözcük karakteri geliyorsa eşleşir. (`\1` dizisi, paranteze alınmış ilk alt dizgiye başvurur.)

### Not

`\1` kullanımı ile ilgili anlatım bozukluklarını önlemek için ardına birkaç rakam koyun (örneğin `\12`, 12. alt dizgi veya `2` içeren ilk alt dizgi olabilir); birden çok rakamlı alt dizgiler için biz `\{12}` kullanıyoruz.

Örnekler:

- `\{12}1`, “12 alt dizgisini kullan” anlamına gelir

- `\123`, “yakalama 1’i kullan, sonrasında 23’ü normal metin olarak kullan” anlamına gelir

#### İleri Savlar

Bir ileri sav, ya `?=` ya da `?!` ile başlayan bir alt dizgidir.

“Bill” dizisi ile yalnızca ardından “ Gates” gelmiyorsa eşleşmek istiyorsanız şu ifadeyi kullanabilirsiniz: `Bill(?! Gates)`. (Bu, hem “Bill Clinton”’u hem de “Billy the kid”’i bulur; ancak diğer eşleşmeleri sessizce yok sayar.)

Savlar için kullanılan alt dizgiler yakalanmaz.

Ayrıca Savlar bölümüne bakın.

#### Arkaya Savlar

Bir arkaya sav, ya `?<=` ya da `?<!` ile başlayan bir alt dizgidir.

Arka sav, ileri sav ile aynı etkiye sahiptir; ancak geriye doğru çalışır. Örneğin, “fruit” gerçek dizisiyle yalnızca önünde “grape” yoksa eşleşmek istiyorsanız `(?<!grape)fruit` ifadesini kullanabilirsiniz.

Savlar için kullanılan alt dizgiler yakalanmaz.

Ayrıca Savlar bölümüne bakın

### Dizgiler içinde özel anlam taşıyan karakterler

Aşağıdaki karakterlerin bir dizgi içinde anlamı vardır ve bunları tam anlamıyla eşleştirmek istiyorsanız kaçış karakterlerinin kullanılması gerekir:

`\` (ters eğik çizgi)

  Kaçış karakteri.

`^` (şapka)

  Dizinin başını bildirir.

`$`

  Dizinin sonunu bildirir.

`()` (sol ve sağ parantez)

  Alt dizgileri bildirir.

`{}` (sol ve sağ süslü ayraçlar)

  Sayısal niceleyicileri bildirir.

`[]` (sol ve sağ köşeli ayraçlar)

  Karakter sınıflarını bildirir.

`|` (dikey çubuk)

  Mantıksal OR. Alternatifleri ayırır.

`+` (artı işareti)

  Niceleyici, 1 veya daha çok.

`*` (yıldız işareti)

  Niceleyici, 0 veya daha çok.

`?` (soru işareti)

  İsteğe bağlı bir karakter. Bir niceleyici olarak yorumlanabilir, 0 veya 1.

Niceleyiciler
Niceleyiciler

## Niceleyiciler

Niceleyiciler, düzenli bir ifadenin bir karakterin, karakter sınıfının veya alt dizginin belirli bir sayısı veya sayı erimiyle eşleşmesine olanak tanır.

Niceleyiciler süslü ayraçlar içine alınır (`{` ve `}`) ve genellikle `{[en-az-oluş][,[en-çok-oluş]]}` biçimindedirler

Kullanımları en iyi örnekle açıklanabilir:

`{1}`

  Tam 1 oluş

`{0,1}`

  Sıfır veya 1 oluş

`{,1}`

  Aynısı, daha kısası ;)

`{5,10}`

  En az 5; ancak en çok 10 oluş.

`{5,}`

  En az 5 oluş, sınırsız.

Ek olarak, bazı kısaltmalar vardır:

`*` (yıldız işareti)

  `{0,}` gibi, herhangi bir sayıda oluş bul.

`+` (artı işareti)

  `{1,}` gibi, en az 1 oluş.

`?` (soru işareti)

  `{0,1}` gibi, sıfır veya 1 oluş.

### Açgözlülük

En çok değere sahip olmayan niceleyiciler kullanılırken, düzenli ifadeler aranan dizinin olabildiğince büyük bölümüyle eşleşmeye öntanımlıdır, buna genellikle açgözlü davranış denir.

Çağdaş düzenli ifade yazılımları, “açgözlülüğü kapatmanın” yollarını sağlar; ancak grafiksel bir ortamda bu özelliğe erişmenizi sağlamak arayüzün sorumluluğundadır. Örneğin, düzenli ifade araması sağlayan bir arama iletişim kutusunda “En az eşleşme” etiketli bir onay kutusu bulunabilir ve ayrıca açgözlülüğün öntanımlı davranış olup olmadığının belirtilmesi gerekir.

### Bağlamsal örnekler

Niceleyicilerin kullanımına ilişkin birkaç örnek:

`^\d{4,5}\s`

  “1234 go” ve “12345 now” içindeki rakamlarla eşleşir; ancak “567 eleven” veya “223459 somewhere” içindekilerle eşleşmez.

`\s+`

  Bir veya daha çok boşluk karakteriyle eşleşir.

`(bla){1,}`

  “blablabla” dizisinin tümüyle ve “blackbird” veya “tabla” içindeki “bla” ile eşleşir.

`/?>`

  “<closeditem/>” içindeki “/>” ile ve “<openitem>” içindeki “>” ile eşleşir.

Savlar
Savlar

## Savlar

Savlar, düzenli bir ifadenin yalnızca belirli denetimli koşullar altında eşleşmesine olanak tanır.

Bir savın eşleşecek bir karaktere gereksinimi yoktur; olası bir eşleşmeyi onaylamadan önce çevreyi araştırır. Örneğin, sözcük sınırı savı, konumunda bir sözcüğün karşısında sözcük olmayan bir karakter bulmaya çalışmaz, bunun yerine bir sözcük karakterinin bulunmadığından emin olur. Bu, hiçbir karakterin olmadığı durumda iddianın eşleşebileceği anlamına gelir; örneğin aranan bir dizinin sonunda.

Bazı savların aslında eşleşecek bir dizgisi vardır; ancak dizi eşleşmesinin parçası, tam ifade eşleşmesinin sonucunun bir parçası olmayacaktır.

Burada belgelenen düzenli ifadeler aşağıdaki savları destekler:

`^` (şapka: dizinin başı)

  Aranan dizinin başlangıcıyla eşleşir.

  `^Peter` ifadesi, “Peter, hey!” dizisindeki “Peter” ile eşleşir; ancak “Hey, Peter!” ile eşleşmez

`$` (dizi sonu)

  Aranan dizinin sonuyla eşleşir.

  `you\?$` ifadesi, “You didn’t do that, did you?” dizisindeki son you ile eşleşir; ancak “You didn’t do that, right?” ile eşleşmez

`\b` (sözcük sınırı)

  Bir tarafta sözcük karakteri varken diğer tarafta yoksa eşleşir.

  Bu, sözcük sonlarını bulmak için kullanışlıdır; örneğin, bir sözcüğün tamamını bulmak için her iki uç da kullanılabilir. `\bin\b` ifadesi, “He came in through the window” dizisindeki “in” ile eşleşir; ancak “window” içindeki “in” ile eşleşmez.

`\B` (sözcük sınırı olmayan)

  “\b” ifadesinin eşleşmediği her yerde eşleşir.

  Bu, örneğin sözcüğün içinde eşleşeceği anlamına gelir: `\Bin\B` ifadesi, “window” ile eşleşir; ancak “integer” veya “I’m in love” ile eşleşmez.

`(?=DİZGİ)` (pozitif ileri bakış)

  İleriye bakan bir sav, dizinin olası bir eşleşmeyi takip eden kısmına bakar. Olası eşleşmeyi takip eden metin savın DİZGİ’siyle eşleşmezse pozitif bakış dizinin eşleşmesini engeller; ancak bununla eşleşen metin sonuçta içerilmez.

  `handy(?=\w)` ifadesi “handyman” içindeki “handy” ile eşleşir; ancak “That came in handy!” içindekiyle eşleşmez

`(?!DİZGİ)` (negatif ileri bakış)

  Negatif bakış, aranan dizinin aşağıdaki bölümünün DİZGİ ile eşleşmesi durumunda olası bir eşleşmenin onaylanmasını önler.

  `const \w+\b(?!\s*&)` ifadesi, “const char* foo” içindeki “const char” ile eşleşir; ancak “const QString& bar” içindeki “const QString” ile eşleşmez; çünkü “&” negatif ileriye bakan sav dizgisi ile eşleşir.

`(?<=DİZGİ)` (pozitif geri bakış)

  Arkaya bakma, ileriye bakmayla aynı etkiye sahiptir; ancak geriye doğru çalışır. Geriye doğru bir bakış, dizinin olası bir eşleşmeden önceki kısmına bakar. Pozitif geriye bakış, yalnızca savın DİZGİ’sinden önce geliyorsa bir diziyle eşleşir; ancak bununla eşleşen metin sonuçta içerilmez.

  `(?<=cup)cake` ifadesi,“cake” ile yalnızca önünde “cup” geliyorsa eşleşir (“cupcake” gibi; ancak “cheesecake” veya tek başına “cake” değilse).

`(?<!DİZGİ)` (negatif geri bakış)

  Negatif geriye bakış, aranan dizinin önceki kısmı DİZGİ ile eşleşmiyorsa olası bir eşleşmenin onaylanmasını önler.

  `(?<![\w\.])[0-9]+` ifadesi, “=123” ve “-123” dizilerindeki “123” ile eşleşir; ancak “.123” veya “word123” içindeki “123” ile eşleşemez.

`(DİZGİ)` (yakalayan grup)

  Parantez içindeki alt dizgi yakalanır ve anımsanır; böylece geriye başvurularda kullanılabilir. Örneğin, `(&quot;+)[^&quot;]*\1` ifadesi, `""""text""""` ve `"text"` ile eşleşir.

  Daha fazla bilgi için Eşleşen metni yakalamak (geriye başvurular) bölümüne bakın.

`(?:DİZGİ)` (yakalamayan grup)

  Parantez içindeki alt dizgi yakalanmaz ve anımsanmaz. Yakalamalar kullanılmayacaksa her zaman yakalamayan grupların kullanılması tercih edilir.