&Anders.Lund; &Anders.Lund.mail;
Alper
Tekinalp

    alper.tekinalp@gmail.com

Çeviri
Emir
SARI

    emir_sari@icloud.com

Çeviri

# Eklentilerle Çalışmak

Eklentileri teker teker yapılandırma iletişim kutusundan etkinleştirebilirsiniz; burası ayrı zamanda ilgili eklenti yapılandırma seçeneklerine de erişim sağlar.

## &kate; Uygulama Eklentileri

&kate; eklentileri, &kate; düzenleyicisine ek işlevsel sağlar. Ek menüler ve kısayollar ekleyebilirler ve &kate;’in özelliklerini genişletebilirler. &kate; içinden istediğiniz kadar kurabilirsiniz. &kate;’in yapılandırma iletişim kutusunu Ayarlar&kate; Uygulamasını Yapılandır… yolunu izleyerek açın. İstediğiniz eklentileri seçmek için Uygulama Eklentiler ögesini kullanın.

Kullanılabilir eklentiler:

- Dış Araçlar — Dış araçlar ve uygulamalar çalıştırın

- Geri İz Tarayıcısı — C/C++ Geri İzleri dolaşım araç görünümü

- Yapı Eklentisi — Derle/Yap ve hata iletilerini ayrıştırın

- Dışındakini/Benzerini Kapat — Ortak bir yol veya dosya uzantısı temelli bir belge grubunu kapatın

- Renk Seçicisi — Bilinen renkler için önizlemeyi göster

- Renklendirilmiş Ayraçlar — Okunabilirlik için renklendirilmiş ayraçlar

- CTags — Tanımları/Beyanları CTags ile arayın

- Belge Önizlemesi — Belgeyi hedef biçimde önizleyin

- Belge Değiştiricisi — &Alt;&Tab; kombinasyonuyla tez belge değiştirmesi

- Dosya Sistemi Tarayıcısı — Dosya sistemi tarayıcısı araç görünümü

- Belge Ağacı Görünümü — Açık belgeleri bir dosya ağacında görüntüler

- &gdb; — Bir temel &gdb; ön ucu sağlar

- Proje Eklentisi — &git; ve diğer kaynak denetim sistemleriyle tümleştirme

- Replicode — Yapılandırmacı yapay zeka dili ve çalışma zamanı

- LSP İstemcisi — Birçok dil için kod dolaşımı ve tamamlaması sağlayan LSP istemcisi

- Ara ve Değiştir — Belgelerde, klasörlerde ve projelerde arayın ve değiştirin

- Betikler ve Parçacıklar araç görünümü — Kod parçacıkları ve düzenleyici betikleri oluşturun veya indirin

- Klavye Makroları — Klavye makroları kaydedin ve oynatın (örn., klavye eylem sıralamaları)

- SQL Eklentisi — SQL veritabanlarında sorgular yürütün

- Sembol Görüntüleyicisi — Kaynaktan başvuru sembollerini çıkarın ve gösterin

- Uçbirim Araç Görünümü — &kde;’nin &konsole; araç takımını kullanarak elinizin altında bir uçbirim bulundurun

- Metin Süzgeci — Uçbirim komutları kullanarak metin işleyin

- &XML; Tamamlama — DTD tarafından izin verilen &XML; ögelerini, özniteliklerini, öznitelik değerlerini ve varlıklarını listeler

- &XML; Doğrulama — &XML; dosyalarını xmllint kullanarak doğrular

- Derleyici Gezgini — Derleyici Gezgini aracı için arayüz

- Biçimlendirme — Kod biçimlendirme eklentisi

## Dış Araçlar

Dış Araçlar eklentisi, geçerli belgeyle ilgili verilerle (örneğin URL’si, dizini, metni veya seçimi) dış uygulamaları çağırmaya olanak tanır. Etkinleştirildiğinde, aşağıda gösterildiği gibi var olan araçların değiştirilmesine veya kaldırılmasına olanak tanıyan bir yapılandırma sayfası görünür. Benzer şekilde beğeninize göre yeni araçlar da eklenebilir. Araçlar daha sonra uygulamanın Araçlar menüsünün Dış Araçlar alt menüsünde görünecektir.

Yapılandırma sayfası, Ekle düğmesine tıklayarak yeni dış araçlar eklemenize olanak tanır. Bu durumda, yeni bir dış aracın, önceden tanımlı bir listeden var olan bir aracın veya dış araçları kategorize etmek için yeni bir kategorinin ekleneceği bir açılır menü görünür. Benzer olarak, var olan araçlar çift tıklatılarak veya Düzenle… çağrılarak değiştirilebilir ve Kaldır düğmesi ise seçilen araçları kaldırır.

### Dış Araçları Yapılandırmak

Bir aracı düzenlemek, aracın ayrıntılı şekilde yapılandırılmasına olanak tanıyan bir yapılandırma iletişim kutusunu açar:

Görüldüğü üzere birçok ayrıntı tanımlanabilir:

  `Ad`, daha sonra menüde görünecek olan aracın adı.

  `Simge`, menüde görünen isteğe bağlı simge.

  `Yürütülebilir`, tam yol içeren yürütülebilir dosya veya sizin yürütülebilir dosyanız `PATH` çevre değişkeninde olmalıdır.

  `Argümanlar`, yürütülebilir dosyaya iletilen isteğe bağlı argümanlar.

  `Girdi`, stdin aracılığıyla işleme aktarılan isteğe bağlı girdi.

  `Çalışma dizini`, aracın başlatılacağı çalışma dizini. Boşsa, çalışma dizini geçerli belgenin yoluna ayarlanır.

  `MIME türleri`, ayarlandıysa araç yalnızca geçerli belgenin mime türü eşleştiğinde etkin olur.

  `Kaydet`, çağrıldığında hiçbirini, geçerli belgeyi veya tüm belgeleri kaydeder.

  `Tetikleyici`, bu aracı çalıştırmak için bir tetikleyici. Bir tetikleyici, yalnızca geçerli etkin belgeyi etkiler ve yalnızca geçerli etkin belgenin MIME türü, harici aracın MIME türüyle eşleştiğinde yürütülür.

  Aşağıdaki tetikleyiciler kullanılabilir:

    `Yok`, bu öntanımlıdır, aracın tetikleyisinin olmadığı anlamına gelir.

    `Kaydetme Öncesi`, bu tetikleyici, belge kaydedilmeden hemen önce yürütülür.

    `Kaydetme Sonrası`, bu tetikleyici, belge kaydedildikten hemen sonra yürütülür.

  `Yürütme sonrası geçerli belgeyi yeniden yükle`, geçerli dosya diskte değiştirildiğinde yararlıdır.

  `Çıktı`, çıktı, stdout’un hedefini tanımlar. Geçerli seçenekler: `Yok Say`, `İmleç Konumunda Ekle`, `Seçili Metni Değiştir`, `Geçerli Belgeyi Değiştir`, `Geçerli Belgeye İliştir`, `Yeni Belgede Ekle`, `Panoya Kopyala`, `Panelde Görüntüle`.

  `Düzenleyici komutu`, yerleşik komut satırı ile dış aracı çağırmak için kullanılabilecek isteğe bağlı komut.

Öntanımlılar düğmesi yalnızca Kate ile birlikte gönderilen araçlar için görünür. Tıklandığında, aracın tüm ayarları öntanımlı (diğer bir deyişle fabrika) değerlerine döndürülür.

### Değişken Genişleme

Yürütülebilir, Argümanlar, Girdi ve Çalışma Dizini gibi kimi düzenleme alanları, araç çağrıldığında genişletilen değişkenleri desteklerler. Bu, bu metin giriş alanlarından biri odağı aldığında görünen {} simgesiyle gösterilir:

Bu metin giriş alanlarından birinin üzerine gelindiğinde geçerli genişletilmiş metni içeren bir araç ipucu da gösterilir. Ayrıca, {} eylemine tıklamak, kullanılabilir tüm değişkenleri listeleyen bir iletişim kutusu açacaktır:

Bu özellik, bir dış araç tanımlarken pek çok esneklik sağlar; çünkü `%{…}` biçimindeki tüm değişkenler, araç çağrıldığında genişletilirler. İki tür desteklenen değişken vardır:

- `%{variable-name}`

- `%{variable-name:<value>}`

İlk `%{variable-name}` biçimi, değişkeni içeriğiyle değiştirir. Örneğin, `%{Document:FileName}` değişkeni geçerli belgenin yol içermeyen dosya adıyla değiştirilir. İkinci `%{variable-name:<value>}` biçimi, içeriği olarak `<value>` alır. Örneğin, bu, `%{ENV:HOME}` ile bir çevre değişkenini genişletmek veya geçerli tarihi yeğlenen `%{Date:yyyy-MM-dd}` biçiminde almak için kullanılabilir.

Desteklenen değişkenler şunlardır:

  `Document:FileBaseName`: Geçerli belgenin yolu ve son eki olmadan dosya tabanı adı.

  `Document:FileExtension`: Geçerli belgenin dosya uzantısı.

  `Document:FileName`: Geçerli belgenin yol olmadan dosya adı.

  `Document:FilePath`: Geçerli belgenin dosya adı da içerilmek üzere tam yolu.

  `Document:Text`: Geçerli belgenin içeriği.

  `Document:Path`: Geçerli belgenin dosya adı dışında tam yolu.

  `Document:NativeFilePath`: Yerel yol ayırıcıyla birlikte (Windows’ta ters eğik çizgi) dosya adı da içerilen tam belge yolu.

  `Document:NativePath`: Yerel yol ayırıcıyla birlikte (Windows’ta ters eğik çizgi) dosya adı dışında tam belge yolu.

  `Document:Cursor:Line`: Geçerli belgedeki metin imleci konumunun satır numarası (0 ile başlar).

  `Document:Cursor:Column`: Geçerli belgedeki metin imleci konumunun sütun numarası (0 ile başlar).

  `Document:Cursor:XPos`: İmleç konumunun genel ekran koordinatlarındaki X bileşeni.

  `Document:Cursor:YPos`: İmleç konumunun genel ekran koordinatlarındaki Y bileşeni.

  `Document:Selection:Text`: Geçerli belgenin metin seçimi.

  `Document:Selection:StartLine`: Geçerli belgenin seçili metninin başlangıç satırı.

  `Document:Selection:StartColumn`: Geçerli belgenin seçili metninin başlangıç sütunu.

  `Document:Selection:EndLine`: Geçerli belgenin seçili metninin bitiş satırı.

  `Document:Selection:EndColumn`: Geçerli belgenin seçili metninin bitiş sütunu.

  `Document:RowCount`: Geçerli belgenin satır sayısı.

  `Document:Variable:<variable>`: Rastgele belge değişkenlerini genişletin.

  `Date:Locale`: Geçerli yerel ayar biçimindeki geçerli tarih.

  `Date:ISO`: Geçerli tarih (ISO).

  `Date:<value>`: Geçerli tarih (QDate biçim dizisi).

  `Time:Locale`: Geçerli yerel ayar biçimindeki geçerli zaman.

  `Time:ISO`: Geçerli zaman (ISO).

  `Time:<value>`: Geçerli zaman (QTime biçim dizisi).

  `ENV:<value>`: Çevre değişkenlerine erişim.

  `JS:<expression>`: Basit JavaScript ifadelerini değerlendirin.

  `PercentEncoded:<text>`: Yüzde kodlamalı metin.

  `UUID`: Yeni bir UUID üretin.

### Öntanımlı Araçların Listesi

Öntanımlı olarak çeşitli araçlar sağlanır. Ancak, daha yararlı araçlarınız varsa lütfen bunları GitLab projemize gönderin, böylece onları bu listeye ekleyebiliriz. Tüm öntanımlı araçlar öntanımlı olarak liste görünümünde görünür. Bununla birlikte, kategori ve hatta araçların silinmesi de dahil olmak üzere tüm araçlar beğeninize göre değiştirilebilir. Silinen araçlar, yukarıda anlatıldığı gibi yapılandırma sayfasındaki Ekle düğmesine basılarak yeniden eklenebilir.

#### git-cola

git-cola, değişiklikleri kolayca hazırlamanıza ve işlemenize olanak tanıyan grafiksel bir git istemcisidir. Kuruluysa komut satırından `git-cola` yazılarak da kullanılabilir.

  `Ad`: git-cola

  `Simge`: git-cola

  `Yürütülebilir`: git-cola

  `Argümanlar`: -r %{Document:Path}

  `Düzenleyici komutu`: git-cola

#### gitk

gitk, git geçmişini güzel bir şekilde görselleştirmeye olanak tanıyan bir git istemcisidir.

  `Ad`: gitk

  `Simge`: git-gui

  `Yürütülebilir`: gitk

  `Çalışma dizini`: %{Document:Path}

  `Düzenleyici komutu`: gitk

#### git blame

Geçerli dosyadaki git değişikliklerini kolayca takip etmek için git blame’i başlatır.

  `Ad`: git blame

  `Yürütülebilir`: git

  `Argümanlar`: gui blame %{Document:FileName}

  `Kaydet`: Geçerli belge

  `Çalışma dizini`: %{Document:Path}

  `Düzenleyici komutu`: git-blame

#### Kabuk Betiği Çalıştır

Geçerli belgenin yürütüldüğü dış bir konsol başlatır. Betiğin ilk satırda yorumlayıcıyı bir shebang `#!/yorumlayıcı/yolu` aracılığıyla belirtmesi gerekir.

  `Ad`: Kabuk Betiği Çalıştır

  `Simge`: system-run

  `Yürütülebilir`: konsole

  `Argümanlar`: -e sh -c "cd %{Document:Path} && pwd && chmod -vc a+x %{Document:FileName} && ./%{Document:FileName} ; echo Sürdürmek için herhangi bir düğmeye basın… && read -n 1"

  `Kaydet`: Geçerli belge

  `Çalışma dizini`: %{Document:Path}

  `Düzenleyici komutu`: run-script

#### Seçili Metni Google ile Ara

Seçili metni Google ile arayın.

  `Ad`: Seçili Metni Google ile Ara

  `Simge`: globe

  `Yürütülebilir`: xdg-open

  `Argümanlar`: "https://www.google.com/search?q=%{Document:Selection:Text}"

  `Düzenleyici komutu`: google

#### UUID Ekle

Bu eylem her çağrıldığında yeni bir UUID ekler.

  `Ad`: UUID Ekle

  `Yürütülebilir`: echo

  `Argümanlar`: %{UUID}

  `Çıktı`: İmleç Konumunda Ekle

  `Düzenleyici komutu`: uuid

#### Tüm Dosyayı Clang Format’la

Diskteki geçerli dosyada clang-format’ı çalıştırır. Belge daha sonra yeniden yüklenir.

  `Ad`: Tüm Dosyayı Clang Format’la

  `Yürütülebilir`: clang-format

  `Argümanlar`: -i %{Document:FileName}

  `Çalışma dizini`: %{Document:Path}

  `Kaydet`: Geçerli belge

  `Yeniden yükle`: Evet

  `Düzenleyici komutu`: clang-format-file

#### Seçili Metni Clang Format’la

Geçerli belgedeki seçili metinde clang-format’ı çalıştırır.

  `Ad`: Seçili Metni Clang Format’la

  `Yürütülebilir`: clang-format

  `Argümanlar`: --assume-fileName: %{Document:FileName}

  `Çalışma dizini`: %{Document:Path}

  `Girdi`: %{Document:Selection:Text}

  `Çıktı`: Seçili Metni Değiştir

  `Düzenleyici komutu`: clang-format-selection

#### Qt Quick 2 Önizlemesi (qmlscene)

Geçerli qml dosyasını qmlscene’de önizler.

  `Ad`: Qt Quick 2 Önizlemesi (qmlscene)

  `Yürütülebilir`: qmlscene

  `Argümanlar`: %{Document:FileName}

  `Kaydet`: Geçerli belge

  `Çalışma dizini`: %{Document:Path}

  `Düzenleyici komutu`: qml-preview

#### Tüm Dosyayı JSON’la

Tüm JSON dosyasını biçimlendir.

  `Ad`: Tüm Dosyayı JSON’la

  `Simge`: application-json

  `Yürütülebilir`: jq

  `Argümanlar`: %{Document:FileName}

  `Kaydet`: Geçerli belge

  `Çalışma dizini`: %{Document:Path}

  `Çıktı`: Geçerli Belgeyi Değiştir

  `Düzenleyici komutu`: json-format-file

#### Tüm Dosyayı XML’le

Tüm XML dosyasını biçimlendir.

  `Ad`: Tam Boyutlu XML Biçimi

  `Simge`: application-xml

  `Yürütülebilir`: xmllint

  `Argümanlar`: --format %{Document:FileName}

  `Kaydet`: Geçerli belge

  `Çalışma dizini`: %{Document:Path}

  `Çıktı`: Geçerli Belgeyi Değiştir

  `Düzenleyici komutu`: xml-format-file

## Geri İz Tarayıcısı Eklentisi

### Geri İz Tarayıcısı Eklentisini Kullanmak

Bu eklenti geliştiricilere yöneliktir ve büyük olasılıkla düz kullanıcılar için pek kullanışlı değildir. &kate; araç görünümündeki liste görünümünde gdb tarafından sağlanan bir geri izi gösterir. Bir ögeye tıklamak seçili dosyayı açar ve doğru satır numarasına atlar. Hem kendi makinenizde oluşturulan geri izler hem de başkalarından gelen geri izler için de çalışır; yani `/home/dummy/qt-copy/…/qwidget.cpp` başka makinelerde de bulunur. Bunun çalışması için kaynak kodun bulunduğu dizinleri indekslemeniz gerekir.

Bazen aynı ada sahip birden çok dosya olabilir; &eg;,

- `kdegraphics/okular/generators/dvi/config.h`
- `kdepim-runtime/resources/gmail/saslplugin/config.h`

Doğru seçimi seçmek için eklenti &URL;’nin son iki bölümünü seçer; bu durumda bu şu şekilde olur:

- `dvi/config.h`
- `saslplugin/config.h`

Ve sonra genellikle eklenti doğru olanı bulur.

Ana dal ve diğer dalları indekslemek elbette bir çatışmaya yol açacaktır.

### Yapılandırma

Yapılandırma sayfasında kaynak kodunu içeren dizinleri ekleyin.

Geri İz Tarayıcısı
Geri iz tarayıcısı araç görünümünde yolları yapılandır

Tamam’a tıklamak indekslemeyi başlatır. İndeksleme bittiğinde Geri İz Tarayıcısı araç görünümünü açın.

Artık panodan (&eg;, &drkonqi;’de Panoya Kopyala’ya tıkladığınız zaman) veya bir dosyadan bir geri iz yükleyebilirsiniz.

Salma
Sultana
&TC.Hollingsworth; &TC.Hollingsworth.mail;

## Yapı Eklentisi

### Giriş

Yapı eklentisi, bir projede yapma, temizleme ve derleme gibi eylemleri çalıştırmanıza olanak tanır. Üretilen uygulamaları kendiliğinden de çalıştırabilirsiniz. Eklenti temel olarak size çalıştırılacak komut kümelerini yapılandırmanın bir yolunu sunar ve dosyalara ve bu dosyalardaki belirli satırlara ve sütunlara bağlantılar için çıktıyı ayrıştırabilir. Bu nedenle, eklenti başlangıçta C/C++ derlemek için oluşturulmuş ve çoğunlukla onunla sınanmış olsa bile, eklenti diğer amaçlar ve diller için de yararlı olabilir.

### Yapı eklentisini kullanmak

Yapı eklentisi, alt kısma bir Yapı araç görünümü ve menü çubuğuna bir Yapı menüsü ekler. Araç görünümü, yapı hedeflerini seçip yapılandırmak için ve menü/kısayollar ise yapılandırılan kabuk komutlarını seçip yürütmek için kullanılabilir.

Yapı Çıktısı

Yapı araç görünümünde iki durağan sekme vardır:

- Hedef Ayarları

- Çıktı

#### Hedef Ayarları sekmesi

Hedef ayarları sekmesi, çeşitli yapı hedefleri yapılandırmak ve hedef kümeleri tanımlamak için kullanılabilir.

Bir hedef küme, belirli bir çalışma dizininde çalıştırılabilecek bir komutlar grubudur. Hedef kümeler, Projeler veya Oturum altında eklenebilir. Projeler altında eklenen özel hedef kümeler, kök proje dizinindeki bir .kateproject.build dosyasında saklanır ve proje yeniden açıldığında geri yüklenir. Oturum altında eklenen hedef kümeler ise geçerli Kate oturumu yapılandırmasında depolanır.

Bir hedef kümedeki ilk satır, birinci sütundaki küme için bir ad içerir ve ikinci sütunda, komutların yürütülmesi gereken dizin bulunur. Aşağıdaki her satırda, birinci sütunda komut için bir ad, ikinci sütunda bir yapı komutu ve üçüncü sütunda bir çalıştırma komutu vardır. Bunlardan birini düzenlemek için girdiye çift tıklayın veya düzenleme kısayolunu kullanın (genellikle F2 olur).

Çalışma Dizini

  Bir hedef kümedeki ilk satırın ikinci sütunu, komutları derlemek ve çalıştırmak için kullanılan çalışma dizinini yapılandırmak için kullanılır. Proje eklentisi etkinleştirilirse çalışma dizini dizesi proje temel dizin yolu için yer tutucular da içerebilir: %B ve ad: %b

Yapı Komutu

  “İlk satır olmayan” satırlardaki ikinci sütun, çalışma dizininde çalıştırılacak kabuk komutunu içerir. Kabuk lafına dikkat edin. Herhangi bir kabuk komutu burada çalışabilir. Yapı komutu yer tutucular içerebilir. Geçerli dosya için %f, geçerli dosyanın dizini için %d ve geçerli dosyanın taban adı için %n (soneksiz dosya adı).

Çalıştırma Komutu

  “İlk satır olmayan” satırlardaki üçüncü sütun, hedef kümenin çalışma dizinindeki bir uçbirimde yürütülmek üzere bir kabuk komutu içerebilir. Uçbirim bir sekme olarak açılır. Eklenti, bir önceki uygulama çıkmış ve aynı komut yürütülürse uçbirim sekmesini yeniden kullanmaya çalışır.

Hedef Ayarları sekmesinin üst kısmında, bir hedef süzgeci ve aşağıdaki düğmeleri içeren bir araç çubuğu bulunur:

- Seçili hedefi yap
- Seçili hedefi yap ve çalıştır
- Yeni yapı hedefi ekle
- Yeni hedef kümesi oluştur
- Komutu veya hedef kümesini kopyala
- Geçerli hedefi veya hedef kümelerini sil

#### Çıktı sekmesi

Çıktı sekmesi, çalıştırma (yapı) komutu tarafından oluşturulan konsol çıktısını gösterir. Bir satır bir dosya konumu içeriyorsa bu satır tıklanabilir olacaktır. Çıktıdaki satır da bir hata veya uyarı gösteriyorsa çizgi farklı bir renge sahip olur.

Kate ayarlarının eklenti sayfasında Tanılara hataları ve uyarıları ekle etkinleştirilmişse hatalar ve uyarılar da tanı görünümüne eklenir. Tanı görünümünde bir önceki hataya gitmek için &Alt;&Shift;&Left;, bir sonraki hataya gitmek için &Alt;&Shift;&Right; kısayollarını kullanın.

### Menü Yapısı

Yapı Hedef Seç…

  Hedef seçim süzgeci, Hedef Ayarları sekmesine odaklanmıştır. Bir ad yazmak, yazılan diziyle eşleşmeyen hedefleri süzer. Hedef ağacında gezinmek için ok düğmelerini kullanmak da olanaklıdır. İstenen hedef seçildiğinde, Dönüş veya Giriş düğmelerine basmak seçilen hedefi yürütecek ve çalıştıracaktır.

Yapı Seçili Hedefi Yap

  Son seçilen hedefi yapar. Seçili hedef yoksa Hedef Seç… olarak çalışır.

Yapı Seçili Hedefi Yap ve Çalıştır

  Son seçilen hedefi yapar ve derleme komutu başarıyla tamamlandıktan sonra çalıştır komutunu çalıştırır.

Yapı Geçerli Dosyayı Derle

  Olası bir compile_commands.json içinde bir komut arayarak geçerli dosyayı derlemeyi deneyin.

Yapı Durdur

  Bir hedefi yapmayı durdurun.

Yapı Sonraki Sekmeyi Sola Odakla

  Bir sonraki yapı eklentisi sekmesini sola odaklayın; gizliyse yapı eklentisi araç görünümünü açın.

Yapı Sonraki Sekmeyi Sağa Odakla

  Bir sonraki yapı eklentisi sekmesini sağa odaklayın; gizliyse yapı eklentisi araç görünümünü açın.

Yapı CMake Yapı Dizininden Hedefler Yükle

  Dosya iletişim kutusunu açar ve kullanıcının bir CMakeCache.txt seçmesine olanak tanır. Bir dosya seçildiğinde, eklenti CMake tabanlı proje için olan yapı dizininde yürütülebilecek CMake yapı komutu hedefleri üretir.

### Teşekkürler ve Destek Olanlar

&kate; Yapı Eklentisi, Kåre Särs tarafından yazıldı.

Bu bölümün çoğunu yazdığı için Google Code-In 2011 katılımcısı Salma Sultana’ya özellikle teşekkür ederiz.

## Dışındakileri/Benzerleri Kapat Eklentisi

### Giriş

Bu eklenti, bir grup belgeyi uzantılarına ve yollarına göre kapatmanıza olanak tanır.

### Dışındakileri/Benzerleri Kapat eklentisini kullanmak

&kate;’de aşağıdaki belgeleri açtığınızı varsayalım:

- /tmp/subfolder/test.h
- /tmp/test.cpp
- /tmp/test.txt

Ardından, ekran görüntüsünde gösterildiği gibi belgeleri kapatmak için aşağıdaki seçeneklere sahipsiniz:

Dışındakileri Kapat

Onay iletişim kutusunu etkinleştirmek veya devre dışı bırakmak için listenin son ögesindeki onay kutusunu kullanın. Seçili seçenek her iki kapatma işlemine de uygulanacaktır.

### Menü Yapısı

Dosya Dışındakileri Kapat

  Alt menüden seçili yol veya dosya uzantısıyla eşleşenler dışındaki tüm açık belgeleri kapatın.

Dosya Benzerleri Kapat

  Alt menüden seçili yol veya dosya uzantısıyla eşleşen tüm açık belgeleri kapatın.

## Renk Seçicisi Eklentisi

### Giriş

Bu eklenti, metindeki renklere satır içi renk önizlemesi/seçicisi ekler (&eg;, `#FFFFFF`, `white`).

Bu eklentiyi yüklemek için Ayarlar &kate; Uygulamasını Yapılandır… altından &kate;’in yapılandırma iletişim kutusunu açın. Sonrasında, Renk Seçicisi’ni seçin ve iletişim kutusunu kapatın.

### Yapılandırma

&kate;’in yapılandırmasındaki Renk Seçicisi ayarları sayfasında eklenti davranışının aşağıdaki seçeneklerini yapılandırabilirsiniz.

Bilinen renkler için önizlemeyi göster

  Bilinen renk adları için renk seçicinin gösterilip gösterilmeyeceği (&eg;, `skyblue`). Renk listesi için bu sayfaya bakın.

Metin renginden sonra önizlemeyi getir

  Satır içi önizlemenin metinde metin renginden sonra gelip gelmeyeceği.

Onaltılı renk eşleşmesi

  Burada kodunuzda kullanılan renklere en uygun olanı seçebilirsiniz.

## Renkli Ayraçlar

### Giriş

Okunabilirliği artırmak için farklı renklerdeki ayraç çiftleriyle eşleşen renkli ayraç eklentisi. Ancak tüm ayraçlar renklendirilmez. Eşleşen açıcısı veya kapatıcısı görünmeyen bir ayraç dikkate alınmayacaktır. Benzer şekilde, bir çizgideki tek ayraç çifti olan ayraç çifti renklendirilmez.

### Yapılandırma

Bu eklenti, herhangi bir yapılandırma seçeneği sunmaz.

## CTags Eklentisi

### Giriş

CTags, &kate;’deki bu eklentiyi kullanarak kaynak dosyalardaki ögelerin kolaylıkla bulunabilmesini sağlayan bir dil nesneleri indeksi (veya etiketi) üretir.

Etiket, bir dizin girdisinin kullanılabilir olduğu bir dil nesnesini (veya alternatif olarak o nesne için oluşturulan dizin girdisini) belirtir.

Etiket üretimi, bu programlama dilleri için desteklenir.

### Yapılandırma

CTags eklentisi, indeksleme için iki farklı veri tabanı dosyası kullanır.

&kate;’in yapılandırmasındaki CTags ayarları sayfasında, kaynak kodunu içeren dizinleri ekleyebilir veya kaldırabilir ve ortak CTags veri tabanını yeniden oluşturabilirsiniz.

#### Genel İndeks

CTags Ayarları
CTags Genel Veri Tabanını Yapılandır

Ayarlar sayfasının alt kısmında CTags komutunu uyarlayabilirsiniz.

Kullanılabilir tüm seçenekler için lütfen CTags man sayfasını okuyun. Bu man sayfasına &khelpcenter; içinden erişilebilir veya man:/ctags &URL;’sini doğrudan &konqueror;’a girebilirsiniz.

Güncelle’ye tıklamak indekslemeyi başlatacaktır. Dizin oluşturma tamamlandığında iletişim kutusunu kapatın.

#### Oturum İndeksi

Oturum indeksini yapılandırmak için CTags görünümünü açın.

İndeksleme Hedefleri

  Bu sekmede kaynak kodunu içeren dizinleri ekleyebilir veya kaldırabilir ve oturuma özel CTags veri tabanını elle yeniden üretebilirsiniz.

Veri Tabanı
  Veri Tabanı Ayarları
  Ctags Oturum Veri Tabanını Yapılandır

  Başka bir CTags veri tabanı dosyası seçin, CTags komutunu yapılandırın veya öntanımlı komuta geri dönün.

### CTags Eklentisini kullanmak

Fare imlecini ilgilendiğiniz işlev, sembol vb. dil nesnesinin üzerine yerleştirirsiniz ve ardından nesnenin tanımlandığı veya beyan edildiği satıra ve dosyaya geçmek için CTags menüsündeki eylemlerden birini seçersiniz.

Öntanımlı olarak, CTags menüsündeki eylemlerde atanan klavye kısayolları yoktur. Kendi kısayollarınızı yapılandırmak için klavye kısayolları düzenleyicisini kullanın.

Alternatif olarak CTags görünümünün Arama sekmesindeki arama alanını kullanın.

Arama alanına karakterlerin girilmesi, aramayı başlatacak ve işlevler, sınıflar, semboller vb. gibi dil nesnelerinin eşleşen adlarını tür ve dosya adıyla birlikte görüntüleyecektir.

Kaynak dosyadaki ilgili satıra atlamak için listeden bir öge seçin.

### Menü Yapısı

CTags Bir Adım Geri Git

  Geçmişte ziyaret edilen son etikete geri dönün.

CTags Geçerli Metni Ara

  CTags görünümünün Arama sekmesini açar ve listedeki geçerli metin seçimiyle eşleşen tüm dil nesnelerini görüntüler.

CTags Beyana Git

  İmleç bir tanım nesnesinin içindeyse bu, gerekirse karşılık gelen beyanı içeren belgeyi açar, görünümünü etkinleştirir ve imleci beyanın başlangıcına yerleştirir.

CTags Tanıma Git

  İmleç bir beyan nesnesinin içindeyse bu, gerekirse karşılık gelen tanımı içeren belgeyi açar, görünümünü etkinleştirir ve imleci tanımın başlangıcına yerleştirir.

## Belge Önizlemesi Eklentisi

### Giriş

Eklenti, halihazırda düzenlenen metin belgesinin kenar çubuğunda son biçiminin canlı önizlemesini sağlar. Örneğin, bir &Markdown; metni veya &SVG; görseli düzenlerken, çıktı, kaynak metnin yanında anında görünür.

Görüntüleme için eklenti, şu anda belgenin &MIME; türü için tercih edilen olarak seçili &kparts; eklentisini kullanır. Bu tür için &kparts; eklentisi yoksa önizleme olanaklı değildir.

Tercih edilen eklentiyi değiştirmek için &systemsettings; içindeki Dosya İlişkilendirmeleri modülünü açın ve Gömme sekmesindeki Hizmetler Tercih Sırası bölümünü düzenleyin.

#### Bazı kullanılabilir &kparts; eklentileri

&MIME; türü | &kparts; eklentisi
&Markdown; metni | KMarkdownWebViewPart veya OkularPart
&SVG; görseli | SVGPart
&Qt; UI dosyaları | KUIViewerPart
&DOT; grafik dosyaları | KGraphviewerPart

### Menü Yapısı

Görünüm Araç Görünümleri Önizleme

  Kenar çubuğunda, &kate;’in belge önizlemesinin görüntülenmesini açar/kapatır.

### Arayüz

Önizleme penceresinin üstündeki düğmeler şu eylemleri sağlar:

- Önizlemeyi belirli bir belgeye kilitleyin. Bu seçeneğin seçilmesi, odağın aynı &kate; penceresindeki başka bir belgenin görünümüne değiştirilmesi durumunda önizlemenin o belgeyi takip etmemesini; ancak bu belgenin önizlemesini sürdürmesini sağlar.

- Geçerli belge içeriğinin önizlemesinin güncellemelerini etkinleştir veya devre dışı bırak

- Geçerli belge içeriğinin önizlemesini elle güncelle

- &kparts; eklentisindeki işlemleri içeren bir açılır menü

## Belge Değiştiricisi Eklentisi

### Menü Yapısı

&Ctrl;&Tab; Görünüm Son Kullanılan Görünümler
&Ctrl;&Shift;&Tab; Görünüm Son Kullanılan Görünümler (Ters)

  Son görüntülenen belgeleri içeren bir liste açar:

  Son Görüntülenen Belgeler

  Listede ilerlemek için &Ctrl; düğmesini basılı tutun ve &Tab; düğmesine basın. Ayrıca yönü tersine çevirmek için &Shift; düğmesini kullanın.

  Listede dolaşmak için &Ctrl;&Tab; kısayolunu basılı tutarken &Up;, &Down;, &Home; veya &End; düğmelerine basın. Bir karakter düğmesine art arda basıldığında, listedeki ilk eşleşen tüm ögeler arasında geçiş yapılır. Kısayol düğmelerini bırakırsanız görünüm, listede seçilen belgeye geçiş yapar.

## Dosya Sistemi Tarayıcısı

Dosya Sistemi Tarayıcısı, geçerli çerçevede görüntülenen bir klasördeki dosyaları açmanıza olanak tanıyan bir klasör görüntüleyicisidir.

### Menü Yapısı

Görünüm Araç Görünümleri Dosya Sistemi

  &kate;’in Dosya Sistemi Tarayıcısı’nın görüntülenmesini açar/kapatır.

### Arayüz

Yukarıdan aşağıya doğru, Dosya Sistemi Tarayıcısı aşağıdaki ögelerden oluşur:

Bir Araç Çubuğu

  Bu, standart dolaşım aracı düğmelerini içerir:

  Geri

    Klasör görünümünün geçmişte daha önce görüntülenen klasöre `cd` yapmasına neden olur. Önceki öge yoksa bu düğme devre dışı bırakılır.

  İleri

    Klasör görünümünün geçmişteki sonraki klasöre `cd` yapmasına neden olur. Sonraki öge yoksa bu düğme devre dışı bırakılır.

  Yer İmleri

    Yer imlerini düzenlemek veya eklemek ve yeni bir yer imi klasörü eklemek için bir alt menü açar.

  Geçerli Belge Klasörü

    Bu düğme, klasör görünümünün olanaklıysa o anda etkin olan belgenin klasörüne `cd` yapmasını sağlar. Etkin belge yeni kaydedilmemiş bir dosyaysa veya içinde bulunduğu klasör belirlenemiyorsa bu düğme devre dışı bırakılır.

  Seçenekler
    Kısa Görünüm

      Yalnızca dosya adlarını görüntüler.

    Ayrıntılı Görünüm

      Dosyaların; Ad, Tarih ve Boyutu özelliklerini görüntüler.

    Ağaç Görünümü

      Kısa Görünüm gibi; ancak klasörler içeriklerini görüntülemek için genişletilebilir.

    Ayrıntılı Ağaç Görünümü

      Bu aynı zamanda klasörlerin genişletilmesine de olanak tanır; ancak Ayrıntılı Görünüm’de kullanılabilir olan ek sütunları görüntüler.

    Gizli Dosyaları Göster

      Normalde &OS; tarafından gizlenen belgeleri görüntüler.

    Geçerli belge ile kendiliğinden eşzamanla

      Bu seçenek etkinleştirildiğinde, dosya sistemi tarayıcısı her değişiklikte kendiliğinden düzenleme alanında açık olan belgenin klasörüne `cd` yapar.

Bir Konum Girdisi

  Bu, &dolphin;’e benzer şekilde, o anda açık olan klasöre yönelik bir ekmek kırıntısı dolaşımı görüntüler. Göz atmak için herhangi bir klasöre veya altındaki herhangi bir klasörü seçmek için klasörün solundaki oklardan birine tıklayabilirsiniz. Şu anki Yerinizi temsil eden bir simgeyi görüntüleyen ekmek kırıntısı dolaşımında en soldaki simgeyi tıklayarak da Yerler listenizden seçim yapabilirsiniz.

  Ayrıca, göz atılacak klasörün yolunu yazabileceğiniz bir metin kutusuna dönüştürmek için ekmek kırıntılarının sağına da tıklayabilirsiniz. &URL; girdisi, önceden yazılan yolların bir listesini tutar. Birini seçmek için girdinin sağındaki ok düğmesini kullanın.

  &URL; girdisinde klasör kendiliğinden tamamlama özelliği vardır. Tamamlama yöntemi, metin girişinin &RMB; menüsü kullanılarak ayarlanabilir.

Bir Klasör Görünümü

  Bu, standart bir &kde; klasör görünümüdür.

Bir Süzgeç Girdisi

  Süzgeç girdisi, klasör görünümünde görüntülenen dosyalar için bir süzgeç girmenizi sağlar. Süzgeç, standart global ayarları kullanır; dizgiler boşlukla ayrılmalıdır. Örnek: `*.cpp *.h *.moc`

  Tüm dosyaları görüntülemek için tek bir `*` kullanın.

  Süzgeç girdisi, oturumlar arasında girilen son 10 süzgeci kaydeder. Birini kullanmak için girdinin sağındaki ok düğmesine basın ve istediğiniz süzgeç dizisini seçin. Kendiliğinden tamamlama ok düğmesinin solundaki Metni temizle düğmesine basarak süzgeci devre dışı bırakabilirsiniz.

### Yapılandırma

Bu eklenti, &kate; yapılandırmasının Dosya Sistemi Tarayıcısı sayfasında yapılandırılabilir.

Araç Çubuğu

  Etkinleştirilmesini istediğiniz düğmeleri Seçili Eylemler listesine taşıyarak Dosya Sistemi Tarayıcısı araç çubuğundaki düğmeleri yapılandırın ve listenin yan tarafındaki ok düğmelerini kullanarak bunları sıralayın.

## Belgeler Listesi

### Giriş

Belgeler listesi, o anda &kate;’de açık olan tüm belgelerin bir listesini görüntüler. Değiştirilen dosyaların sol tarafında bu durumu belirtmek için küçük bir disket simgesi bulunur.

Belgeler listesinin üst kısmında aşağıdaki düğmeleri içeren bir araç çubuğu bulunur:

- Yeni belge oluştur
- Var olan bir belgeyi aç
- Önceki Belge
- Sonraki Belge
- Geçerli belgeyi kaydet
- Geçerli belgeyi yeni bir adla kaydet

Öntanımlı olarak Belgeler Listesi, o anda açık olan tüm belgeleri çevreleyen klasör yapısını görüntüleyen Ağaç Kipi’nde görünür. Ayrıca tüm açık belgelerin basit bir listesini görüntüleyen Liste Kipi de kullanılabilir. Listeye sağ tıklayıp Görüntüleme Kipi menüsünden seçim yaparak kipleri değiştirebilirsiniz.

Liste Kipi’nde farklı klasörlerde bulunan aynı adlı iki dosya açıksa ikinci dosyanın adının sonuna (2) ve artan sayılar iliştirilecektir. Dosyanın araç ipucu, yol da içerilmek üzere tam adını görüntüleyecek ve istediğiniz dosyayı seçmenize olanak tanıyacaktır.

Bir belgeyi o anda etkin olan çerçevede görüntülemek için listedeki belge adına tıklayın.

Bağlam menüsünde Dosya menüsündeki bazı ortak işlemler bulunur.

Ayrıca dosyayı yeniden adlandırmak veya silmek için dosya yöneticisi eylemleri vardır. Konumu Kopyala ile belgenin tam yolunu panoya kopyalayabilirsiniz.

Listeye sağ tıklayıp Şuna Göre Sırala menüsünden seçim yaparak listeyi birkaç farklı şekilde sıralayabilirsiniz. Seçenekler şunlardır:

Belge Adı

  Belgeleri adlarına göre abecesel olarak listeler.

Belge Yolu

  Belgeleri yollarına göre abecesel olarak listeler.

Açma Sırası

  Belgeleri açılış sıralarına göre listeler.

Belge listesi öntanımlı olarak, en yeni belgelerin girdilerini bir arka plan rengiyle gölgeleyerek geçmişinizi görselleştirecektir. Belge düzenlenmişse fazladan bir renk eklenir. En yeni belge en güçlü renge sahiptir, böylece üzerinde çalıştığınız belgeleri kolayca bulabilirsiniz. Bu özellik, yapılandırma iletişim kutusunun Belgeler sayfasında devre dışı bırakılabilir.

&kate; penceresindeki belge listesinin öntanımlı konumu düzenleme alanının soludur.

### Menü Yapısı

&Alt;&Up; Görünüm Önceki Belge

  Belgeler listesinde o anda açık olan belgenin üzerinde görüntülenen belgeyi açar.

&Alt;&Down; Görünüm Sonraki Belge

  Belgeler listesinde o anda açık olan belgenin altında görüntülenen belgeyi açar.

Görünüm Etkin Belgeyi Göster

  Şu anda açık olan belgeyi Belgeler listesinde görüntüler.

### Yapılandırma

Arka Plan Gölgelendirme

  Bu bölüm, son etkinliğinizin arka plan gölgelendirme görselleştirmesini etkinleştirmenize veya devre dışı bırakmanıza ve etkinleştirildiğinde hangi renklerin kullanılacağını seçmenize olanak tanır.

Şuna Göre Sırala

  Belge listesinin nasıl sıralanmasını istediğinizi ayarlayın. Bu, belge listesindeki &RMB; menüsünden de ayarlanabilir.

Görüntüleme Kipi

  Bu, Belgeler aracı görünümünün görüntülenmesini etkileyen iki seçenek sunar. Ağaç Görünümü seçeneği, belgeleri bulundukları klasörlerin altındaki bir ağaçta görüntülerken, Liste Görünümü seçeneği belgelerin düz bir listesini görüntüler.

Tam Yolu Göster

  Ağaç Görünümü ve bu seçenek etkinleştirildiğinde, Belgeler aracı görünümünde görüntülenen klasör girdileri, klasörün adına ek olarak klasöre giden tam dosya sistemi yolunu da görüntüler. Liste Görünümü’nde hiçbir etkisi yoktur.

Araç Çubuğunu Göster

  Ağaç Görünümü ve bu seçenek etkinleştirildiğinde, belge listesinin üzerinde Kaydet gibi eylemlerin bulunduğu bir araç çubuğu görüntülenir. Araç çubuğunun gizlenmesi gerekiyorsa bu seçeneğin işaretini kaldırın.

Kapat Düğmesini Göster

  Bu seçenek etkinleştirildiğinde &kate;, fareyle üzerine gelindiğinde açılan belgeler için bir kapatma düğmesi gösterecektir.

Martin
Gergov
&TC.Hollingsworth; &TC.Hollingsworth.mail;

## &gdb; Eklentisi

### Giriş

&kate;’in &gdb; eklentisi, Debugger Adapter Protocol protokolünü destekleyen tüm hata ayıklayıcılar için basit bir ön yüz sunar. Bu, burada açıklandığı üzere GNU Project Debugger (GDB) yazılımını da içerir.

Öncesinde &gdb; kullanımı hakkında bilgi sahibi olmanız şiddetle önerilir. &gdb; kullanımı üzerine daha fazla bilgi için &gdb; web sitesini ziyaret edin.

&gdb; eklentisini, &kate; yapılandırmasının Eklentiler bölümünden etkinleştirebilirsiniz.

&gcc;/`g++` kullanarak derliyorsanız ``-ggdb`` komut satırı argümanını kullanmak isteyebilirsiniz.

Bu hazırlıklar tamamlandıktan sonra, kaynak dosyasını &kate; ile açın, “hata ayıklayıcı profilini” seçin; Hata Ayıklama Görünümü’nün Ayarlar sekmesini kullanarak yürütülebilirin yolunu girin ve menüden Hata Ayıklama Hata Ayıklamayı Başlat’ı seçerek başlayın.

“Hata ayıklayıcı profili”, kullanılacak DAP sunucusunu (örneğin GDB) ve bu sunucunun başlatılma şeklini seçer. Tipik bir durumda, sunucu yukarıda belirtildiği gibi bir işlem başlatır; ancak çalışan bir işleme de bağlanabilir (bu durumda, yürütülebilir dosya yerine bir PID belirtilmesi gerekecektir). Ayrıca, dile ve DAP sunucusuna özgü başka kipler da olabilir. Bununla ilgili ek arka plan ve yapılandırma ayrıntıları için daha sonraki bölümlere bakın.

### Menü ve Araç Çubuğu Yapısı

Bu seçeneklerin tümüne &kate;’in menülerinden ve çoğuna Hata Ayıklama araç çubuğundan da ulaşılabilir.

Görünüm Araç Görünümleri Hata Ayıklama

  &gdb; çıktısını, kullanılan &gdb; komut satırını ve diğer ayarları içeren bir araç görünümü gösterir.

Görünüm Araç Görünümleri Yereller ve Yığın

  Şu anda yüklü tüm değişkenleri, onların değerlerini ve bir &gdb; geri izini gösterir.

Hata Ayıklama Hedefler

  Hedeflerin (yürütülebilirlerin) bir listesini içeren bir alt menü.

Hata Ayıklama Hata Ayıklamayı Başlat

  &gdb;’yi bir hedef ile başlatır.

Hata Ayıklama Hata Ayıklamayı Öldür/Durdur

  &gdb;’yi durdurur.

Hata Ayıklama Hata Ayıklamayı Yeniden Başlat

  &gdb;’yi yeniden başlatır.

Hata Ayıklama Kesme Noktası-Kesme Ekle/Kaldır

  Geçerli imleç konumuna bir kesme noktası ekleyin/kaldırın.

Hata Ayıklama İçeri Gir

  Geçerli ifadeyi yürütün (işlev çağrısında hata ayıklama gerçekleştirilecek).

Hata Ayıklama Üzerinden Geç

  Geçerli ifadeyi yürütün (işlev çağrısında hata ayıklama gerçekleştirilmeyecek).

Hata Ayıklama Dışarı Çık

  Yürütme işlemi sonlanana kadar yürütmeyi sürdürür.

Hata Ayıklama Program Sayacını Taşı

  Program sayacını taşıyın (sonraki yürütme).

Hata Ayıklama İmlece Kadar Çalıştır

  Programı, geçerli imleç konumuna kadar çalıştırır.

Hata Ayıklama Sürdür

  Tüm kesme noktalarını yok sayar ve program sonlanana kadar onu yürütür (başarılı veya değil).

Hata Ayıklama Değeri Yazdır

  İmlecin şu anda işaret ettiği değişkenin değerini yazdırır.

Ayarlar Gösterilen Araç Çubukları Hata Ayıklama Eklentisi

  Hata ayıklama araç çubuğunu görüntüler.

### Hata Ayıklama Görünümü

Hata Ayıklama Görünümü araç çubuğu, çeşitli sekmelerden oluşur:

&gdb; Çıktısı

  &gdb; ve &gdb; komut satırından çıktılar içerir.

  Çıktı Sekmesi
  Çıktı sekmesi.

  Çıktı sekmesi, bir hata ayıklama oturumundan gelen çıktıyı görüntüler.

Ayarlar
  Yürütülebilir

    Hata ayıklama için hedef (yürütülebilir) yolu.

  Çalışma Dizini

    Hedefe sağlanan geçerli çalışma dizini.

  Argümanlar

    Programa geçirilen argümanlar.

  Odağı tut

    Odağı &gdb; komut satırında tutun.

  Girdi-Çıktı’yı Yeniden Yönlendir

    Hata Ayıklama Görünümü’nde, çıktıyı görebileceğiniz ve çalışan programa girdi sağlayabileceğiniz yeni bir Girdi-Çıktı sekmesi açar.

  Ayarlar iletişim kutusu
  Ayarlar iletişim kutusu

  Bir hata ayıklama oturumunun yapılandırmasını görüntüleyenAyarlar iletişim kutusu.

Girdi-Çıktı

  Çalışan programın çıktısını görüntüleyen bir alan ve bu programa girdi sağlayabileceğiniz bir komut satırı içerir.

  Girdi-Çıktı Sekmesi
  Girdi-Çıktı sekmesi.

  Girdi-Çıktı sekmesi, basit bir sınama programından çıktı görüntüler.

### Çağrı Yığını ve Yereller

Çağrı Yığını araç görünümü, &gdb;’den dönen biçimlendirilmiş bir geri iz listesi içerir.

&gdb; Çağrı Yığını Araç Görünümü
Çağrı Yığını araç görünümü.

&gdb; eklentisinin Çağrı Yığını araç görünümü.

Yereller araç görünümü, programdan o anda yüklü olan tüm değişkenlerin ve bunlara karşılık gelen değerlerin bir listesini içerir.

&gdb; Yereller Araç Görünümü
Yereller araç görünümü.

&gdb; eklentisinin Yereller araç görünümü.

### Teşekkürler ve Destek Olanlar

Bu bölümün çoğunu yazan Google Code-In 2011 katılımcısı Martin Gergov’a özellikle teşekkürler.

### Yapılandırma

Eklentinin yapılandırma sayfası, seçilebilecek “hata ayıklayıcı profillerini” tanımlar. Öntanımlı yapılandırma (JSON) burada gösterilir ve benzer biçimde kullanıcı tarafından sağlanan bir yapılandırmayla “üzerine ekleme” yapılabilir. Örnek bir alıntı aşağıdaki gibidir:

    {
        "dap": {
            "debugpy": {
                "url": "https://github.com/microsoft/debugpy",
                "run": {
                    "command": ["python", "-m", "debugpy", "--listen", "${#run.port}", "--wait-for-client"],
                    "port": 0,
                    "supportsSourceRequest": false
                },
                "configurations": {
                    "launch": {
                        "commandArgs": ["${file}", "${args|list}"],
                        "request": {
                            "command": "attach",
                            "stopOnEntry": true,
                            "redirectOutput": true
                        }
                    },
                    "attach": {
                        "commandArgs": ["--pid", "${pid}"],
                        "request": {
                            "command": "attach",
                            "stopOnEntry": true,
                            "redirectOutput": true
                        }
                    },
            },
            "gdb": {
                "url": "gdb",
                "run": {
                    "command": [
                        "gdb",
                        "-i",
                        "dap"
                    ],
                    "redirectStderr": true,
                    "redirectStdout": true,
                    "supportsSourceRequest": true
                },
                "configurations": {
                    "launch (debug)": {
                        "request": {
                            "command": "launch",
                            "mode": "debug",
                            "program": "${file}",
                            "args": "${args|list}",
                            "cwd": "${workdir}"
                        }
                    }
                }
            }
        }
    }

Düz `configurations` içindeki girdilerin her biri `runs` verisi ile kombine edilir ve bir “profil” oluşturur. Bu, başlatılacak DAP sunucusunu ve argümanlarını belirtir; argümanlar ise profile özgüdür (`commandArgs`). Diğer kısımlar ise DAP protokolü isteğini (`launch` veya `attach`) ve DAP’ye özgü uzantıları belirtir.

Elbette, belirtilen sunucunun kurulu olması gerekir (ve genellikle düzgün çalışması için `PATH` içinde de bulunmalıdır).

Çeşitli aşamalarda geçersiz kılma/birleştirme işlemleri uygulanır; kullanıcı yapılandırması (dosyadan yüklenir) (içsel) öntanımlı yapılandırmayı geçersiz kılar ve `.kateproject` proje yapılandırmasındaki “dap” girişi de sırayla geçersiz kılar.

#### Yürütme ortamı ayarı

Daha fazla arka plan bilgisi ve ayrıntı için aşağıdaki LSP İstemci Yürütme Ortamı bölümüne bakabilirsiniz. Ancak burada belirtmekte fayda var ki, hata ayıklanacak işlemi (ve DAP sunucusunu) “özel bir ortamda” çalıştırmak gerekebilir; bu ortam yalnızca çevre değişkenleri veya (doğru yürütme için gerekli bağımlılıkları ve koşulları sağlayan) bir kapsayıcı tarafından tanımlanabilir.

Başvurulan bölümdeki örneğe benzer şekilde, aşağıdaki yapılandırma bir `.kateproject` dosyasında sağlanabilir.

    {
        // bu ayrıca bir nesne dizilişi olabilir
        "exec": {
            "hostname": "foobar"
            // komut da ayrıca bir dizi dizilişi olabilir
            "prefix": "podman exec -i foobarcontainer",
            "mapRemoteRoot": true,
            "pathMappings": [
                // aşağıdaki biçimlerden herhangi bir kullanılabilir
                // daha otosihirli bir alternatif de vardır, başvurulan bölüme bakın
                [ "/dir/on/host", "/mounted/in/container" ]
                { "localRoot": "/local/dir", "remoteRoot": "/remote/dir" }
            ]
        },
        "dap": {
            "debugpy": {
                "run": {
                    // bu bölümde tüm yapılandırmalara uygulanabilir
                    // bu, yukarıdaki nesneyle eşleşir/katılır
                    "exec": { "hostname": "foobar" },
                    // sunucu bağlıysa isteğe bağlı olarak kesin kapıyı belirtin
                    // (uygunca yayımlanır/iletilir)
                    "port": 5678,
                    // sunucu, localhost'tan fazlasını kabul etmek zorunda kalabilir
                    "host": "0.0.0.0"
                }
            }
        }
    }

Ayrıntılar için ilgili bölüme başvurulmalıdır; ancak özünde `prefix`, başka bir yerde belirtilen DAP sunucu komut satırının önüne eklenecektir. Bunun etkisi, sunucunun belirtilen kapsayıcı içinde ve dolayısıyla başlatılan işlemin de çalıştırılmasıdır. `pathMapping`, örneğin kesme noktalarının ayarlanması veya bildirilen geri izlemelerin işlenmesiyle ilgili olarak, düzenleyicinin görünümü ile DAP sunucu (kapsayıcı) görünümü arasında dosya yollarının dönüştürülmesini sağlar. Bu tür bir eşlemenin isteğe bağlı olduğunu ve yararlı olup olmayacağını unutmayın. “Ana bilgisayar”da derlenen C/C++ koduyla uğraşırken, sembol bilgisi, diğer ortamda hiç bulunmayan ana bilgisayardaki kaynak dosyalarına referans verir. Bununla birlikte, diğer betik tabanlı (örneğin Python) durumlarda, gerçek çalışma zamanı dosyalarına (diğer ortamda) referans verilir.

Aşağıdaki her zaman akılda tutulmalıdır.

- DAP sunucusunun, hata ayıklayıcının düzgün çalışmasını destekleyecek şekilde yapılandırılmış (yani gerekirse ayrıcalıklı yeteneklere sahip) ortamda/kapsayıcıda bulunması gerekir.

- Düzenleyici ile DAP arasında iletişim olanaklı olmalıdır. Bir kapsayıcı söz konusu olduğunda, DAP ya ana bilgisayar ağını kullanmalı ya da yukarıdaki örnekte olduğu gibi ilgili yapılandırma kod parçacığıyla birlikte uygun bir eşlenmiş/yayınlanmış kapı sağlamalıdır (kapının 0 olması durumunda kendiliğinden seçilen kapı iletilemez).

- Belirtilen yürütülebilir dosya/PID, “kapsayıcı” perspektifinde olmalı, ayrıca (hata ayıklanacak yürütülebilir dosya) argümanları da aynı şekilde görünmelidir.

Ayrıca, LSP örneğinde olduğu gibi, bazı çevre değişkenleri ayarlanmıştır; `KATE_EXEC_PLUGIN` `dap`, `KATE_EXEC_SERVER` hata ayıklayıcı/dil türüne (örneğin, `python`) ve `KATE_EXEC_PROFILE` ise yapılandırma girdisine (örneğin, `launch`) ayarlıdır.

## Proje Eklentisi

### Giriş

Project eklentisinin temel fikri, aşağıdaki özelliklere sahip, projeye ait dosyaların yapılandırılmış bir listesine sahip olmaktır:

1. Dosyaların yapısal bir görünümünü sağla

2. Projeleri açmayı ve aralarında geçiş yapmayı kolay ve çok hızlı hale getir

3. Bir proje için aramayı ve değiştirmeyi destekle

4. Temel kendiliğinden tamamlama sağla

5. Projede tez dosya açmayı kolaylaştır

6. Projeyi derleme desteği sağla

### Dosyaların Yapısal Görünümü

Proje eklentisi &kate; yapılandırma sayfasına yüklendikten sonra, bir projede bir dosya açın; tüm projelerin yanı sıra proje dosyalarını da listeleyen bir kenar çubuğu aşağıdaki gibi görünür:

Proje Görünümü

Gördüğünüz gibi şu anda etkin olan proje Kate’tir ve içeriği ağaç görünümünde listelenmektedir. Ağaç görünümünde dosyalara tıklamak, dosyayı düzenleyicide açar. Ayrıca, Qt Designer ile `.ui` dosyası gibi dosyaları diğer uygulamalarla açabileceğiniz bir bağlam menüsü de sağlanır.

Aradığınız dosya adının bazı kısımlarını listenin alt kısmındaki arama çubuğuna yazarak ögeleri süzebilirsiniz.

### Projeler Arasında Geçiş Yapmak

Buradaki fikir hiçbir zaman bir projeyi elle açmak zorunda kalmamanızdır, hatta bu hiç desteklenmemektedir. Bu nedenle, bir dosyayı açtığınızda olan şey şudur; proje eklentisi tez klasörü ve onun üst klasörlerini bir `.kateproject` dosyası için tarar. Bulunursa proje kendiliğinden yüklenir.

Ayrıca &kate;’de başka bir projeye ait başka bir belge açarsanız proje eklentisi kendiliğinden geçerli projeye geçiş yapar. Yani sezgisel olarak her zaman doğru proje etkindir. Tabii ki, halihazırda etkin olan projeyi açılır kutuyu kullanarak da değiştirebilirsiniz.

### Projelerde Ara ve Değiştir

&kate;’in alt kenar çubuğunda görünen bir Ara ve Değiştir eklentisi vardır. Bir proje yüklüyse Ara ve Değiştir kenar çubuğunu açın ve geçerli projede arama ve değiştirme kipine geçin:

Projelerde Ara

### Temel Kendiliğinden Tamamlama

Bir projeye ait tüm dosyalar hakkında bilgi sahibi olan proje eklentisi, CTags’lere dayalı temel kendiliğinden tamamlama olanakları sağlar. Bir proje başlangıçta açılırsa CTags tüm proje dosyalarını bir arka plan iş parçacığında ayrıştırır ve CTags bilgisini `/tmp` dosyasına kaydeder. Bu dosya daha sonra &kate;’deki kendiliğinden tamamlama açılır penceresini doldurmak için kullanılır.

Bunun aksine, bu kendiliğinden tamamlama olmadan Kate yalnızca geçerli dosyadaki sözcüklere dayalı olarak kendiliğinden tamamlama ögelerini gösterebilir. Demeli ki, proje eklentisinin sağladığı kendiliğinden tamamlama çok daha güçlüdür.

Projelerde Tamamlama

CTags eksikse, pasif bir açılır pencere sizi bu konuda uyarır. &kate; çıktığında `/tmp` konumundaki CTags dosyası temizlenir, böylece eklenti, sisteminizi gereksiz dosyalarla kirletmez.

### Proje Derleme Desteği

Bir diğer özellik ise Yapı Eklentisi desteğidir; böylece kendiliğinden düzgünce yapılandırılır.

### Proje Oluşturmak

#### Projeleri Kendiliğinden Yüklemek

Proje eklentisinin kendiliğinden yükleme özelliği vardır. Dosya listesini sürüm denetim sisteminden okuyabilirsiniz. Bu amaçla, ilgili sürüm denetim sistemi için kendiliğinden yüklemenin ayarlarda etkinleştirilmesi gerekir (öntanımlı olarak etkindir):

Proje Eklentisi Yapılandırması

#### Projeleri Elle Oluşturmak

Yalnızca, projenizin kök klasöründe bir `.kateproject` dosyası oluşturmalısınız. Örneğin, Kate `.kateproject` dosyası şöyle görünür:

    {
      "name": "Kate",
      "files": [
        {
          "git": 1
        }
      ]
    }

Dosya içeriği, &JSON; sözdizimi ile yazılır. Proje adı Kate’dir ve içerdiği dosyalar &git; ile okunmalıdır.

`git` yerine, `svn` üzerinden Subversion ve `hg` üzerinden Mercurial da desteklenir. Dosyaları bir sürüm denetim sisteminden okumak istemiyorsanız Kate’i komut satırından şöyle çalıştırabilirsiniz:

    kate /klasöre/olan/yol

veya aşağıdaki gibi dosyaları klasörlerden özyineli olarak yüklemesini söyleyebilirsiniz:

    {
      "name": "Kate",
      "files": [
        {
          "directory": "kate",
          "filters": [
            "*.cpp",
            "*.h",
            "*.ui",
            "CMakeLists.txt",
            "Find*.cmake"
          ],
          "recursive": 1,
          "hidden": 1
        }
      ],
      "exclude_patterns" : [
        "^build/.*"
      ]
    }

Burada, alt klasörler ve süzgeçler neyin projenin bir parçası olduğunu tanımlar. Ayrıca süzgeçlere dayalı tanımları ve sürüm denetim sistemini aynı anda kullanabilirsiniz. `"hidden"` seçeneği 0 ise gizli dosyalar alınmaz. `"exclude_patterns"`, dosyaları ve klasörleri proje ağacından dışlamak için kullanılabilecek bir düzenli ifade dizgileri listesidir. Bu örnekte, kök düzeydeki `build` klasöründeki tüm dosyalar ve klasörler dışlanacaktır.

Yapım desteği eklemek istiyorsanız `.kateproject` dosyasını aşağıdaki gibi yazabilirsiniz:

    {
      "name": "Kate",
      "files": [
        {
          "git": 1
        }
      ],
      "build": {
        "directory": "build",
        "build": "make all",
        "clean": "make clean",
        "install": "make install",
        "targets": [
          {
            "name": "all",
            "build_cmd": "ninja"
            "run_cmd": "./bin/kate"
          },
          {
            "name": "kate",
            "build_cmd": "ninja kate-bin"
          }
        ]
      }
    }

Yukarıda belirtilen hedefler “Proje Eklenti Hedefleri” altındaki Yapı Eklentisi’nde görünür. `"targets"` dizilişi belirtilmişse `"build"`, `"clean"` ve `"install"` yok sayılır. Dizilişteki her bir öge bir hedef belirtir. `"name"`, hedefin adıdır; `"build_cmd"`, hedefi yapmak için kullanılır; `"run_cmd"`, hedefi çalıştırmak için kullanılır. Bunlardan en önemlisi, komutların yürütüleceği `"directory"`’dir.

Bir sürüm denetim sistemi tarafından izlenen bir `.kateproject` dosyanız varsa; ancak belirli bir çalışma alanın için olan yapılandırmada ayarlar yapmanız gerekiyorsa bu değişiklikleri `.kateproject.local` adındaki başka bir dosyaya kaydedebilirsiniz. Bu dosyanın içeriğine `.kateproject` dosyasına kıyasla öncelik verilir.

### Geçerli Proje

&Alt;1 Projeler Git menüsünü kullanarak, düzenleyici penceresinin altında dört adet sekmeyle görünecek olan Geçerli Proje görünümünü açabilirsiniz:

Geçerli Proje

Uçbirim Paneli

  Projenin kök klasöründe başlayan bir Uçbirim Öykünücüsü.

Kod İndeksi

  Arama çubuğuna karakterlerin girilmesi, aramayı başlatacak ve tür, dosya adı ve satır numarasıyla birlikte işlevlerin, sınıfların, sembollerin vb. eşleşen adlarını görüntüleyecektir.

  Kaynak dosyadaki ilgili satıra atlamak için listeden bir öge seçin.

Kod Çözümlemesi

  C ve C++ için `cppcheck` kullanarak bir durağan kod çözümlemesi başlatmak için Çözümlemeyi Başlat’a tıklayın. Bu; dosya adı, satır numarası, öncelik (biçem, uyarı vb.) ve bulunan sorunu görüntüleyecektir.

  Kaynak dosyadaki ilgili satıra atlamak için listeden bir öge seçin.

Notlar

  Bu sekmeye girilen metin `.kateproject.notes` dosyasına kaydedilir.

### Projeler Menüsü

Projeler menüsü, şu anda açık olan projeler arasında geçiş yapmanızı sağlar. Proje eklentisi tarafından görüntülenir.

&Ctrl;&Alt;&Left; Projeler Geri

  Önceki projeye geçin.

&Ctrl;&Alt;&Right; Projeler İleri

  Sonraki projeye geçin.

&Alt;1 Projeler Git

  Düzenleyici penceresinin alt kısmındaki Geçerli Proje görünümünü açın.

## LSP İstemcisi Eklentisi

Dil Sunucusu Protokolü tabanlı bir özellik olan LSP İstemcisi eklentisi; kod tamamlama, kod dolaşımı veya başvuru bulma gibi birçok dil özelliği sağlar.

Eklenti sayfasında LSP İstemcisini etkinleştirdiğinizde, &kate; yapılandırma iletişim kutusunda LSP İstemcisi adında yeni bir sayfa görünecektir.

### Menü Yapısı

Uygun olması halinde, aşağıdaki açıklamada karşılık gelen bir LSP komutundan da söz edilmektedir; bunun belgelendirmesi daha sonra ek arka plan ve yorum sağlayabilir; ancak gerçek dile bağlı olarak değişiklik gösterebilir. “Geçerli Sembol” ifadesi, dil ve sunucu uygulaması tarafından belirlenen geçerli imleç konumuna karşılık gelen simgeyi ifade eder.

LSP İstemcisi Tanıma Git

  [textDocument/definition] Geçerli sembolün tanımına gidin.

LSP İstemcisi Beyana Git

  [textDocument/declaration] Geçerli sembolün beyanına gidin.

LSP İstemcisi Tür Tanımına Git

  [textDocument/typeDefinition] Geçerli sembolün tür tanımına gidin.

LSP İstemcisi Başvuruları Bul

  [textDocument/references] Geçerli sembole olan başvuruları bulun.

LSP İstemcisi Uygulama Noktalarını Bul

  [textDocument/implementation] Geçerli sembolün uygulandığı noktaları bulun.

LSP İstemcisi Vurgula

  [textDocument/documentHighlight] Geçerli belgede geçerli sembol başvurularını vurgulayın.

LSP İstemcisi Üzerine Gelince Bilgi Göster

  [textDocument/hover] Geçerli sembol için üzerine gelinince gösterilen bilgi.

LSP İstemcisi Biçimlendir

  [textDocument/formatting] [textDocument/rangeFormatting] Geçerli belgeyi veya seçimi biçimlendirin.

LSP İstemcisi Yeniden Adlandır

  [textDocument/rename] Geçerli sembolü yeniden adlandırın.

LSP İstemcisi Tez Düzelt

  [textDocument/codeAction, workspace/executeCommand] Geçerli konumda (veya satırda) tanılama için tez bir düzeltmeyi hesaplar ve uygular.

LSP İstemcisi Seçili Tamamlama Belgelendirmesini Göster

  Tamamlama listesinde seçili bir ögeye ilişkin belgeleri gösterin.

LSP İstemcisi Kendiliğinden Tamamlamalı İmza Yardımını Etkinleştir

  Ayrıca tamamlanma listesinde imza yardımını da gösterin.

LSP İstemcisi Başvurularda Beyanları İçer

  Başvuru isterken bir sembolün beyanını ekleme talebi.

LSP İstemcisi İşlev Tamamlamasında Ayraçlar Ekle

  Bir işlevin tamamlanmasından sonra kendiliğinden bir çift ayraç ekleyin.

LSP İstemcisi Üzerine Gelince Bilgi Göster

  (Fare imleci) üzerine geldiğinden bilgi göster. Bu ayardan bağımsız olarak istek her zaman elle başlatılabilir.

LSP İstemcisi Yazarken Biçimlendir

  [document/onTypeFormatting] Belirli tetikleyici karakterleri yazarken belgenin bölümlerini biçimlendirin. Örneğin bu, yeni satıra girintileme uygulayabilir veya LSP Sunucusu tarafından başka şekilde belirlenebilir. Düzenleyici girintileme betiklerinin (kipe bağlı olarak) aynı şeyi yapmaya çalışıyor olabileceğini ve bu nedenle her ikisinin de aynı anda etkinleştirilmesinin önerilmeyebileceğini unutmayın.

LSP İstemcisi Artımlı Belge Eşzamanlaması

  Sunucuyu güncellemek için belge metninin tamamı yerine (destekleniyorsa) kısımsal belge düzenlemeleri gönderin.

LSP İstemcisi goto Konumunu Vurgula

  Bir konuma (tanım, beyan vb.) gittikten sonra geçici bir görsel işaret sağlayın.

LSP İstemcisi Tanı Bildirimlerini Göster

  [textDocument/publishDiagnostics] Sunucu tarafından gönderilen tanı bildirimlerini işleyin ve gösterin.

LSP İstemcisi Tanı Vurgulamalarını Göster

  Tanıda belirtilen erimler için metin vurguları ekleyin.

LSP İstemcisi Tanı İmlerini Göster

  Tanıda belirtilen satırlar için belge imleri ekleyin.

LSP İstemcisi Tanı Sekmesine Geç

  Eklenti araç görünümündeki tanı sekmesine geçin.

LSP İstemcisi Tanı Olmayan Tüm Sekmeleri Kapat

  Eklenti araç görünümündeki tüm tanı olmayan sekmeleri (örneğin, başvurular) kapatın.

LSP İstemcisi LSP Sunucusunu Yeniden Başlat

  Geçerli belgenin LSP sunucusunu yeniden başlatın.

LSP İstemcisi Tüm LSP Sunucularını Yeniden Başlat

  Tüm LSP sunucularını durdurun. Gerektiğinde yeniden başlatılacaklardır.

### Goto Sembolü Desteği

LSP İstemcisi, projenizdeki veya geçerli dosyanızdaki herhangi bir sembole atlamanıza yardımcı olabilir. Dosyadaki herhangi bir sembole atlamak için Kate’in sağ kenarındaki “LSP İstemcisi Sembolü Ana Hattı” araç görünümünü kullanın. Bu araç görünümü, sunucu tarafından geçerli belgede bulunan tüm sembolleri listeler.

#### LSP İstemcisi Sembolü Ana Hattı

Öntanımlı olarak semboller belgedeki oluşumlarına göre sıralanır; ancak sıralamayı abecesel olacak biçimde değiştirebilirsiniz. Bunu yapmak için araç görünümüne sağ tıklayın ve “Abecesel Olarak Sırala” seçeneğini işaretleyin.

Araç görünümü, sembolleri öntanımlı olarak ağaç kipinde gösterir; ancak bağlam menüsünü kullanarak bunu bir listeye değiştirebilirsiniz.

#### Global Goto sembolü desteği

Projenizdeki herhangi bir sembole atlamak için goto sembolü iletişim kutusunu &Ctrl;&Alt;p. kullanarak açabilirsiniz. İletişim kutusu açıldığında boştur; ancak bir şey yazdığınız anda iletişim kutusu size eşleşen sembolleri göstermeye başlayacaktır. Eşleşmelerin kalitesi ve süzme yetenekleri kullandığınız sunucuya bağlıdır. Örneğin, clangd bulanık süzmeyi destekler; ancak diğer bazı sunucular desteklemeyebilir.

### Diğer Özellikler

Clangd kaynak üstbilgisini değiştirme komutu desteklenir. Bir C veya C++ projesinde kaynak üstbilgisini değiştirmek için bağlam menüsündeki “Kaynak Üstbilgisini Değiştir” seçeneğini veya F12 kısayolunu kullanın.

Farenizi bir sembolün üzerine getirip &Ctrl; + sol fare düğmesini kullanarak herhangi bir sembole kolaylıkla atlayabilirsiniz.

### Yapılandırma

Eklentinin yapılandırma sayfası çoğunlukla yukarıdaki menü ögelerinin bazılarının kalıcı olarak yapılandırılmasına izin verir. Ancak Sunucu Yapılandırması dosyasını belirtmek için ek bir girdi daha vardır. Bu, başlatılacak LSP sunucusunu belirtmek (ve ardından stdin/stdout üzerinden iletişim kurmak) için kullanılabilecek bir &JSON; dosyasıdır. Kolaylık sağlamak amacıyla, eklentinin yapılandırma sayfasında incelenebilecek bazı öntanımlı yapılandırmalar eklenmiştir. Aşağıdaki açıklamaya yardımcı olmak için burada bu yapılandırmadan bir alıntı verilmiştir:

    {
        "servers": {
            "bibtex": {
                "use": "latex",
                "highlightingModeRegex": "^BibTeX$"
            },
            "c": {
                "command": ["clangd", "-log=error", "--background-index"],
                "commandDebug": ["clangd", "-log=verbose", "--background-index"],
                "url": "https://clang.llvm.org/extra/clangd/",
                "highlightingModeRegex": "^(C|ANSI C89|Objective-C)$"
            },
            "cpp": {
                "use": "c",
                "highlightingModeRegex": "^(C\\+\\+|ISO C\\+\\+|Objective-C\\+\\+)$"
            },
            "d": {
                "command": ["dls", "--stdio"],
                "url": "https://github.com/d-language-server/dls",
                "highlightingModeRegex": "^D$"
            },
            "fortran": {
                "command": ["fortls"],
                "rootIndicationFileNames": [".fortls"],
                "url": "https://github.com/hansec/fortran-language-server",
                "highlightingModeRegex": "^Fortran.*$"
            },
            "javascript": {
                "command": ["typescript-language-server", "--stdio"],
                "rootIndicationFileNames": ["package.json", "package-lock.json"],
                "url": "https://github.com/theia-ide/typescript-language-server",
                "highlightingModeRegex": "^JavaScript.*$",
                "documentLanguageId": false
            },
            "latex": {
                "command": ["texlab"],
                "url": "https://texlab.netlify.com/",
                "highlightingModeRegex": "^LaTeX$"
            },
            "go": {
                "command": ["go-langserver"],
                "commandDebug": ["go-langserver", "-trace"],
                "url": "https://github.com/sourcegraph/go-langserver",
                "highlightingModeRegex": "^Go$"
            },
            "python": {
                "command": ["python3", "-m", "pyls", "--check-parent-process"],
                "url": "https://github.com/palantir/python-language-server",
                "highlightingModeRegex": "^Python$"
            },
            "rust": {
                "command": ["rls"],
                "path": ["%{ENV:HOME}/.cargo/bin", "%{ENV:USERPROFILE}/.cargo/bin"],
                "rootIndicationFileNames": ["Cargo.lock", "Cargo.toml"],
                "url": "https://github.com/rust-lang/rls",
                "highlightingModeRegex": "^Rust$"
            },
            "ocaml": {
                "command": ["ocamlmerlin-lsp"],
                "url": "https://github.com/ocaml/merlin",
                "highlightingModeRegex": "^Objective Caml.*$"
            }
        }
    }

Her “komutun” bir diziliş veya dizi olabileceğini unutmayın (bu durumda bir dizilişe bölünmüştür). Ayrıca, üst düzey bir “global” girdi (“server”ın yanında) da dikkate alınır (aşağıya bakınız). Belirtilen ikili dosya olağan şekilde aranır; örneğin, `PATH` kullanarak. Özel bir konuma kurulursa ikincisinin genişletilmesi gerekebilir. Veya alternatif olarak, olağan `PATH` içindeki bir konumda bir sembolik bağlantı veya bir sarmalayıcı betik kullanılabilir. Yukarıda gösterildiği gibi standart konumlardan sonra aranacak bir “yol” da belirtilebilir.

“command”, “root” ve “path” içindeki tüm girdiler değişken genişletmeye tabidir.

“highlightingModeRegex”, &kate; tarafından kullanılan vurgulama kipini sunucunun dil kimliğine eşlemek için kullanılır. Düzenli ifade verilmezse dil kimliğinin kendisi kullanılır. Bir “documentLanguageId” girişi false olarak ayarlanırsa belgeyi açarken sunucuya herhangi bir dil kimliği sağlanmaz. Bu, belge türünü belirlemede Kate kipine dayalı olarak yapmaktan daha hassas olan bazı sunucular için daha iyi sonuçlara sahip olabilir.

Yukarıdaki örnekte ana düşünce açıktır. Ek olarak, her sunucu girdi nesnesi, “initialize” yönteminin bir parçası olarak sunucuya iletilen bir “initializationOptions” girdisine de sahip olabilir. Varsa “workspace/didChangeConfiguration” bildirimi aracılığıyla sunucuya bir “settings” girdisi iletilir. “completionTriggerCharacters” veya “signatureTriggerCharacters” dizileri üyeleri “exclude” ve/veya “include” olan bir JSON nesnesi olarak belirtilebilir. Bunlar, sunucu tarafından sağlanan ilgili tetikleyici kümesine bazı karakterleri sırasıyla dışlamak veya eklemek için kullanılacaktır.

Üzerine yazma veya birleştirmenin çeşitli aşamaları uygulanır;

- kullanıcı yapılandırması (dosyadan yüklenen), öntanımlı (içsel) yapılandırmanın üzerine yazar

- `.kateproject` projesindeki “lspclient” girdisi, yukarıdakini geçersiz kılar

- sonuç olarak çıkan “global” girdisi, herhangi bir sunucu girdisini desteklemek (geçersiz kılmak değil) için kullanılır

(root, servertype) kombinasyonu başına bir sunucu örneği kullanılır. “root” mutlak yol olarak belirtilirse olduğu gibi kullanılır, aksi takdirde projectBase’e görelidir (Proje Eklentisi tarafından belirlendiği üzere) varsa veya belgenin dizinine göre değilse. Belirtilmemişse ve “rootIndicationFileNames” dosya adı olarak bir dizilişse bu tür bir dosyayı içeren geçerli belgenin ana dizini seçilir. Alternatif olarak, “root” belirtilmemişse ve “rootIndicationFilePatterns” bir dosya dizgileri dizilişiyse geçerli belgenin dosya dizgisiyle eşleşen bir üst dizini seçilir. Son çare olarak ana dizin “root” olarak seçilir. Herhangi bir belge için ortaya çıkan “root”, ayrı bir örneğin gerekli olup olmadığını belirler. Eğer öyleyse “root” rootUri/rootPath olarak iletilir.

Genel olarak, bir sunucu için o kadar da önemli olmadığından kökü belirtmeden bırakmanız önerilir (ancak sizin için aynı durum geçerli olmayabilir). Daha az sayıda sunucu örneği açıkça daha verimlidir ve aynı zamanda birçok ayrı örneğin görünümünden “daha geniş” bir görünüme sahiptirler.

Yukarıda belirtildiği gibi, çeşitli girdiler değişken genişlemeye tabidir. Bunun “sarmalayıcı betik” yaklaşımlarıyla birleştirilmiş uygun bir uygulaması, birçok duruma göre özelleştirmeye olanak tanır. Örneğin, her biri kendi virtualenv kurulumuna sahip birden fazla projeden (örn. git depoları) oluşan bir python geliştirme senaryosunu düşünün. Öntanımlı yapılandırma kullanıldığında python dil sunucusu sanal ortamdan haberdar olmayacaktır. Ancak aşağıdaki yaklaşımla bu sorun çözülebilir. İlk olarak, LSP İstemcisi eklentisinin “Kullanıcı Sunucu Ayarları”na aşağıdaki parça girilebilir:

    {
            "servers":
            {
                    "python":
                    {
                            "command": ["pylsp_in_env", "%{Project:NativePath}"],
                            "root": "."
                    }
            }
    }

Yukarıdaki kök girdisi proje dizinine bağlıdır ve her proje için ayrı bir dil sunucusunun başlatılmasını sağlar; bu durumda her birinin farklı bir sanal ortamı olması nedeniyle bu gereklidir.

`pylsp_in_env`, aşağıdaki içerikle (düzeltilmek üzere) `PATH`’e yerleştirilmesi gereken küçük bir “sarmalayıcı betik”tir:

    #!/bin/bash
    cd $1
    # sunucuyu (python-lsp-server) virtualenv içinde çalıştır
    # (demek oluyor ki virtualenv değişkenleri ayarıyla)
    # bundan dolayı virtualenv’i kaynakla
    source XYZ
    # sunucu durumu veya argümanlar değişebilir
    exec myserver

Bu, aşağıda Yürütme ortamı bölümünde özetlendiği gibi biraz daha rahat bir şekilde ele alınabilecek daha genel bir modelin yalnızca bir örneğidir.

#### LSP Sunucusu Yapılandırması

Her bir LSP sunucusunun kendi özelleştirme yolları vardır ve yapılandırma için dile/araca özel yöntemler kullanabilirler; örneğin, Python için `tox.ini`, C++ tarzı biçimlendirme için `.clang-format`. Bu tür yapılandırmalar başka (LSP olmayan) araçlar için de kullanılabilirler (tox veya clang-format gibi). Bunun üzerine, bazı LSP sunucuları ayrıca özel dosyalardan da yapılandırma yükleyebilirler (&eg;, `.ccls`). Dahası, özel sunucu yapılandırmaları ayrıca LSP (protokol) üzerinden de geçirilebilirler; sunucu yapılandırmasında yukarıda belirtilen “initializationOptions” ve “settings” girdilerine bakın.

Çeşitli düzeylerde geçersiz kılma/birleştirme uygulandığından, aşağıdaki kullanıcı tarafından belirlenen istemci yapılandırması örneği, bazı python dili sunucusu yapılandırmasında ince ayarlar yapar.

    {
        "servers": {
            "python": {
                "settings": {
                    "pyls": {
                        "plugins": {
                            "pylint": {
                                "enable": true
                            }
                        }
                    }
                }
            }
        }
    }

Ne yazık ki, LSP sunucusu yapılandırması/özelleştirmesi çoğu zaman o kadar iyi belgelenmemiştir; yalnızca kaynak kodunun incelenmesi, yapılandırma yaklaşımlarını ve kullanılabilir yapılandırma seçenekleri kümesini gösterir. Özellikle yukarıdaki örneğin sunucusu “settings” içinde çok daha fazla seçeneği desteklemektedir. Kolayca değiştirilebilen diğer çeşitli dil sunucusu örnekleri ve ilgili ayarlar için burada kullanılan ve yukarıda özetlenen JSON yapılandırmasına dönüştürülen başka bir LSP istemcisinin belgelerine bakın.

#### LSP Sunucusu Kaydederken Biçimlendirme

Yapılandırma iletişim kutusunda “Kaydederken biçimlendir” özelliğini LSP ayarlarından etkinleştirebilirsiniz.

#### LSP Sunucusu Tanı Susturması

Pek kullanışlı olmayan tanıların bildirilmesi olanaklıdır. Bu, özellikle de çok sayıda varsa (çoğunlukla aynı türden) oldukça zahmetli olabilir. Bazı durumlarda bu, dile (sunucuya) özgü yöntemlerle değiştirilebilir. Örneğin, clangd yapılandırma mekanizması bazı tanı hususlarında ince ayarlar yapılmasına olanak tanır. Ancak genel olarak bunun nasıl yapılacağı her zaman açık olmayabilir veya sunucu sınırlamaları veya hata nedeniyle istenilen şekillerde hiç olanaklı olmayabilir.

Bu nedenle eklenti; örneğin, valgrind susturmaları. En ayrıntılı yapılandırma, (birleştirilmiş) &JSON; yapılandırmasındaki “suppressions” anahtarında sağlanabilir.

    {
        "servers": {
            "c": {
                "suppressions": {
                    "rulename": ["filename", "foo"],
                    "clang_pointer": ["", "clang-tidy", "clear_pointer"],
                }
            }
        }
    }

Her (geçerli) kuralın rastgele bir adı vardır ve 2 veya 3 uzunluğunda bir dizilişle tanımlanır. Bunlar; (tam) dosya adıyla eşleşecek bir düzenli ifade, tanıyla (metin) eşleşecek bir düzenli ifade ve tanının geçerli olduğu metinle (kaynak kodu aralığı) eşleşen isteğe bağlı bir düzenli ifade.

Yukarıdaki ayrıntılı yapılandırmaya ek olarak, tanı sekmesindeki bağlam menüsü aynı zamanda genel olarak (herhangi bir dosya) veya yerel olarak (söz konusu belirli dosya) belirli bir tanıyla (metinle) tam olarak eşleşen gizlemelerin eklenmesini/kaldırılmasını da destekler. Bu susturma, oturum yapılandırmasında saklanır ve buradan yüklenir.

#### LSP Sunucusu Sorun Giderme

Belirli bir dil için (özel) bir LSP sunucusunun nasıl yapılandırılacağını açıklamak bir şeydir, sunucunun sorunsuz çalışmasını sağlamak başka bir şeydir. Şans eseri genellikle durum ikincisidir. Ancak bazen “aptalca” bir yanlış yapılandırma veya sunucunun kendisiyle ilgili daha temel bir sorun nedeniyle sorunlar ortaya çıkabilir. İkincisi, &kate; Çıktı sekmesinde bildirildiği gibi, genellikle sunucuyu başlatmaya yönelik birkaç girişim olarak kendini gösterebilir. Ancak ikincisi, ayrıntılı tanı sağlamaktan ziyade yalnızca üst düzey iletileri veya ilerlemeyi iletmeyi amaçlamaktadır ve aslında başka bir süreç (LSP sunucusu) için bu daha da azdır.

Bunu tanılamanın genel yolu, öntanımlı olarak ayarlanmadığı sürece (bazı dosyalara veya standart hatalara) (ek) günlüğe kaydetmeyi olanaklı kılan (dil sunucusunun) başlangıç komutuna bazı bayrak(lar) eklemektir. Eğer &kate; daha sonra komut satırında başlatılırsa neyin yanlış gittiğine dair daha fazla görüş elde edilebilir.

&kate;’in LSP istemcisi ile LSP sunucusu arasındaki protokol alışverişini incelemek de bilgilendirici olabilir. Yine, ikincisinin genellikle bunun izini sürmenin yolları vardır. LSP istemcisi ayrıca &kate;, `LSPCLIENT_DEBUG=1` ile `export` yapıldığında ek hata ayıklama izlemesi (stderr’e) sağlar:

#### Yürütme ortamı ayarı

Yukarıdaki Python virtualenv örneği, normal ana bilgisayar ortamından farklı ve ayrı bir şekilde çalışan bir “yürütme ortamı”nın yalnızca bir örneğidir. Bu, farklı değişken ayarları (örneğin virtualenv), bir (s)chroot kurulumu (yeni kök olarak başka bir dizine geçme), bir kapsayıcı (örneğin podman, docker) veya başka bir ana bilgisayara SSH oturumu ile elde edilebilir. Her durumda, “diğer ortam” bir “yürütme öneki” ile tanımlanır. Yani, bir program, amaçlanan çağrıya eklenen bir “önek” (bir program ve argümanlar) aracılığıyla diğer ortamda çağrılabilir/çalıştırılabilir. Örneğin, `podman exec -i kapsayıcı-adı` veya `ssh kullanıcı@makine`.

Özellikle, önceki virtualenv örneğinde olduğu gibi, bir LSP sunucusunu böyle ayrı bir ortamda (örneğin, bir proje tarafından gereksinim duyulan tüm bağımlılıkları içeren bir kapsayıcıda) çalıştırmayı seçebilir/gerektirebilirsiniz. Yukarıda özetlenen “manuel” yaklaşımın dezavantajı, standart LSP komut satırının yerini alması ve bunun da sarmalayıcı betikte tekrar belirtilip kopyalanması gerekliliğidir. Ayrıca, yukarıda bahsedilen diğer örneklerin bazılarında, ana bilgisayarın “yol ad alanı” (düzenleyici tarafından görüldüğü gibi) ortamınkinden farklı olabilir. Bu konuları daha sistematik bir şekilde (“özel” bir yaklaşımdan daha fazla) ele almak için, bazı ek yapılandırmalar belirtilebilir.

Örneğin, aşağıdaki ifadeler bir `.kateproject` yapılandırma dosyasında belirtilebilir. Elbette, “sahte” yorumlar içerilmemelidir.

    {
        // bu ayrıca bir nesne dizilişi olabilir
        "exec": {
            "hostname": "foobar"
            // komut da ayrıca bir dizi dizilişi olabilir
            "prefix": "podman exec -i foobarcontainer",
            "mapRemoteRoot": true,
            "pathMappings": [
                // aşağıdaki biçimlerden biri olanaklıdır
                // daha otosihirli bir alternatif de vardır,
                // aşağıya bakın            [ "/dir/on/host", "/mounted/in/container" ]
                { "localRoot": "/local/dir", "remoteRoot": "/remote/dir" }
            ]
        },
        "lspclient": {
            "servers": {
                "python": {
                    // bu, yukarıdaki nesneyle eşleşir/katılır
                    "exec": { "hostname": "foobar" },
                    // bu sunucuyu bu proje köküne sınırlandırın ki
                    // açılan başka projeler tarafından kullanılamasın
                    // (başka sunucular halihazırda belirli kökler kullanabilir;
                    // ancak Python genelde kullanmaz)
                    "root": "."
                },
                "c": {
                    // yukarıdaki gibi
                    "exec": { "hostname": "foobar" },
                    "root": "."
                }
            }
        }
    }

Peki, yukarıdakilerin sonucu ne olur? Bahsedildiği gibi, yukarıdaki `lspclient` kısmı genel yapılandırmaya birleştirilir, bu nedenle (belirtilen diller için) bir `exec` bölümü bulunur. `exec` veya `lspclient` bölümünde (eşleşen `hostname` belirten) başka bir nesne aranır ve eşleşen bir nesne birleştirme için temel olarak kullanılır. Sonuç olarak, bir LSP sunucusunun (C ve Python için) komut satırı belirtilen (değişkenle değiştirilmiş) öneke eklenir ve bu nedenle verilen kapsayıcı içinde başlatılır. Elbette, kapsayıcının düzgün bir şekilde başlatılmış durumda ve uygun LSP sunucularıyla donatılmış olması gerekir. `lspclient` içindeki `global` bölümünü kullanmak cazip gelebilir. Bu da işe yarayabilir; ancak o zaman tüm LSP sunucuları, örneğin Markdown, Bash betiği veya JSON için olanlar da dahil olmak üzere, bu önekle başlatılacaktır. Büyük olasılıkla, normal sunucu bunları (kullanımdaysa) yine de sağlayacaktır. Dolayısıyla, her zaman olduğu gibi, bu sizin özel kurulumunuza bağlıdır.

Ancak, LSP sunucusu artık düzenleyici tarafından görülen ve kullanılan (yerel) yollardan farklı (uzak) yollar gözlemleyebilir. Belirtilen `pathMappings`, LSP sunucusuyla iletişim içinde bunlar arasında ileri geri çeviri yapmak için kullanılır. Bu, elbette, olabildiğince yapılır. Açıkça, tüm yerel yolların uzak bir karşılığı yoktur; ancak eksik olanlar da (sunucu tarafından) görülmez ve bir sorun teşkil etmez. Bununla birlikte, (uzak) sunucu artık yerel sistemde açıkça/kolayca temsil edilmeyen “uzak kök”te referanslar görebilir ve sağlayabilir. Etkinleştirilen `mapRemoteRoot`, uzak kökü örtük olarak bir “yerel URL” `exec://foobar/` üzerine eşler ve bu daha sonra basit bir KIO protokolü tarafından işlenir. İkincisi, uzaktan yerel konuma kopyalama için (örneğin) `podman exec -i foobarcontainer cat dosya"` komutunu (ve `coreutils` paketindeki araçları kullanan diğer benzer varyasyonları) kullanır. Genel kullanım için tasarlanmadığını ve herhangi bir başarım iddiasında bulunmadığını söylemek yeterlidir; ancak referans verilen bir dosyayı hızlı ve kolay bir şekilde düzenleyiciye yüklemek için yeterlidir.

Yukarıdaki yapılandırmanın basitleştirilmiş bir sürümünün (`hostname` veya `pathMappings` olmadan), sunucu komut satırını (sarmalayıcı betikte) tekrarlamaya gerek kalmadan virtualenv’i yönetmek için kullanılabileceği artık kolayca görülebilir.

Aşağıdakiler kolayca görülemeyebilir, bu nedenle burada açıkça belirtilmiştir.

- Hem `hostname` hem de gerçek `prefix` yürütme ortamını tanımlar (ilki adla, ikincisi içerikle). Bir düzenleyici işlem örneği içinde, aynı `hostname` farklı `prefix` ile ilişkilendirilmemelidir; çünkü bu tanımsız davranışa yol açar (tanılama gerektirmez).

- Hem `prefix` hem de `pathMappings` (editör) değişken genişletmesine tabidir (ancak yukarıdaki maddeyi dikkate alın).

- Çalışma zamanında, “önek başlatıcısının” davranışını (ince bir şekilde) ayarlamak için kullanılabilecek bazı çevre değişkenleri de ayarlanır (ancak yine de ilk maddeye dikkat edin). Özellikle, `KATE_EXEC_PLUGIN` `lspclient` olarak ve `KATE_EXEC_SERVER` sunucunun kimliğine (örneğin `python`) ayarlanır.

- Özellikle, `KATE_EXEC_INSPECT` değeri de `1` olarak ayarlanmıştır. Bu, “ön ek başlatıcısına” alıcının (Kate eklentisi) bazı bant dışı/protokol dışı verileri kabul ettiğini bildirir. Bu, başlatıcının yol eşlemelerini belirlemek için bazı yöntemler kullanmasına (örneğin `podman inspect`) ve bunu uygun biçimde iletmesine olanak tanır. Bu daha sonra, aksi takdirde LSP protokolüne uygun akıştan kaldırılacak ve tanımlanmış herhangi bir yol eşlemesini genişletmek için kullanılacaktır. Bu, örneğin bağlama noktalarını açıkça belirtmeye (yine, kapsayıcının tanımını kopyalamaya) bir alternatif olarak hizmet edebilir. Somut olarak, yukarıdaki kod parçası bunun yerine kullanılabilir;

      {
          // ...
          "exec": {
              "hostname": "foobar"
              // adı yinelemek talihsiz bir durum; ancak betik oldukça basit/anlaşılır
              "prefix": "exec_inspect.sh foobarcontainer podman exec -i foobarcontainer",
              "mapRemoteRoot": true,
              "pathMappings": []
          }
          // …
      }

Son olarak, “yedek KIO” yaklaşımı yeterli görülmezse ne olur? Uygulamada, uzak kök dizini yerel dosya sistemine “bağlamak” ve ardından bunu `pathMappings` içinde belirtmek genellikle olanaklıdır. Başlangıç olarak, iyi bilinen `sshfs` (FUSE) dosya sistemi, (gerçekten) uzak bir sistemi yerel sisteme bağlayabilir. Bir kapsayıcı (podman/docker) için, çoğu (dosya sistemi sürücüsü) kurulumu aşağıdaki yöntemi destekler;

    $ rootdir=/proc/`podman inspect --format '{{.State.Pid}}' containername`/root
    # kimi sembolik bağlantıları sıkıntı çıkarabilir; aşağıya bakın
    $ sudo mount --bind $rootdir /bir-yer/kapsayıcı-adı

Bu da işe yaramazsa uzak/kapsayıcı kök dizinini bağlamak için `sshfs` veya bunun bir alt kümesine başvurulabilir;

    # ilgili man sayfalarına bakın; sftp-server asıl (şifresiz) dosya işlemleri protokolü için yeterlidir
    $ socat 'exec:podman exec -i kapsayıcı-adı /usr/lib/openssh/sftp-server'
       'exec:sshfs -o transform_symlinks -o passive \:/ /bir-yer/kapsayıcı-adı'
    # …
    $ fusermount -u /bir-yer/kapsayıcı-adı

Uzak kök dizininin ana bilgisayar dosya sistemine bu şekilde bağlanmasının, (her şeyi kendiliğinden düzenleyen çok zeki bir önek başlatıcısı olmadığı sürece) `pathMappings` bölümünde elle ve açıkça belirtilmesinin olası olduğunu unutmayın.

&TC.Hollingsworth; &TC.Hollingsworth.mail;

## Ara ve Değiştir

### Giriş

&kate;’in Ara ve Değiştir eklentisi, birçok farklı dosyadaki metni veya düzenli ifadeleri aynı anda aramanıza olanak tanır. Tüm açık dosyaları, bir dizindeki ve isteğe bağlı olarak alt dizinlerindeki tüm dosyaları veya etkin dosyadaki tüm dosyaları arayabilirsiniz. Hatta dosya adına göre süzebilirsiniz; örneğin, yalnızca belirli bir dosya uzantısıyla biten dosyaları arayabilirsiniz.

### Arayüz

#### Arama Sorgusu

Aşağıdaki seçenekler her zaman Dosyalarda Arama aracı görünümünün üst kısmında görüntülenir:

  Aynı anda istediğiniz kadar arama açabilirsiniz. Arama aracı görünümünün sol üst köşesindeki yeni sekme düğmesini tıklamanız yeterlidir; başka bir arama yapmanıza olanak tanıyan yeni bir sonuçlar sekmesi açılacaktır.

  Dosyalarda Arama aracı görünümünün sağ üst köşesindeki düğme, araç görünümünün alt yarısında Klasörde Arama kipine yönelik ek seçeneklerin görüntülenmesi ile aramanızın sonuçları arasında geçiş yapar.

Bul

  Bulmak istediğiniz şeyi yazacağınız yer burasıdır. Etkinleştirilmişse standart metin veya düzenli ifade girebilirsiniz.

Değiştir (metin kutusu)

  Bul metin kutusundaki metnin yerine dosya(lar)a eklenecek yedek metin.

Ara

  Her şeyi yapılandırmayı bitirdiğiniz zaman, aramanızı gerçekleştirmek için yalnızca Ara düğmesine basın. Aramayı yeni bir sekmede gerçekleştirmek için Ara düğmesine basmadan önce &Ctrl; düğmesini basılı tutun. Aynısını yapmak için Bul metin kutusundayken &Enter; düğmesine de basabilirsiniz (benzer bir biçimde &Ctrl;&Enter; yapmak, aramayı yeni bir sekmede yapar).

Değiştir

  Her şeyi yapılandırmayı bitirdiğiniz zaman, Bul metin kutusuna girdiğiniz metni Değiştir kutusuna girdiğiniz metinle değiştirmek için Değiştir düğmesine basın. Değiştir metin kutusunda &Enter; düğmesine basmak da aynı işi görür.

Sonraki

  Gerekirse başka bir dosyaya geçerek arama sorgunuzun bir sonraki eşleşmesine gidin.

İşaretleneni Değiştir

  Değiştir ile aynıdır; ancak yalnızca aşağıdaki bölmede işaretli olan dosyalarda değişiklikler gerçekleştirir.

#### Klasörde Ara Seçenekleri

Bu seçenekler, yukarıda belirtilen sorgu seçeneklerinin altında görüntülenir. Bunun yerine arama sonuçları görüntüleniyorsa onları görüntülemek için düğmesine basın.

Şurada ara

  Burada üç seçenek vardır. Şu anda &kate; içinde açık olan tüm dosyaları aramak için Açık Dosyalarda seçeneğini kullanın. Bir klasör ve isteğe bağlı olarak tüm alt klasörlerinin içinde aramak için Klasörde seçeneğini, yalnızca etkin dosyada arama yapmak içinse Geçerli Dosyada yolunu izleyin.

  Projeler eklentisi yüklüyse Geçerli Proje veya Tüm Açık Projeler içinde de arama yapabilirsiniz.

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

  Arama sonuçlarını yalnızca arama sorgunuzla tümüyle aynı BÜYÜK ve küçük harf kombinasyonuna sahip olanlarla sınırlandırır.

Düzenli ifadeler

  Arama sorgusu olarak basit metin yerine düzenli ifadeler kullanmanıza izin verir.

Sonuçları genişlet

  Yalnızca arama sorgusunu içeren dosyaların listesi yerine, her dosyada bulunan tüm sonuçları görüntüleyin.

Klasör

  Aramak istediğiniz klasörün yolunu girebilirsiniz. Örneğin, &kate; kaynak kodunda arama yapmak için `~/development/kde/kate/` yolunu girin. Bu seçenek yalnızca Klasörde kipi etkinse kullanılabilirdir.

Dosya iletişim kutusunu aç

  Klasörü masaüstünüzün klasör tarayıcısında bulmak için bu düğmeye basın. Bu düğme yalnızca Klasörde kipi kullanıldığında çalışır.

  Klasör’ü geçerli seçili klasörün üst ögesi olarak değiştirmek için bu düğmeye basın. Bu düğme yalnızca Klasörde kipi kullanıldığında çalışır.

  Bu düğme, Klasör girdisini o anda açık olan belgenin bulunduğu klasöre ayarlayacaktır. Bu düğme yalnızca Klasörde kipi kullanıldığında çalışır.

Süz

  Bu, yalnızca belirli bir dizgiyle eşleşen dosya adlarını aramanıza izin verir. Örneğin, C++ ile yazılmış dosyaları aramak için onu `*.cpp` olarak değiştirin. Başlangıcı yalnızca `kate` ile eşleşen dosyaları aramak için onu `kate*` olarak değiştirin. Virgülle ayrılmış birden çok süzgeç (`,`) girebilirsiniz. Bu seçenek, Açık Dosyalarda kipindeyken kullanılamaz.

Dışla

  Süz’ün tersi olarak, bu &kate;’in belirli bir dizgiyle eşleşen dosyaları aramasını engeller. Süz’de olduğu gibi, virgülle ayrılan (`,`) birden çok dizgi girebilirsiniz. Bu seçenek, Açık Dosyalarda kipindeyken kullanılamaz.

Özyineli

  Bu seçenek etkinleştirilirse &kate;, seçili klasörün tüm alt klasörlerinde de arama yapar. Bu seçenek yalnızca Klasörde kipi etkinse kullanılabilir.

Gizlileri içer

  Bu seçenek etkinleştirilirse &kate;, normalde &OS; tarafından gizlenen dosyalarda/klasörlerde de arama yapar. Bu seçenek yalnızca Klasörde kipi etkinse kullanılabilir.

Sembolik bağlantıları izle

  Dosyalarda Ara eklentisi normalde sembolik bağlantıları izlemez. Bu seçenek etkinleştirildiğinde, eklenti onları izleyecek ve başvurdukları dosyaların/klasörlerin içinde de arama yapacaktır. Bu seçenek yalnızca Klasörde kipi etkinse kullanılabilir.

  Sembolik bağlantıların, aranmakta olan klasörün üst ögesi olan bir klasöre veya üst ögelerine sembolik bağlantılar içeren diğer klasörlere başvurması olanaklıdır. Aranan klasörde böyle bir bağlantı varsa ve bu seçenek etkinleştirilirse &kate; bağlantıyı hep izleyecek ve klasörü arayacaktır ve arama hiçbir zaman tamamlanmayacaktır.

İkili dosyaları içer

  Etkinleştirilirse &kate;, metin dosyasına benzemeyen dosyalarda da arama yapacaktır.

#### Arama Sonuçları

Aramanızın sonuçları sorgu seçeneklerinin altında görüntülenir. Klasörde kipinde arama seçenekleri görüntüleniyorsa onları görüntülemek için düğmesine basın. Ayrıca bir arama gerçekleştirildiği anda kendiliğinden görüntüleneceklerdir.

Arama sonuçları, arama sorgunuzla eşleşen metni içeren dosyaların bir listesini ve ardından o dosyada bulunan eşleşme sayısını görüntüler.

Bu dosyadaki eşleşmelerin listesini görmek için dosya adının solundaki genişletme okuna tıklamanız yeterlidir. (Sonuçları genişlet seçeneğini seçtiyseniz bu sizin için zaten yapılır.) Her eşleşmenin bulunduğu satır numarası, ardından o satırın içeriği ve arama sorgunuz kalın metinle belirtilecektir.

Sonucunuzun bulunduğu dosyayı açmak için çift tıklamanız yeterlidir. &kate; gerekirse dosyayı açacaktır. Ayrıca, dosya adı yerine listeye çift tıklayarak imleci belirli bir eşleşmenin konumuna taşıyabilirsiniz.

### Menü Yapısı

&Ctrl;&Alt;F Düzen Dosyalarda Ara

  Ara ve Değiştir araç görünümünü başlatır.

Düzen Sonraki Eşleşmeye Git

  Ara ve Değiştir eklentisi tarafından gerçekleştirilen aramada bir sonraki eşleşmeye gidin.

Düzen Önceki Eşleşmeye Git

  Ara ve Değiştir eklentisi tarafından gerçekleştirilen aramada bir önceki eşleşmeye gidin.

Görünüm Araç Görünümleri Ara ve Değiştir

  &kate;’in Ara ve Değiştir aracını açar/kapatır.

Martin
Gergov
&TC.Hollingsworth; &TC.Hollingsworth.mail;

## &kate; Betikleri ve Parçacıkları

### Giriş

&kate; Betikler ve Parçacıkları eklentisi, kendi özel otomatikleştirme iş akışınızı eklemenize ve yönetmenize olanak tanır. Bu, belgenizin içeriğinde değişiklik yapmak için durağan yeniden kullanılabilir metin parçalarından, özel olarak otomatikleştirilmiş betik alanları içeren aşırı sofistike &javascript; şablonlarına kadar gidebilir.

Çoğu zaman, bu tür içerikler hep aynı şekilde yönetilir. Okuma kolaylığı adına aşağıdaki açıklamalar, durağan parçacıklar, betikleştirilmiş parçacıklar ve betikler arasında herhangi bir ayrım gütmez. Parçacık terimi, bu üçü için de kullanılır.

Eklenti ayrıca, klavye kısayollarını ve kod tamamlama ile parçacıklar yerleştirmeyi destekler. Ek olarak, internetten parçacıklar koleksiyonları indirebilirsiniz (bunlara depolar denir).

### Menü Yapısı

Görünüm Araç Görünümleri Parçacıklar

  Şu anda açık olan dosya türü için deponuzdaki tüm parçacıkları içeren kod parçacıkları panelini gösterir.

Araçlar Parçacık Oluştur

  Herhangi bir belgenin herhangi bir bölümüne ekleyebileceğiniz yeniden kullanılabilir bir metin parçası olan yeni bir parçacık veya küçük bir betik oluşturun.

### Parçacıklar panosu

&kate; Parçacıklar Panosu
&kate; parçacıklar panosu.

&kate; parçacıkları için pano.

Panelde, parçacık depolarının bir listesini ve kendinizinkini oluşturma, bunları internetten alma veya yerel bir dosyadan yükleme seçeneklerini görmelisiniz. Her deponun, onu etkinleştirmek veya devre dışı bırakmak için kullanılabilecek bir onay kutusu vardır. Var olan depoları düzenlemek ve silmek için düğmeler de bulunur.

#### Parçacık Deposu Dosyalarını Yüklemek

Parçacık depolarını internetten indirebilirsiniz. Yeni Parçacıklar Al’a tıklamanız yeterlidir; parça depolarının listesini içeren bir pencere açılacaktır. İstediğiniz parçacığı indirdikten sonra etkinleştirdiğinizden emin olun.

#### Depoları Oluşturmak ve Düzenlemek

Yeni bir parçacık deposu oluşturmak için Depo Ekle’ye tıklayın. Artık parçacık dosyasının, lisansının ve yazarının adını soran bir iletişim kutusu görmelisiniz. İstediğiniz seçenekleri belirledikten sonra Tamam’a tıklayın.

Parçacık Düzenleyicisi
Depo düzenleyicisi.

Depo düzenleyicisi arayüzü.

Parçacık deposu düzenleyicisi, aşağıdaki seçenekleri içerir:

Ad

  Araç görünümündeki parçacıklar listesinde görünür ve ayrıca kod tamamlama özelliği kullanılırken de aranır.

Ad Alanı

  Kod tamamlama kullanılırken kullanılan önek.

Lisans

  Parçacık deponuz için lisansı seçin.

Yazarlar

  Parçacık dosyasının yazar(lar)ının ad(lar)ını girin.

Dosya türleri

  Parçacık deposunun uygulanmasını istediğiniz dosya türlerini seçin. Öntanımlı olarak olarak ayarlanmıştır, böylece depo tüm dosyalara uygulanır. Örneğin bunu `C++` gibi bir şeyle değiştirebilir veya ögelere tıklayarak listeden seçim yapabilirsiniz. Türleri eklerken &Shift; düğmesine basarak birden fazla dosya türü belirleyebilirsiniz.

#### Parçacıkları Oluşturmak ve Düzenlemek

Parçacık Düzenleyicisi
Parçacık düzenleyicisi.

Parçacık düzenleyicisi arayüzü.

Ad

  Parçacıklar listesinde ve tamamlama listesinde görüleceği üzere ad (zorunlu).

Tür

  Parçacıklar metin şablonları veya betikler olarak tanımlanabilir. Her iki tür de &javascript; işlevlerinin kullanılmasına izin verir (ayrıntılar için aşağıya bakın) ve bu nedenle benzer etki için kullanılabilir. Ancak, kural olarak, çoğunlukla metin eklemek istiyorsanız metin şablonları daha uygun olacaktır; ancak metni değiştirmek istiyorsanız betikler genellikle daha kolay bir çözümdür.

  Bu özelliğin kullanılabilmesi için Kate’in KTextEditor sürüm 6.15.0 veya üzeri ile derlenmesi gerekir. Daha önceki sürümler için yalnızca metin şablonu parçacıkları kullanılabilir.

Kısayol

  Bu kısayola basmak, parçacığı geçerli belgeye ekleyecektir (veya çalıştıracaktır).

Parçacık (`Metin Şablonu` türünde)

  Parçacığınızın belgeye ekleyeceği metin.

  Bir parçacık düzenlenebilir alanlar içerebilir. &Tab; düğmesine basılarak bunlar arasında geçiş yapılabilir. Alan oluşturmak için şablon metninde aşağıdaki ifadeler kullanılabilir:

  `${field_name}`, basit, düzenlenebilir bir alan oluşturur. Aynı field_name’in tüm sonraki oluşları, düzenleme sırasında ilkini yansılayan alanlar oluşturur.

  Alanlar, süslü kapatma ayracı dışındaki (`}`) herhangi bir karakteri içerebilirler.

  Bir parçacığa `${text}` girdisini düz olarak yerleştirmek için `$` işaretini bir ters eğik çizgi ile kaçırın: `\${text}`. Metin sonrasında bir alana dönüştürülmeyecektir. Bir alandan önce düz ters eğik çizgiler eklemek için her bir ters eğik çizgiyi bireysel olarak kaçırın: `\\${field}`, `\\\\${field}`, vb.

  `${func(diğer_alan_1, diğer_alan_2, …)}`, her bir düzenlemede bir &javascript; işlevini değerlendiren bir alan oluşturur ve o işlevin dönüş değeri ile değiştirilir. Daha fazla bilgi için Betik Kitaplığı sekmesine bakın.

  `${field_name=default}`, alan için öntanımlı bir değer ayarlar. default bir &javascript; ifadesidir. Öntanımlı değer olarak sabit bir dizi belirtmek için tırnak işaretleri (`${field_name="text"}`) kullanın.

  Öntanımlı değerleri kullanırken (`${field_name=default}`), parçacık belgeye yerleştirildiğinde öntanımlı değerin anında değerlendirildiğini ve alanlar sonradan değiştiğinde güncellenmediğini aklınızda tutun.

  Değerlendirilen öntanımlı değerden önce tanımlanmışlarsa öntanımlı değerlerdeki diğer alanlara da başvurabilirsiniz. Ancak bu, yalnızca bu alanların öntanımlı değerine erişmenizi sağlar.

  Özel bir öntanımlı değer tanımlanmamışsa öntanımlı değer bir alanın adıdır.

  `${cursor}`, her şey doldurulduktan sonra imlecin bitiş konumunu imler. Bu konuma bir metin yerleştirmek düzenlemeyi bitirir. Ek olarak, düzenlemeyi bitirmek için &Esc; düğmesine basınca imleç bu konuma atlar.

Parçacık (`Betik` türünde)

  Bu parçacık için değerlendirilecek &javascript; kodu.

  Bu kod bir `dönüş` ifadesi içeriyorsa döndürülen dizi, geçerli imleç konumuna yerleştirilir. Ayrıca belgeyi doğrudan düzenlemek için &kate; betik yazımı API’sini de kullanabilirsiniz.

  Ek olarak, kodunuz, bir depodaki tüm parçacıklar tarafından ortak kullanılan Betik Kitaplığı sekmesinde tanımlı işlevleri de kullanabilir.

Betik Kitaplığı

  &javascript; parçacıklarınızda kullanmak üzere yardımcı işlevler. Bu işlevler, bir depodaki tüm parçacıklar tarafından ortak kullanılır.

  &kate; Betik Yazımı API’si kullanılarak seçili metni, tam metni, dosya adını ve daha fazlasını `document` ve `view` nesnelerinin uygun yöntemlerini kullanarak elde edebilirsiniz. Daha fazla bilgi için betik yazımı API’si belgelendirmesine bakın.

  Bir `Metin Şablonu` parçacığının alanında bir işlev çağrıldığında onun dönüş değeri metne yerleştirilir.

  `Metin Şablonu` parçacıklarındaki işlevleri kullanmak:

  - İşlevler, `alanlar` nesnesi ile tüm alanların güncel içeriğine erişebilirler: `fields.alanım` veya `fields["alanım"]` kullanın. Bir alanın öntanımlı değeri olarak bir işlev kullanırken yalnızca daha önce metinde tanımlanmış alanlar kullanılabilirdir.

  - Alanlar, işlevlere argüman olarak geçirilebilirler. Geçerli bir &javascript; tanımlayıcısıysa ve aynı adlı başka bir değişken yoksa alan adı doğrudan kullanılabilir. Aksi takdirde `alanlar` nesnesini kullanın: `${func(field)}`, `${func(fields.document)}`, `${func(fields["alanım"])}`

  - İşlev alanları (örneğin, `${func()}`), herhangi bir alanın içeriği değiştirildiğinde her zaman yeniden değerlendirilirler. Ancak, bu, öntanımlı değerlerdeki işlev çağrılarına işlemez: Onlar, parçacık belgeye yerleştirildiğinde yalnızca bir kez değerlendirilirler.

  - Daha karmaşık betikler için önce ham parçacığın belgeye eklendiğini ve sonrasında işlevlerin değerlendirildiğini anlamak önemlidir; örneğin, bir işlev, parçacığın eklendiği satırdaki metni alıyorsa o metin ayrıca `${functionCall()}` içerecektir. Bu durum karmaşıklığa yol açıyorsa bunun yerine `Betik` türünde bir parçacık kullanmayı düşünün.

  - Geçerli olarak seçili metni künyelere sarmak için şunu kullanın: `<strong>${view.selectedText()}</strong>`

  - Yalnızca bir işlevin dönüş değerinin bir alana yerleştirildiğini anımsayın.

Açıklama

  Bu parçacığın ne yaptığına dair isteğe bağlı bir açıklama. Bu, araç ipuçlarında gösterilecektir. Açıklama, temel HTML biçimlendirmesi içerebilir.

Kullanım örneği

  Aşağıdaki örnek, seçili metni veya —eğer seçim yoksa— öntanımlı metni künyelere saran bir betiği çağırır (`Betik` parçacık türünde):

      let range = view.hasSelection() ? view.selection() : new Range(view.cursorPosition(), view.cursorPosition());
      let innertext = range.isEmpty() ? "Bold" : document.text(range);
      document.removeText(range);
      document.insertText(range.start, "<strong>" + innertext + "</strong>");

### Parçacıkları Kullanmak

&kate; Parçacıkları Çalışırken
&kate; parçacıklarına bir araç görünümünden ve açılır menüden erişmek.

Bir parçacıklar listesinden seçmek.

Parçacıkları birkaç yolla çağırabilirsiniz:

- Araç görünümünden parçacığın üzerine tıklayarak,

- Atanmış bir tane varsa bir klavye kısayolu kullanarak.

- Yazı yazarken, &Ctrl; &Space; kısayoluna bastığınızda, parçacıkları içinden seçebileceğiniz kullanışlı bir pencere görüntülenir. Bu düğme kombinasyonu, kod tamamlamaya benzer bir işlevsellik sunar.

Parçacık değişkenler içeriyorsa (`${cursor}` dışında) imleç otomatik olarak bir değişkenin ilk geçtiği yere gidecek ve bir şey yazmanızı bekleyecektir. İşiniz bittiğinde bir sonraki değişkene geçmek için &Tab; düğmesine basabilirsiniz.

### Teşekkürler ve Destek Olanlar

&kate; Parçacıkları, Joseph Wenninger tarafından yazıldı.

Bu bölümün çoğunu yazan Google Code-In 2011 katılımcısı Martin Gergov’a özellikle teşekkürler.

Pablo
Rauzy
r .at. uzy.me

## Klavye Makroları Eklentisi

### Giriş

Klavye makroları kaydet ve oynat (örn. klavye eylem sıralamaları)

### Temel kullanım

#### Bir klavye makrosu kaydetmeye başlamak için:

Araçlar Klavye Makroları Makro Kaydet… (&Ctrl;&Shift;K).

Eklenti, siz kaydı bitirene kadar her düğme basışınızı kaydedecektir.

#### Kaydı bitirmek için:

Araçlar Klavye Makroları Makro Kaydını Sonlandır (&Ctrl;&Shift;K).

Eklenti, düğme basışlarını kaydetmeyi durduracak ve sırayı geçerli makro olarak kaydedecektir.

#### Kaydı iptal etmek için:

Araçlar Klavye Makroları Makro Kaydını İptal Et (&Ctrl;&Alt;&Shift;K).

Eklenti düğme basışlarını kaydetmeyi durdurur; ancak mevcut geçerli değişmez.

#### Geçerli makroyu oynatmak için:

Araçlar Klavye Makroları Makroyu Oynat (&Ctrl;&Alt;K).

Eklenti geçerli makroyu oynatır.

`kmplay` komutu da herhangi bir argüman olmadan geçerli makroyu oynatır.

### Adlı makrolar

Onlara bir ad vererek klavye makroları kaydedilebilir.

Adlı makrolar Kate oturumları arasında kalıcıdır ve Kate’in kullanıcı verileri dizinindeki `keyboardmacros.json` dosyasına kaydedilirler (genellikle `~/.local/share/kate/`).

#### Geçerli makroyu kaydetmek için:

Araçlar Klavye Makroları Geçerli Makroyu Kaydet (&Alt;&Shift;K).

Eklenti sizden bir ad isteyecek ve makroyu onun altına kaydedecektir.

`kmsave ad` komutu, geçerli makroyu `ad` olarak kaydeder.

#### Kaydedilen bir makroyu geçerli olarak yüklemek için:

Araçlar Klavye Makroları Adlı Makroyu Yükle….

Eklenti, kaydedilen makroları bu alt menüde ögeler olarak listeler; bir ögenin etkinleştirilmesi, karşılık gelen makroyu geçerli makro olarak yükleyecektir.

`kmload ad` komutu, `ad` altında kayıtlı makroyu geçerli makro olarak yükler.

#### Kayıtlı bir makroyu onu yüklemeden oynatmak için:

Araçlar Klavye Makroları Adlı Makroyu Oynat….

Eklenti, kaydedilen makroları bu alt menüdeki ögeler olarak listeler; bir ögenin etkinleştirilmesi, ilgili makroyu yüklemeden oynatır.

Kaydedilen her makronun, geçerli eylem koleksiyonunun parçası olan bir eylem olduğunu unutmayın; böylece onlara Ayarlar Klavye Kısayollarını Yapılandır… arayüzü aracılığıyla özel bir kısayol atanabilir.

`kmplay ad` komutu, `ad` altında kayıtlı makroyu onu yüklemeden oynatır.

#### Bir makroyu silmek için:

Araçlar Klavye Makroları Adlı Makroyu Sil….

Eklenti, kaydedilen makroları bu alt menüdeki ögeler olarak listeler; bir ögenin etkinleştirilmesi, ilgili makronun silinmesine neden olur.

`kmwipe ad` komutu, `ad` altında kayıtlı makroyu siler.

#### Komut ipuçları:

`km` önekinden sonra tüm komutlar farklı bir harfle başlar, böylece onları anında sekme tamamlamayı kullanarak çağırabilirsiniz.

### Sınırlamalar

Şu an itibariyle, bazı grafik arayüz araç takımları türleri kullanıldığında klavye makroları düzgün şekilde oynatılamıyor: örneğin QMenu, QuickOpenLineEdit veya TabSwitcherTreeView. Neden olduğundan emin değilim; ancak ilk tahminim bu araç takımlarının klavye olayları açısından standart olmayan bir şekilde çalıştığı yönünde.

Ömer
Faruk
ORUÇ
&TC.Hollingsworth; &TC.Hollingsworth.mail;

## SQL Eklentisi

### Giriş

Yapılandırılmış Sorgu Dili (SQL), veritabanlarından bilgi güncellemek, silmek ve talep etmek için özel bir dildir.

&kate; SQL Eklentisi şunlara olanak tanır:

- Bir veri tabanı oluşturmak

- Var olan veri tabanlarına bağlanmak

- Veri tabanına bilgi eklemek ve silmek

- Sorgu çalıştırmak

- Sonuçları bir tabloda göstermek

### Bir veri tabanına bağlanmak

SQL menüsü veya araç çubuğundan Bağlantı Ekle’yi ve sonrasında kullanmak istediğiniz &Qt; veri tabanı sürücüsünü seçin (QSQLITE, QMYSQL3, QMYSQL, QODBC3, QODBC, QPSQL7, and QPSQL içerilir). İstediğiniz sürücüyü göremiyorsanız onu kurmanız gerekir. Sonrasında Sonraki düğmesine basın.

Seçtiğiniz veri tabanı bir dosya kullanıyorsa veri tabanının konumunu belirtmeniz ve Sonraki düğmesine basmanız yeterlidir. Bir sunucuya bağlanmayı gerektiriyorsa sunucunun makine adını, kullanıcı adınızı ve parolanızı ve belirli bir sürücünün gerektirebileceği diğer bilgileri girmeniz gerekir. Daha sonra Sonraki’ye basın.

Son olarak bağlantınıza bir ad verin ve Bitir’e basın.

### Sorgular Çalıştırmak

#### INSERT/DELETE/UPDATE

Tıpkı komut satırından veya bir programın içinden yaptığınız gibi, SQL eklentisini kullanarak verileri ekleyebilir, silebilir ve güncelleyebilirsiniz. Yalnızca bir sorgu girin ve araç çubuğundaki Sorgu Çalıştır düğmesine basın veya SQL Sorgu Çalıştır (&Ctrl;E) menüsünü kullanın.

##### Bazı Örnek Sorgular

`INSERT`

      INSERT INTO tablo_adı ("özellik1", "özellik2", "özellik3", "özellik4", "özellik5")
      VALUES ("değer1", "değer2", "değer3", "değer4", "değer5" )

`DELETE`

      DELETE FROM table_adı WHERE name = "metin"

`UPDATE`

      UPDATE tablo_adı SET "özellik1" = "metin", "özellik2" = "metin", "özellik3" = "metin", "özellik4" = "metin", "özellik5" = "metin"

#### SELECT

Bir `SELECT` sorgusu çalıştırdıktan sonra, sonuçları &kate;’in altındaki SQL Veri Çıktısı araç görünümünde belirecek bir tabloda veya SQL Metin Çıktısı’nda metin olarak görebilirsiniz. Bir hata varsa metin çıktısında bulunur.

##### Örnek `SELECT` Sorgusu

    SELECT * FROM tablo_adı

SQL Veri Çıktısı araç görünümünde çeşitli düğmeler vardır:

Sütunları içeriğe göre yeniden boyutlandır

  Sütunların boyutunu içeriklerine uyacak şekilde değiştirir.

Satırları içeriğe göre yeniden boyutlandır

  Satırların boyutunu içeriklerine uyacak şekilde değiştirir.

Kopyala

  Tüm tablo içeriğini seçer ve pano arabelleğine kopyalar.

Dışa Aktar

  Tablo içeriğinin tümünü bir dosyaya, panoya veya geçerli belgeye Virgülle Ayrılmış Değerler biçiminde dışa aktarır.

Temizle

  Tablo görünümünden her şeyi kaldırır.

Artık tabloda görüntülenen renkleri Ayarlar&kate; Uygulamasını Yapılandır… iletişim kutusunun SQL bölümünden yapılandırabilirsiniz.

### Tarama

Soldaki Veri Tabanı Şeması tarayıcı aracı görünümünü kullanarak veri tabanınıza göz atabilirsiniz. Görüntülenen bilgiler, kullandığınız veri tabanı sürücüsüne bağlı olarak değişir.

Bu listeyi yenilemek için araç çubuğundaki herhangi bir yere sağ tıklayın ve Yenile’yi seçin. Listedeki bir öge için bir sorgu oluşturmak için bir ögeye sağ tıklayın, Oluştur’u seçin ve beliren alt menüden sorgu tipi (SELECT, UPDATE, INSERT veya DELETE) seçeneklerinden birini seçin.

### Menü Yapısı

SQL Bağlantı Ekle…

  Herhangi bir veri tabanı sürücüsünü kullanarak yeni bir bağlantı ekler.

SQL Bağlantıyı Kaldır

  Seçili bağlantıyı kaldırır.

SQL Bağlantıyı Düzenle…

  Geçerli bağlantının ayarlarını düzenler.

Bağlantılar

  Oluşturduğunuz tüm veri tabanı bağlantıları Bağlantıyı Düzenle ve Sorgu Çalıştır menü ögeleri arasında listelenir. Sorguları çalıştırmak veya üzerinde değişiklik yapmak için birini seçin.

&Ctrl;E SQL Sorgu Çalıştır

  Sorgunuzu çalıştırır.

### Teşekkürler ve Destek Olanlar

SQL eklentisi, Marco Mentasti tarafından yazıldı.

Bu bölümün çoğunu yazan Google Code-In 2011 katılımcısı Ömer Faruk ORUÇ’a özellikle teşekkürler.

## Sembol Görüntüleyicisi Eklentisi

### Dışındakileri/Benzerleri Kapat eklentisini kullanmak

Geliştiricilerin kaynak koddaki sembolleri (işlevler, makrolar ve yapılar) görüntülemesine olanak tanır.

Ayrıştırılan bilgilere tıklayarak koda kolayca göz atabilirsiniz.

Şu anda aşağıdaki diller desteklenmektedir:

C/C++, &Java;, Perl, PHP, Python, Ruby, XSLT, Tcl/Tk, Fortran

Özellik listesi:

- Liste/Ağaç kipi
- Sıralamayı etkinleştir/devre dışı bırak
- İşlev parametrelerini göster/gizle
- Ağaç kipini genişlet/daralt
- Belge değişikliklerinde kendiliğinden güncelle
- Kod ayrıştırma, &kde-frameworks; içindeki sözdizim vurgulama çatısı temellidir

### Menü Yapısı

&Ctrl;\ Görünüm Araç Görünümleri Sembol Listesi

  Etkin belgedeki kaynak kodu işlevlerini, makrolarını ve yapılarını görüntüleyen &kate;’in sembol listesi görüntülenmesini açın/kapatın.

### Yapılandırma

Sembol Görüntüleyicisi

Öntanımlı ayrıştırıcı seçeneklerini seç

## Uçbirim Araç Görünümü Eklentisi

Yerleşik uçbirim öykünücüsü, size kolaylık sağlamak amacıyla &kde; &konsole; uçbirim uygulamasının bir kopyasıdır. Görünüm Araç Görünümleri Uçbirim Panelini Göster menü ögesinden görüntülenir ve anında odağı alır. Ek olarak, Olanaklıysa uçbirimi geçerli belgeyle eşzamanla seçeneği etkinleştirilirse görüntülendiğine veya geçerli belge değiştiğinde olanaklıysa geçerli belgenin dizinine geçer.

&kate; dosyasındaki öntanımlı konumu en altta, düzenleme alanının altındadır.

&konsole;’u onun &RMB; menüsünü kullanarak yapılandırabilirsiniz; daha fazla bilgi için &konsole; kılavuzuna bakın.

Yerleşik uçbirim öykünücüsü, Uçbirim Araç Görünümü eklentisi tarafından sağlanır.

### Menü Yapısı

Görünüm Araç Görünümleri Uçbirim

  Yerleşik uçbirim öykünücüsünün görüntülenmesini açar/kapatır.

  İlk kez etkinleştirildiğinde uçbirim oluşturulacaktır.

  Uçbirim öykünücüsü görüntülendiğinde odağı alır, böylecek doğrudan komutlar girmeye başlayabilirsiniz. Ana yapılandırma iletişim kutusunun Uçbirim sayfasında Olanaklıysa uçbirimi geçerli belgeyle eşzamanla seçeneği etkinleştirilirse kabuk oturumu yerel bir dosyaysa etkin belgenin dizinine geçer.

Araçlar Uçbirime Veriyolu Yap

  Seçili olan metni yerleşik uçbirim öykünücüsüne besleyin. Metinden sonra yenisatır eklenmez.

Araçlar Uçbirimi Geçerli Belgeyle Eşzamanla

  Bu, yerleşik uçbirimin etkin belgenin dizinine `cd` yapmasını sağlar.

  Alternatif olarak &kate;’i, uçbirimi her zaman geçerli belgeyle eşzamanlı tutacak biçimde yapılandırabilirsiniz. Daha fazla bilgi için bölümüne bakın.

Araçlar Geçerli Belgeyi Çalıştır

  Geçerli belgeyi &konsole;’de çalıştırın. Yalnızca yerel belgeler çalıştırılabilir. Bu eylem ciddi bir güvenlik tehdidi olabileceğinden &kate; belgeyi çalıştırmadan önce bir uyarı gösterecektir.

Araçlar Uçbirim Paneline Odaklan/Panelindeki Odağı Kaldır

  Odağı geçerli belgeden uçbirime veya tam tersi olacak biçimde değiştirin.

### Yapılandırma

Uçbirim araç görünümü eklentisini yapılandırma iletişim kutusunun Uçbirim sayfasında yapılandırabilirsiniz.

Aşağıdaki seçenekler kullanılabilir:

Olanaklıysa uçbirimi geçerli belgeyle eşzamanla

  Bu, yerleşik uçbirimin başlatıldığında ve yeni bir belgeye odaklanıldığında etkin belgenin dizinine `cd` yapmasını sağlar. Etkinleştirilmemişse uçbirimdeki tüm dolaşımınızı kendi başınıza yapmanız gerekir.

EDITOR çevre değişkenini “kate -b” olarak ayarla

  Bu, `EDITOR` çevre değişkenini, yerleşik uçbirimde çalışan ve bir dosyayı kendiliğinden bir düzenleyicide açan programların, bunları kabuğunuzda yapılandırılan öntanımlı düzenleyici yerine &kate;’de açmasını sağlayacak şekilde ayarlar. Dosyayı &kate;’de kapatana kadar uçbirimi kullanmayı sürdüremezsiniz, böylece çağıran program, dosyayı düzenlemeyi bitirdiğinizin farkında olacaktır.

’Vazgeç’e basıldığında &konsole;’yi gizle

  Bu, &Esc; düğmesine basılarak yerleşik uçbirimin kapatılmasına olanak sağlar. &Esc; düğmesini kullanan uçbirim uygulamalarında sorunlara neden olabilir; örneğin, vim. Bu tür uygulamaları aşağıdaki metin kutusuna ekleyin. Listedeki ögeler virgülle ayrılmalıdır.

## Metin Süzgeci Eklentisi

### Metin Süzgeci eklentisini kullanmak

Seçili metni uçbirim komutlarını kullanarak işlemek için bu eklentiyi kullanabilirsiniz. Seçim, komutun girdisi olarak kullanılacak ve kullanıcının tercihine bağlı olarak çıktı ya seçimin yerini alacak ya da panoya kopyalanacaktır.

#### Örnekler:

- `less /etc/fstab` — bu dosyanın içeriğini yapıştır veya panoya kopyala

- `wc` — satırları, sözcükleri ve karakterleri say ve sayıyı belgeye yapıştır veya panoya kopyala

- `sort` — seçili satırları sırala ve sonucu belgeye yapıştır veya panoya kopyala

### Menü Yapısı

&Ctrl;\ Araçlar Metni Süz

  Metin Süzgeci iletişim kutusunu açar:

  Metin Süzgeci iletişim kutusu

  Kabuk komutunu çoklu kutuya girin veya geçmişten önceki bir komutu seçin.

  Sonucu yapıştırmak yerine kopyala

    Belgeyi değiştirmeden bırakarak sonucu panoya kopyalayın.

  STDOUT ve STDERR’ı birleştir

    İşaretlenirse STDOUT ve STDERR’den gelen çıktılar birleştirilecek ve hiçbir hata bildirilmeyecektir. Aksi halde STDERR pasif bir ileti olarak görüntülenecektir.

&Daniel.Naber; &Daniel.Naber.mail;

## &XML; Doğrulama

Bu eklenti, &XML; dosyalarının geçerliliğini ve iyi biçimliliğini denetler.

Bu eklenti geçerli dosyayı denetler. &kate;’in ana penceresinin altında bir uyarı ve hata listesi görünecektir. Dosyadaki ilgili yere atlamak için bir hata iletisine tıklayabilirsiniz. Dosyanın bir DOCTYPE’ı varsa bu belge türüyle verilen DTD, dosyanın geçerliliğini denetlemek için kullanılacaktır. DTD’nin geçerli dosyaya göreceli bir konumda olması beklenir; örneğin, doctype DTD/xhtml1-transitional.dtd ise ve dosya da `/home/peter/test.xml` ise DTD’nin `/home/peter/DTD/xhtml1-transitional.dtd` konumunda olması beklenir. Ancak HTTP aracılığıyla uzak DTD’ler de desteklenir.

Dosyanın doctype’ı yoksa iyi biçimlendirilmiş olup olmadığı denetlenir.

&XML; hakkında daha fazla bilgi için resmi W3C &XML; sayfalarına bir bakın.

Bu eklenti, içsel olarak libxml2’nin bir parçası olan `xmllint` dış komutunu çağırır. Bu komut sisteminize doğru şekilde kurulmamışsa eklenti çalışmayacaktır.

Bu eklentiyi yüklemek için Ayarlar &kate; Uygulamasını Yapılandır… altındaki &kate; yapılandırma iletişim kutusunu açın. Sonrasında, Uygulama/Eklentiler altındaki &XML; Doğrulama’yı seçin ve iletişim kutusunu kapatın.

### Menü Yapısı

&XML; &XML;’yi Doğrula

  Bu, yukarıda açıklandığı üzere denetimi başlatacaktır.

### Teşekkürler ve Destek Olanlar

&kate; eklentisi &XML; Doğrulama, Telif hakkı 2002 &Daniel.Naber; &Daniel.Naber.mail;.

Belgelendirme telif hakkı 2002 &Daniel.Naber;

&Daniel.Naber; &Daniel.Naber.mail;

## &XML; Tamamlama

Bu eklenti, dosyanın DTD’sine göre bir &XML; dosyasında belirli bir konumda nelere izin verildiğine dair ipuçları verir. İmlecin konumuna bağlı olarak olası ögeleri, öznitelikleri, öznitelik değerlerini veya varlıkları listeleyecektir (örneğin, imlecin solundaki karakter & ise tüm varlıklar listelenir). Soldaki en yakın açık etiketi kapatmak da olanaklıdır.

DTD kısaltması, `dtdparse` Perl programının ürettiği biçimde &XML; biçiminde var olmalıdır. Bu biçimdeki bir DTD’yi meta DTD olarak adlandıracağız. Bazı meta DTD’ler sağlanır. Aynı zamanda Meta DTD Ata… ögesini seçtiğinizdeki öntanımlı klasör olan ``qtpaths` `--paths GenericDataLocation`` içindeki `katexmltools/` bünyesinde kuruludurlar. Kendi meta DTD’lerinizi üretmek için http://dtdparse.sourceforge.net konumundan `dtdparse`’yi alın.

### Nasıl Kullanılır

&kate;’i başlatın ve Ayarlar &kate; Uygulamasını Yapılandır… altındaki yapılandırma iletişim kutusunu açın. Sonrasında, Uygulama Eklentiler sayfasından &XML; Tamamlama’yı seçin ve iletişim kutusunu kapatın. İzleyen adım olarak, &XML;Meta DTD Ata… yolunu izleyin. Belgenizde bir DOCTYPE yoksa veya doctype bilinmiyorsa dosya sisteminizden bir meta DTD seçmeniz gerekecektir. Aksi takdirde, geçerli belgenin DOCTYPE’ı ile eşleşen meta DTD kendiliğinden yüklenir.

Şimdi metninizi yazarken eklentiyi kullanabilirsiniz:

< (küçüktür)

  Bu, imleç zaten bir etiketin içinde olmadığı sürece olası ögelerin bir listesini tetikleyecektir. Şu anda bunu üst düzey ögeyi eklemek için kullanamayacağınızı unutmayın (&eg; <html>).

</(küçüktür + bölü)

  Bu karakterlerin girilmesi, geçerli ögenin kapatılmasını sağlayacaktır (imlecin solundaki en yakın açık öğe). Öneriyi kabul etmek için &Enter; düğmesine basın. Ögeyi Kapat menü ögesinin aksine, bu yalnızca atanmış bir DTD ile çalışır.

" (tırnak)

  Tırnak karakteri, bir etiketin içindeyseniz olası öznitelik değerlerinin (varsa) bir listesini tetikler.

(boşluk)

  Bu düğme, eğer bir etiketin içindeyseniz geçerli öge için olası özniteliklerin bir listesini tetikleyecektir.

& (ve)

  Bu düğme, adlı varlıkların bir listesini tetikler.

### Özellikler ve Sınırlamalar

``qtpaths` `--paths GenericDataLocation`` içindeki `katexmltools/testcases.xml` dosyasını &kate;’e yükleyip yönergeleri izleyerek tüm işlevleri ve sınırlamaları sınayabilirsiniz.

### Menü Yapısı

&Ctrl;&Enter; &XML; Öge Ekle…

  Bu bir &XML; ögesi eklemenizi sağlayacak bir iletişim kutusu açacaktır. <, > karakterleri ve kapama etiketi kendiliğinden eklenir. Bu menü ögesi seçildiğinde seçili metin varsa seçili metin açılış ve kapanış etiketi ile çevrili olacaktır. İletişim kutusu ayrıca, Meta DTD Ata… kullanarak bir meta DTD atadıysanız geçerli imleç konumuna eklenebilecek tüm ögelerin tamamlanmasını da sunar.

&Ctrl;< &XML; Ögeyi Kapat

  Bu, metninizde henüz kapatılmamış bir etiketi arayacak ve ilgili kapanış etiketini ekleyerek metni kapatacaktır. Arama imleç konumunda başlar ve sola doğru gider. Açık bir etiket bulamazsa hiçbir şey olmayacaktır.

&XML; Meta DTD Ata…

  Bu, eklentiye geçerli belge için hangi meta DTD’nin kullanılacağını söyleyecektir. Bu atamanın kaydedilmeyeceğini unutmayın. Bir dahaki kere &kate;’i başlattığınızda bunu yinelemeniz gerekir.

### Teşekkürler ve Destek Olanlar

&kate; eklentisi &XML; Tamamlama, Telif hakkı 2001,2002 &Daniel.Naber; &Daniel.Naber.mail;.

&kde; SC 4 sürümü telif hakkı 2010 Tomáš Trnka

Belgelendirme telif hakkı 2001,2002 &Daniel.Naber;

## Derleyici Gezgini Eklentisi

Derleyici Gezgini eklentisi, Kate’in içinden derleyici gezginini kullanmanızı sağlar. Derleyici Gezgini, genellikle yalnızca 1 dosya ile sınırlıdır ve projenizdeki bir dosyanın kod üretimini görmek için kullanmak zordur. Bu eklenti, dosyanız için derleme komutlarını kendiliğinden algılayarak bu işlemi basitleştirmeyi amaçlamaktadır.

### Kullanım

İlk yapmanız gereken şey bir derleyici gezgini sekmesi açmaktır. &Ctrl;&Alt;I kısayolunu kullanarak komut çubuğunu açın ve “Geçerli Dosyayı Derleyici Gezgininde Aç” ifadesini arayıp Giriş düğmesine basın. Daha hızlı erişim için bu eylemi bir araç çubuğuna ekleyebilir veya bir kısayol atayabilirsiniz.

Sonrasında, yerel bir derleyici gezgini örneği ayarlamalı veya genel https://godbolt.org/ örneğini kullanacak biçimde yapılandırmalısınız. https://github.com/compiler-explorer/compiler-explorer sayfasına bakın. Bir örneğinin olduktan sonra, daha önce açtığınız derleyici gezgini sekmesindeki Seçenek çoklu kutusuna tıklayın ve URL’yi Değiştir… seçeneğini kullanıp derleyici gezgini sunucusunun URL’sini girin.

Sonrasında, projenizdeki bir dosyanın kod üretimini görmek istiyorsanız bir compile_commands.json dosyasına gereksiniminiz olaacak. İstemiyorsanız bu kısmı atlayabilirsiniz. Bu, CMake veya Meson gibi çağdaş bir yapı sistemi kullanıyorsanız kolaylıkla elde edilebilir. CMake için onu çağırırken `-DCMAKE_EXPORT_COMPILE_COMMANDS=ON` argümanını geçirmek yeterlidir. `compile_commands.json` dosyası, projenizin kök dizinine yerleştirilir. Kate içindeki derleyici gezgini sekmesini kapatıp yeniden açın. Sekme yeniden açıldıktan sonra dosyayı derlemek için gerekli derleme komutlarını göstermelidir.

Derleyici Gezgini’ni yalnızca geçici bir şeyin kod üretimini görmek için kullanıyorsanız dosyanız için olan derleme komutlarını yazıp Derle’ye tıklayabilirsiniz. Kendiliğinden yeniden derleme veya düzenleme desteklenmemektedir. Dosyayı yeniden derlemek istediğiniz her zaman Derle’ye tıklamanız gerekir.

Dosya derlendiğinde kod üretimini sağ tarafta görüyor olmalısınız. Belirli bir satır için olan kod üretimini görmek istiyorsanız satıra sağ tıklayıp Bağlantılı Kodu Ortaya Çıkar seçeneğini kullanın. Yine aynı biçimde sağ tarafta sağ tıklayıp Kaynağa Sar yaparak verilen bir kod üretimi satırı için olan kaynak kodu görebilirsiniz.

## Biçimlendirme Eklentisi

Biçimlendirme eklentisi, kodun kolayca biçimlendirilmesini sağlar. Eklenti, kodun biçimlendirilmesinin kullanıcının çalışmasını bozmaması için kodu biçimlendirirken belgenin geri alma geçmişini ve kullanıcının imleç konumunu korumayı amaçlamaktadır. Bu, özellikle kaydederken kendiliğinden biçimlendirme için önemlidir.

### Kullanım

Bu, kullanıcının kodu iki şekilde biçimlendirmesine olanak tanır:

- “Belgeyi Biçimlendir” seçeneğini kullanarak elle

- Kaydederken kendiliğinden

Bu eylemi komut çubuğunda arayabilir ve kolay erişim için onu bir kısayola bağıntılayabilirsiniz.

### Desteklenen diller ve biçimlendiriciler

Şu anda desteklenen dillerin ve biçimlendiricilerin bir listesi aşağıdadır:

- C/C++/ObjectiveC/ObjectiveC++/Protobuf/GLSL/Java — `clang-format`

- Javascript/Typescript/JSX/TSX — `prettier`

- JSON

  - `prettier`

  - `clang-format`

  - `jq`

- Dart — `dartfmt`

- Rust — `rustfmt`

- Go — `gofmt`

- XML — `xmllint`

- Zig — `zigfmt`

- CMake — `cmake-format`

- D — `dfmt`

- Fish Shell — `fish_indent`

- Bash — `shfmt`

- Nix — `nixfmt`

- QML — `qmlformat`

- HTML — `prettier`

- Swift — `swiftformat`

- Erlang — `erlfmt`

- Godot Script — `gdformat`

- Python

  - `autopep8`

  - `ruff`

- YAML

  - `yamlfmt`

  - `prettier`

### Yapılandırma

Eklenti iki şekilde yapılandırılabilir:

- Yapılandırma iletişim kutusundan global olarak

- `.kateproject` dosyasını kullanarak projeye özel bir biçimde

Yapılandırmayı okurken eklenti, ilk `.kateproject` dosyasındaki yapılandırmayı okumaya çalışacak, sonra global yapılandırmaya geçecektir. Örneğin:

    {
        "formatOnSave": true,
        "formatterForJson": "jq",
        "cmake-format": {
            "formatOnSave": false
        },
        "autopep8": {
            "formatOnSave": false
        }
    }

Yukarıda:

- “kaydederken biçimlendirme”yi global olarak etkinleştirir

- “jq”yü JSON biçimlendiricisi olarak belirtir

- cmake-format ve autopep8 için “kaydederken biçimlendirme”yi devre dışı bırakır

Bir proje için yapılandırmayı biçimlendirmek üzere ilk bir `.kateproject` dosyası oluşturun ve ona bir `"formatting"` nesnesi ekleyin. `"formatting"` nesnesinde ayarlarınızı, bir önceki örnekte görüldüğü üzere yapabilirsiniz. Örneğin:

Bunun çalışması için Proje Eklentisi’ni etkinleştirmeniz gerekir.

    {
        "name": "Süper Projem",
        "files": [
            {
                "git": 1
            }
        ],
        "formatting": {
            "formatterForJson": "clang-format",
            "autopep8": {
                "formatOnSave": false
            }
        }
    }

### Kaydederken biçimlendirmeyi geçici olarak devre dışı bırak

Çalışırken herhangi bir nedenden dolayı biçimlendirmeyi kısa bir süre için devre dışı bırakmak isteyebilirsiniz. Bunu, Araçlar Kaydederken Biçimlendir seçeneğiyle yapabilirsiniz. Bu eylem, Komut Çubuğu ile de tetiklenebilir.