KatePart düzenleyici bileşeni, betik yazımı ile kolaylıkla genişletilebilir. Bunun içn kullanılan dil ECMAScript’tir (genellikle JavaScript olarak bilinir). KatePart iki tür betiği destekler: Girintileme ve komut satırı betikleri. Komut satırı betiklerine benzer bir işlevsellik ayrıca parçacıklar eklentisinde sunulmaktadır. Bu eklenti, özellikle küçük özelleştirilmiş betikler için daha iyi bir başlangıç noktası sağlayabilir.
Girintileme betikleri (aynı zamanda girintileyiciler olarak da bilinir) metin yazarken kaynak kodu kendiliğinden girintiler. Örnek olarak, Dönüş düğmesine bastıktan sonra girinti düzeyi genelde artar.
Aşağıdaki bölümlerde basit bir girintileyici için temel çerçevenin nasıl oluşturulacağı adım adım açıklanmaktadır. İlk adım olarak, yerel ana klasör olan $ klasöründe yeni bir XDG_DATA_HOME/katepart5/script/indentation*.js dosyası oluşturun; örneğin, javascript.js. Burada, XDG_DATA_HOME çevre değişkeni genellikle ~/.local veya ~/.local/share olarak genişletilir.
Windows®’ta bu dosyalar genelde C:\\Users\\ olarak genişleyen user%USERPROFILE%\AppData\Local\katepart5\script\indentation. %USERPROFILE% konumundadır.
javascript.js dosyasının üstbilgisi, aşağıdaki gibi belgenin başına JSON olarak gömülür:
var katescript = {
"name": "JavaScript",
"author": "Örnek Ad <örnek.ad@bir.adres.org>",
"license": "BSD License",
"revision": 1,
"kate-version": "5.1",
"required-syntax-style": "javascript",
"indent-languages": ["javascript"],
"priority": 0,
}; // kate-script-header, dosyanın başında yorumsuz olmalıdır
Burada her giriş ayrıntılı olarak açıklanır:
name[zorunlu]: Bu, → menüsünde ve yapılandırma iletişim kutusunda görünen girintileyici adıdır.author[isteğe bağlı]: Yazarın adı ve iletişim bilgisi.license[isteğe bağlı]: Lisansın kısa adı; örneğin, BSD License veya LGPLv3.revision[zorunlu]: Betiğin revizyonu. Komut dosyasında her değişiklik yapıldığında bu sayının artırılması gerekir.kate-version[zorunlu]: Zorunlu en düşük KatePart sürümü.required-syntax-style[isteğe bağlı]: Sözdizim vurgulama dosyalarında belirtilenbiçemile eşleşen gerekli sözdizim biçemi. Bu, belgedeki belirli vurgulama bilgilerine dayanan girintileyiciler için önemlidir. Gerekli bir sözdizim biçemi belirtilirse girintileyici yalnızca uygun vurgulayıcı etkin olduğunda kullanılabilir. Bu, girintileyicinin beklenen vurgulama şeması olmadan kullanılmasından kaynaklanan “tanımsız davranışı” önler. Örneğin, Ruby girintileyicisi bunu,ruby.jsveruby.xmldosyalarında kullanır.indent-languages[isteğe bağlı]: Girintileyicinin düzgünce girintileyebildiği sözdizim biçemlerinin JSON dizilişi; örneğin:["c++", "java"].priority[isteğe bağlı]: Vurgulanan belirli bir dosya için birden fazla girintileyici uygunsa öncelik, öntanımlı girintileyici olarak hangi girintileyicinin seçileceğine karar verir.
Üstbilgiyi belirledikten sonra bu bölüm girintileme betiği oluşturma işleminin nasıl çalıştığını açıklamaktadır. Gövdenin temel iskeleti şöyle görünür:
// zorunlu katepart js kitaplıkları; örneğin, Range require ("range.js"); kullanıyorsanız range.js
triggerCharacters = "{}/:;";
function indent(line, indentWidth, ch)
{
// triggerCharacters global değişkeninde belirtilen her bir yenisatır (ch == ’\n’) ve tüm karakterler için çağrılır. → , ch değişkeni boştur; demeli, ch == ’’.
//
// Ayrıca bakınız: Betik Yazımı API’si
return -2;
}
indent() işlevinin üç parametresi vardır:
line: Girintilenmesi gereken satırindentWidth: Boşluk türünden girintileme genişliğich: Ya bir yenisatır karakteri (ch == ’\n’) yatriggerCharactersiçinde belirtilen tetikleyici karakter ya da kullanıcı → eylemini çağırdıysa boş.
indent() işlevinin döndürdüğü değer, satırın nasıl girintileneceğini belirtir. Dönüş değeri basit bir tamsayıysa aşağıdaki gibi değerlendirilir:
return value
-2: Bir şey yapmareturn value
-1: Girintilemeyi tut (önceki boş olmayan satırları arar)return value
0: >=0 sayıları, boşluk türünden girintileme derinliğini belirtir
Alternatif olarak, iki ögeli bir diziliş döndürülebilir:
return [ indent, align ];
Bu durumda ilk öge, yukarıdaki gibi özel değerlerle aynı anlama gelen girintileme derinliğidir. Ancak ikinci öge, “hizalama” sütununu temsil eden mutlak bir değerdir. Bu değer girinti değerinden yüksekse, fark, ilk parametrenin girintisinden sonra eklenecek boşluk sayısını temsil eder. Aksi halde ikinci sayı dikkate alınmaz. Girintileme için sekmelerin ve boşlukların kullanılmasına genellikle “karma kip” adı verilir.
Aşağıdaki örneğe ele alın: Girintileme için sekmelerin kullanıldığını ve sekme genişliğinin 4 olduğunu varsayalım. Burada, <tab> bir sekmeyi ve '.' bir boşluğu temsil eder:
1: <tab><tab>foobar("merhaba",
2: <tab><tab>......."dünya");
2. satırı girintilerken, indent() işlevi [8, 15] değerini döndürür. Sonuç olarak, 8. sütuna girinti yapmak için iki sekme eklenir ve ikinci parametreyi birincinin altına hizalamak için 7 boşluk eklenir, böylece dosya farklı bir sekme genişliğinde görüntülenirse hizalı kalır.
Öntanımlı bir KDE kurulumu, KatePart uygulamasını birkaç girintileyici ile kurar. Karşılık gelen JavaScript kaynak kodu $ konumunda bulunabilir.XDG_DATA_DIRS/katepart5/script/indentation
Windows®’ta bu dosyalar genelde C:\\Users\\ olarak genişleyen user%USERPROFILE%\AppData\Local\katepart5\script\indentation. %USERPROFILE% konumundadır.
Bir girintileyici geliştirmek, değişikliklerin uygun şekilde davranıp davranmadığını görmek için betiklerin yeniden yüklenmesini gerektirir. Uygulamayı yeniden başlatmak yerine komut satırına geçin ve reload-scripts komutunu çağırın.
Eğer yararlı betikler geliştiriyorsanız lütfen onları KatePart projesine katkıda bulunmayın düşünün. Katkılarınızı GitLab sayfamıza gönderin.
Not
Komut satırı betiklerine benzer bir işlevsellik ayrıca parçacıklar eklentisinde sunulmaktadır. Bu eklenti, özellikle küçük özelleştirilmiş betikler için daha iyi bir başlangıç noktası sağlayabilir.
Herkesin gereksinimlerini karşılamak güç olsa da, KatePart, yerleşik komut satırı ile tez metin manipülasyonunu sağlamak için küçük yardımcı araçlar sağlar. Örneğin, sort komutu bir betik olarak uygulanmıştır. Bu bölüm, KatePart uygulamasını olabildiğince genişletmek için nasıl *.js dosyaları oluşturulacağını açıklar.
Komut satırı betikleri, girintileme betikleriyle aynı klasörde bulunurlar. İlk adım olarak, yerel ana klasör olan $ klasöründe yeni bir XDG_DATA_HOME/katepart5/script/commands*.js dosyası oluşturun; örneğin, izlencelerim.js. Burada, XDG_DATA_HOME çevre değişkeni genellikle ~/.local veya ~/.local/share olarak genişletilir.
Windows®’ta bu dosyalar genelde C:\\Users\\ olarak genişleyen user%USERPROFILE%\AppData\Local\katepart5\script\commands. %USERPROFILE% konumundadır.
javascript.js dosyasının üstbilgisi, aşağıdaki gibi belgenin başına JSON olarak gömülür:
var katescript = {
"author": "Örnek Ad <örnek.ad@bir.adres.org>",
"license": "LGPLv2+",
"revision": 1,
"kate-version": "5.1",
"functions": ["sort", "moveLinesDown"],
"actions": [
{ "function": "sort",
"name": "Seçili Metni Sırala",
"category": "Editing",
"interactive": "false"
},
{ "function": "moveLinesDown",
"name": "Satırları Aşağı Taşı",
"category": "Editing",
"shortcut": "Ctrl+Shift+Down",
"interactive": "false"
}
]
}; // kate-script-header, dosyanın başında yorumsuz olmalıdır
Burada her giriş ayrıntılı olarak açıklanır:
author[isteğe bağlı]: Yazarın adı ve iletişim bilgisi.license[isteğe bağlı]: Lisansın kısa adı; örneğin, BSD License veya LGPLv3.revision[zorunlu]: Betiğin revizyonu. Komut dosyasında her değişiklik yapıldığında bu sayının artırılması gerekir.kate-version[zorunlu]: Zorunlu en düşük KatePart sürümü.functions[zorunlu]: Betikteki komutların JSON dizilişi.actions[isteğe bağlı]: Uygulama menüsünde görünen eylemleri tanımlayan JSON nesnelerinin JSON dizilişi. Ayrıntılı bilgi, Kısayolları Bağıntılamak bölümünde sağlanmıştır.
functions değeri bir JSON dizilişi olduğundan, tek bir betik istediğiniz kadar komut satırı komutu içerebilir. Her bir işlev, KatePart uygulamasının yerleşik komut satırından kullanılabilir.
Üstbilgide belirtilen tüm işlevlerin betikte uygulanması gerekir. Örneğin, yukarıdaki örnekteki komut dosyasının sort ve moveLinesDown işlevlerini uygulaması gerekir. Tüm işlevler aşağıdaki sözdizime sahiptir:
// zorunlu katepart js kitaplıkları; örneğin, Range require ("range.js"); kullanıyorsanız range.js
function <name>(arg1, arg2, …)
{
// … uygulama, ayrıca bakınız: Betik Yazımı API’si
}
Komut satırındaki argümanlar işleve arg1, arg2, vb. olarak geçirilirler. Her bir komut için belgelendirmek sağlamak istiyorsanız yalnızca 'help' işlevini aşağıdaki gibi uygulayın:
function help(cmd)
{
if (cmd == "sort") {
return i18n("Seçili metni sıralayın.");
} else if (cmd == "…") {
// …
}
}
Komut satırında help sort işlevini yürütmek, sonrasında bu yardım işlevini verilen komuta ayarlı cmd ile çağırır; başka bir deyişle, cmd == "sort". KatePart sonrasında döndürülen metni kullanıcıya belgelendirme olarak sunar. Dizileri başka dillere çevrilebilir yaptığınızdan emin olun.
Bir komut satırı betiği geliştirmek, değişikliklerin uygun şekilde davranıp davranmadığını görmek için betiklerin yeniden yüklenmesini gerektirir. Uygulamayı yeniden başlatmak yerine komut satırına geçin ve reload-scripts komutunu çağırın.
Betiklerin uygulama menüsünden erişilebilir olmasını sağlamak ve kısayollar atamak için betiğin uygun bir betik başlığı sağlaması gerekir. Yukarıdaki örnekte, betik üstbilgisindeki aşağıdaki bölüm nedeniyle menüde hem sort hem de moveLinesDown işlevleri görünüyor:
var katescript = {
…
"actions": [
{ "function": "sort",
"name": "Seçili Metni Sırala",
"icon": "",
"category": "Editing",
"interactive": "false"
},
{ "function": "moveLinesDown",
"name": "Satırları Aşağı Taşı",
"icon": "",
"category": "Editing",
"shortcut": "Ctrl+Shift+Down",
"interactive": "false"
}
]
};
Tek bir eylem için olan alanlar aşağıdaki gibidir:
function[zorunlu]: → menüsünde görünmesi gereken işlev.name[zorunlu]: Betikler menüsünde görünen metin.icon[isteğe bağlı]: Menüde metnin yanında görünen simge. Burada tüm KDE simgeleri adları kullanılabilir.category[isteğe bağlı]: Bir kategori belirtilirse betik bir alt menüde görünür.shortcut[isteğe bağlı]: Burada verilen kısayol, öntanımlı kısayoldur. Örnek:Kontrol+Seçenek+T. Daha fazla ayrıntı için Qt™ belgelendirmesine bakın.interactive[isteğe bağlı]: Betiğin komut satırında kullanıcı girdisi bekleyip beklemediği. Bunu,trueolarak ayarlayın.
Eğer yararlı betikler geliştiriyorsanız lütfen onları KatePart projesine katkıda bulunmayın düşünün. Katkılarınızı GitLab sayfamıza gönderin.
Burada sunulan betik yazımı API’si, tüm betikler için kullanılabilirdir; başka bir deyişle, girintileme betikleri ve komut satırı betikleri. Cursor ve Range sınıfları, $ içindeki kitaplık dosyaları tarafından sağlanırlar. XDG_DATA_DIRS/katepart5/librariesDocument veya View işlevlerinden bazılarını kullanması gereken bu API’yi betiğinizde kullanmak istiyorsanız şunu kullanarak gerekli kitaplığı içerin:
// zorunlu katepart js kitaplıkları; örneğin, Range require ("range.js"); kullanıyorsanız range.js
require ("range.js");
Standart betik yazımı API’sini kendi işlevleriniz ve prototiplerinizle genişletmek istiyorsanız yalnızca KDE’nin yerel yapılandırma klasörü olan $ içinde yeni bir dosya oluşturun ve onu betiğinizde şunu kullanarak içerin: XDG_DATA_HOME/katepart5/libraries
require ("benimbetiğiminadıburaya.js");
Windows®’ta bu dosyalar genelde C:\\Users\\ olarak genişleyen user%USERPROFILE%\AppData\Local\katepart5\libraries. %USERPROFILE% konumundadır.
Cursor veya Range gibi var olan prototipleri genişletmek istiyorsanız tavsiye edilen yol global *.js dosyalarını değiştirmek değildir. Bunun yerine, JavaScript içindeki Cursor prototipini cursor.js betiğinizde require ile içerildikten sonra değiştirin.
KatePart bir metin düzenleyici olduğundan, tüm betik oluşturma API’si olabildiğince imleçlere ve erimlere dayanır. İmleç, belgedeki bir metin konumunu temsil eden basit bir (satır, sütun) demettir. Erim, metni başlangıç imleç konumundan bitiş imleç konumuna kadar yayar. API sonraki bölümlerde ayrıntılı olarak açıklanmaktadır.
Cursor();
Yapıcı.
(0, 0)konumunda bir imleç döndürür.Örnek:
var cursor = new Cursor();Cursor(
int,satırint);sütunYapıcı. Belirli bir konumda (satır, sütun) bir imleç döndürür.
Örnek:
var cursor = new Cursor(3, 42);Cursor(Cursor);diğerYapıcıyı kopyala.
diğerimlecinin bir kopyasını döndürür.Örnek:
var copy = new Cursor(other);Cursor Cursor.clone();
İmlecin bir klonunu döndürür.
Örnek:
var clone = cursor.clone();Cursor.setPosition(
int,satırint);sütunİmleç konumunu
satırvesütunolarak ayarlar.Eklendiği sürüm: KDE 4.11
bool Cursor.isValid();
İmlecin geçerli olup olmadığını denetler. Satır ve/veya sütun
-1olarak ayarlanırsa imleç geçersizdir.Örnek:
var valid = cursor.isValid();Cursor Cursor.invalid();
(-1, -1)konumunda yeni geçersiz bir imleç döndürür.Örnek:
var invalidCursor = cursor.invalid();int Cursor.compareTo(Cursor);diğerBu imleci
diğerimleç ile karşılaştırır. İmleç,diğerimlecinden önce konumlandırılmışsa-1,her iki imleç de eşitse
0vebu imleç
otherimlecinden önce geliyorsa+1döndürür.
bool Cursor.equals(Cursor);diğerBu imleç ve
diğerimleç eşitsetrue, aksi takdirdefalsedöndürür.String Cursor.toString();
İmleci, “
Cursor(satır, sütun)” biçiminde bir dizi olarak döndürür.
Range();
Yapıcı.
new Range()çağırmak, (0, 0)–(0, 0) konumunda bir erim döndürür.Range(
Cursor,başlangıçCursor);bitişYapıcı.
new Range(çağırmak, (başlangıç,bitiş)başlangıç,bitiş) erimini döndürür.Range(
int,başlangıçSatırıint,başlangıçSütunuint,bitişSatırıint);bitişSütunuYapıcı.
new Range(çağırmak, (başlangıçSatırı,başlangıçSütunu,bitişSatırı,bitişSütunu)başlangıçSatırı,başlangıçSütunu) değerlerini (bitişSatırı,bitişSütunu) olarak döndürür.Range(Range);diğerYapıcıyı kopyala.
diğereriminin bir kopyasını döndürür.Range Range.clone();
Erimin bir klonunu döndürür.
Örnek:
var clone = range.clone();bool Range.isEmpty();
Başlangıç ve bitiş imleçleri eşitse
truedöndürür.Örnek:
var empty = range.isEmpty();Eklendiği sürüm: KDE 4.11
bool Range.isValid();
Hem başlangıç hem bitiş imleçleri eşitse
true, aksi takdirdefalsedöndürür.Örnek:
var valid = range.isValid();Range Range.invalid();
(-1, -1) ile (-1, -1) arasındaki erimi döndürür.
bool Range.contains(Cursor);imleçEğer bu erim imleç konumunu içeriyorsa
true, aksi takdirdefalsedöndürür.bool Range.contains(Range);diğerEğer bu erim
diğererimini içeriyorsatrue, aksi takdirdefalsedöndürür.bool Range.containsColumn(int);sütunsütun, yarı açık[başlangıç.sütun, bitiş.sütun)aralığındaysatrue, aksi takdirdefalsedöndürür.bool Range.containsLine(int);satırsatır, yarı açık[başlangıç.satır, bitiş.satır)aralığındaysatrue, aksi takdirdefalsedöndürür.bool Range.overlaps(Range);diğerBu erim ve
diğererimi ortak bir bölge paylaşıyorlarsatrue, aksi takdirdefalsedöndürür.bool Range.overlapsLine(int);satırsatır,[başlangıç.satır, bitiş.satır)aralığındaysatrue, aksi takdirdefalsedöndürür.bool Range.overlapsColumn(int);sütunsütun,[başlangıç.sütun, bitiş.sütun)aralığındaysatrue, aksi takdirdefalsedöndürür.bool Range.onSingleLine();
Erim aynı satırda başlıyor ve bitiyorsa
truedöndürür; başka bir deyişle,Range.start.line == Range.end.lineise.Eklendiği sürüm: KDE 4.9
bool Range.equals(Range);diğerEğer bu erim ve
diğererimi eşitsetrue, aksi takdirdefalsedöndürür.String Range.toString();
Erimi, “
Cursor(satır, sütun)” biçiminde bir dizi olarak döndürür.
Bu bölüm, tüm global işlevleri listeler.
String read(String);dosyaVerilen
dosya’yıkatepart5/script/filesdizinine göreceli olarak arar ve içeriğini bir dizi olarak döndürür.
void require(String);dosyaVerilen
dosya’yıkatepart5/script/librariesdizinine göreceli olarak arar ve onu değerlendirir.require, aynıdosya’nın birden çok içerilmesine karşı korumalıdır.Eklendiği sürüm: KDE 4.10
Tam yerelleştirmeyi desteklemek için betiklerdeki dizileri çevirmek üzere birkaç işlev bulunur; bunlar, i18n, i18nc, i18np ve i18ncp olarak geçer. Bunlar kesin olarak KDE’nin çeviri işlevleri gibi davranırlar.
Çeviri işlevleri, sarılmış dizileri KDE’nin çeviri sistemi aracılığıyla uygulamada kullanılan dile çevirir. Resmi KatePart kaynaklarında geliştirilen komut dosyalarındaki dizeler otomatik olarak çıkarılır ve çevrilebilir. Başka bir deyişle, bir KatePart geliştiricisi olarak ileti çıkarma ve çeviri ile uğraşmanıza gerek yoktur. Bununla birlikte, çevirinin yalnızca KDE altyapısı içinde çalıştığını, yani KDE dışında geliştirilen 3. taraf betiklerdeki yeni dizilerin çevrilmediğini de belirtmek gerekir. Bu nedenle, doğru çevirinin olabilmesi için lütfen betiklerinizle Kate’e katkıda bulunmayı düşünün.
void i18n(
String,metinarg1, …);metin’i, uygulama tarafından kullanılan dile çevirir.arg1, …, argümanları isteğe bağlıdır ve%1,%2, gibi yer tutucuları değiştirmede kullanılırlar.void i18nc(
String,bağlamString,metinarg1, …);metin’i, uygulama tarafından kullanılan dile çevirir. Ek olarak,bağlammetni çevirmenlere görünür, böylece daha iyi bir çeviri sağlayabilirler.arg1, …, argümanları isteğe bağlıdır ve%1,%2, gibi yer tutucuları değiştirmede kullanılırlar.void i18np(
String,tekilString,çoğulint,sayıarg1, …);tekilveyaçoğulvaryantları, verilensayı’ya bağlı olarak uygulama tarafından kullanılan dile çevirir.arg1, …, argümanları isteğe bağlıdır ve%1,%2, gibi yer tutucuları değiştirmede kullanılırlar.void i18ncp(
String,bağlamString,tekilString,çoğulint,sayıarg1, …);tekilveyaçoğulvaryantları, verilensayı’ya bağlı olarak uygulama tarafından kullanılan dile çevirir. Ek olarak,bağlammetni çevirmenlere görünür, böylece daha iyi bir çeviri sağlayabilirler.arg1, …, argümanları isteğe bağlıdır ve%1,%2, gibi yer tutucuları değiştirmede kullanılırlar.
Ne zaman bir betik yürütülürse geçerli etkin düzenleyici görünümünü temsil eden bir “view” global değişkeni vardır. Tüm kullanılabilir View işlevleri aşağıda listelenmiştir.
void view.copy()[ ] Metin seçilmeden çağrılırsa geçerli satırı kes/kopyalaayarlıysa bir seçim varken seçimi kopyala, aksi takdirde geçerli satırı kopyala.Eklendiği sürüm: KDE Frameworks™ 5.79
void view.cut()[ ] Metin seçilmeden çağrılırsa geçerli satırı kes/kopyalaayarlıysa bir seçim varken seçimi kes, aksi takdirde geçerli satırı kes.Eklendiği sürüm: KDE Frameworks™ 5.79
void view.paste()Pano içeriğini yapıştır.
Eklendiği sürüm: KDE Frameworks™ 5.79
Cursor view.cursorPosition()Görünümdeki geçerli imleç konumunu döndürür.
void view.setCursorPosition(
int,satırint); void view.setCursorPosition(sütunCursor);imleçGeçerli imleç konumunu ya (satır, sütun) ya da verilen imlece ayarla.
Cursor view.virtualCursorPosition();
Geçerli sekme genişliğine bağlı olarak her sekmenin karşılık gelen boşluk miktarını saydığı sanal imleç konumunu döndürür.
void view.setVirtualCursorPosition(
int,satırint); void view.setVirtualCursorPosition(sütunCursor);imleçGeçerli sanal imleç konumunu (satır, sütun) veya verilen imleç olarak ayarlayın.
String view.selectedText();
Seçilen metni döndürür. Hiçbir metin seçilmezse döndürülen dizi boştur.
bool view.hasSelection();
Görünümde seçili metin varsa
truedeğerini, aksi takdirdefalsedeğerini döndürür.Range view.selection();
Seçili metin erimini döndürür. Seçili metin yoksa döndürülen erim geçersizdir.
void view.setSelection(Range);erimSeçili metni verilen erime ayarla.
void view.removeSelectedText();
Seçili metni kaldır. Görünümde seçili metin yoksa bu hiçbir şey yapmaz.
void view.selectAll();
Belgedeki tüm metni seçer.
void view.clearSelection();
Metni kaldırmadan metin seçimini temizler.
void view.setBlockSelection(bool on);
Blok seçim kipini açar/kapatır.
bool view.blockSelection();
Blok seçim kipi açıksa
true, aksi takdirdefalsedöndürür.void view.align(Range);erimGeçerli girintileme ayarlarına göre
erim’i düzgünce yeniden girintile.void view.alignOn(
Range,erimString);dizgi= ""Düzenli ifade
dizgiverdiği sütundakierim’deki satırları hizalar. Boş birdizgiile öntanımlı olarak ilk boş olmayan karaktere hizalanır. Dizginin bir yakalaması varsa yakalanan eşleşmeye girintili olacaktır.Örnekler:
view.alignOn(document.documentRange(), '-');, tümünü aynı sütunda hizalamak için her satırın ilk-satırından önce boşluk ekler.view.alignOn(document.documentRange(), ':\\s+(.)');, tümünü aynı sütunda hizalamak için iki nokta üst üsteden sonra oluşan ilk boş olmayan karakterden önce boşluk ekler.object view.executeCommand(
String,komutString,argümanlarRange);erimkomutkomut satırı komutunu isteğe bağlıargümanlarveerimile yürütür. Döndürülennesne’ninkomutyürütmesinin başarılı olup olmadığını söyleyen birobject.okBoole değeri vardır. Bir hata durumunda,object.statusbir hata iletisi içerir.Eklendiği sürüm: KDE Frameworks™ 5.50
Range view.searchText(
Range,erimString,dizgibool);backwards= falseerim’dedizgi’nin ilk oluşunu ara ve eşleşen erimi döndür. İsteğe bağlı Boole değeribackwardstrueolarak ayarlanırsa arama geriye doğru yapılır.dizgi,erim’de bulunamazsa döndürülen erim geçersizdir (bkz. Range.isValid()).Eklendiği sürüm: KDE Frameworks™ 5.97
Ne zaman bir betik yürütülürse geçerli etkin belgeyi temsil eden bir “document” global değişkeni vardır. Tüm kullanılabilir Document işlevlerinin bir listesini aşağıda bulabilirsiniz.
String document.fileName();
Kaydedilmemiş metin arabellekleri için belgenin dosya adını veya boş bir diziyi döndürür.
String document.url();
Belgenin tam URL’sini veya kaydedilmemiş metin arabellekleri için boş bir diziyi döndürür.
String document.mimeType();
Belgenin MIME türünü veya uygun MIME türü bulunamazsa
application/octet-streamMIME türünü döndürür.String document.encoding();
Dosyayı kaydetmek için kullanılan geçerli kodlamayı döndürür.
String document.highlightingMode();
Tüm belge için kullanılan global vurgulama kipini döndürür.
String document.highlightingModeAt(Cursor);konumBelgedeki belirli konumda kullanılan vurgulama kipini döndürür.
Array document.embeddedHighlightingModes();
Bu belgeye gömülü bir dizi vurgulama modunu döndürür.
bool document.isModified();
Belgede kaydedilmemiş değişiklikler varsa
true, aksi takdirdefalsedöndürür.String document.text();
Belgenin tüm içeriğini tek bir metin dizisinde döndürür. Yeni satırlar, “
\n” yenisatır karakteriyle işaretlenir.String document.text(
int,satırdanint,sütundanint,satıraint); String document.text(sütunaCursor,şuradanCursor); String document.text(şurayaRange);erimVerilen erimdeki metni döndürür. Kaynak kodunun daha iyi okunabilmesi için imleç ve aralık tabanlı sürümün kullanılması önerilir.
String document.line(int);satırVerilen metin satırını dizi olarak döndürür. İstenen satır erim dışıysa dizi boştur.
String document.wordAt(
int,satırint); String document.wordAt(sütunCursor);imleçVerilen imleç konumundaki sözcüğü döndürür.
-
Range document.wordRangeAt(
int,satırint); Range document.wordRangeAt(sütunCursor);imleç Verilen imleç konumundaki sözcüğün erimini döndürür. Metin konumu bir satırın sonundan sonraysa döndürülen erim geçersizdir (bkz. Range.isValid()). Verilen imleçte sözcük yoksa boş bir erim döndürülür.
Eklendiği sürüm: KDE 4.9
String document.charAt(
int,satırint); String document.charAt(sütunCursor);imleçVerilen imleç konumundaki karakteri döndürür.
String document.firstChar(int);satırVerilen
satırdakiboşluk olmayan ilk karakteri döndürür. İlk karakter 0 sütunundadır. Satır boşsa veya yalnızca boşluk karakterleri içeriyorsa döndürülen dizi boştur.String document.lastChar(int);satırVerilen
satırdakiboşluk olmayan son karakteri döndürür. Satır boşsa veya yalnızca boşluk karakterleri içeriyorsa döndürülen dizi boştur.bool document.isSpace(
int,satırint); bool document.isSpace(sütunCursor);imleçVerilen imleç konumundaki karakter boşluksa
true, aksi takdirdefalsedöndürür.bool document.matchesAt(
int,satırint,sütunString); bool document.matchesAt(metinCursor,imleçString);metinVerilen
metinilgili imleç konumunda eşleşiyorsatrue, aksi takdirdefalsedöndürür.bool document.startsWith(
int,satırString,metinbool);skipWhiteSpacesSatır
metinile başlıyorsatrue, aksi takdirdefalsedöndürür.skipWhiteSpacesargümanı, baştaki boşlukların yok sayılıp sayılmayacağını denetler.bool document.endsWith(
int,satırString,metinbool);skipWhiteSpacesSatır
metinile bitiyorsatrue, aksi takdirdefalsedöndürür.skipWhiteSpacesargümanı, sondaki boşlukların yok sayılıp sayılmayacağını denetler.bool document.setText(String);metinTüm belge metnini ayarlar.
bool document.clear();
Belgedeki tüm metni kaldırır.
bool document.truncate(
int,satırint); bool document.truncate(sütunCursor);imleçVerilen satırı verilen sütun veya imleç konumunda keser. Başarı durumunda
true, verilen satır belge aralığının parçası değilsefalsedöndürür.bool document.insertText(
int,satırint,sütunString); bool document.insertText(metinCursor,imleçString);metinVerilen imleç konumunda
metinmetnini ekler. Başarı durumundatrue, belge saltokunur kipteysefalsedöndürür.bool document.removeText(
int,satırdanint,sütundanint,satıraint); bool document.removeText(sütunaCursor,şuradanCursor); bool document.removeText(şurayaRange);erimVerilen erimdeki metni kaldırır. Başarı durumunda
true, belge saltokunur kipteysefalsedöndürür.bool document.insertLine(
int,satırString);metinVerilen satırda metin ekler. Başarı durumunda
true, belge saltokunur kipteyse veya satır belge eriminde değilsefalsedöndürür.bool document.removeLine(int);satırVerilen metin satırını kaldırır. Başarı durumunda
true, belge saltokunur kipteyse veya satır belge eriminde değilsefalsedöndürür.bool document.wrapLine(
int,satırint); bool document.wrapLine(sütunCursor);imleçVerilen imleç konumunda satırı kaydırır. Başarı durumunda
true, aksi takdirde; örneğin, satır < 0 isefalsedöndürür.Eklendiği sürüm: KDE 4.9
void document.joinLines(
int,başlangıçSatırıint);bitişSatırıbaşlangıçSatırıkonumundanbitişSatırıkonumuna kadar olan satırları birbirine katar. İki birbirini izleyen metin satırı her zaman bir boşluk ile ayrılır.int document.lines();
Belgedeki satır sayısını döndürür.
bool document.isLineModified(int);satırsatırşu anda kaydedilmemiş veri içeriyorsatruedöndürür.Eklendiği sürüm: KDE 5.0
bool document.isLineSaved(int);satırlinedeğiştirildi ve belge kaydedildiysetruedöndürür. Böylece, satırda şu anda kaydedilmeyen bir veri kalmamış olur.Eklendiği sürüm: KDE 5.0
bool document.isLineTouched(int);satırlineiçinde şu anda kaydedilmemiş veri varsa veya daha önce değiştirildiysetruedöndürür.Eklendiği sürüm: KDE 5.0
bool document.findTouchedLine(
int,başlangıçSatırıbool);aşağılinekonumundan başlayan sonraki dokunulmuş satırı arar. Arama,downiçinde belirtilen yöne göre aşağı veya yukarı doğru yapılır.Eklendiği sürüm: KDE 5.0
int document.length();
Belgedeki karakter sayısını döndürür.
int document.lineLength(int);satırsatır’ın uzunluğunu döndürür.void document.editBegin();
Geri Al/Yinele gruplaması için bir düzenleme grubu başlatır. Hem
editEnd()hem deeditBegin()işlevlerini aynı sayıda çağırdığınızdan emin olun.editBegin()işlevini çağırmak içsel olarak bir başvuru sayacı kullanır; demeli, bu çağrı iç içe geçirilebilir.void document.editEnd();
Bir düzenleme grubunu sonlandırır.
editEnd()işlevinin son çağrısı (başka bir deyişleeditBegin()işlevinin ilk çağrısı için olan) düzenleme adımını bitirir.int document.firstColumn(int);satırVerilen
satır’daki ilk boşluk olmayan sütunu döndürür. Satırda yalnızca boşluklar varsa-1döndürülür.int document.lastColumn(int);satırVerilen
satır’daki son boşluk olmayan sütunu döndürür. Satırda yalnızca boşluklar varsa-1döndürülür.int document.prevNonSpaceColumn(
int,satırint); int document.prevNonSpaceColumn(sütunCursor);imleçVerilen imleç konumundan başlayıp geriye doğru arama yaparak boşluk olmayan karakter içeren sütunu döndürür.
int document.nextNonSpaceColumn(
int,satırint); int document.nextNonSpaceColumn(sütunCursor);imleçVerilen imleç konumundan başlayıp ileriye doğru arama yaparak boşluk olmayan karakter içeren sütunu döndürür.
int document.prevNonEmptyLine(int);satırVerilen imleç konumundan başlayıp geriye doğru arama yaparak sonraki boş olmayan satırı döndürür.
int document.nextNonEmptyLine(int);satırVerilen imleç konumundan başlayıp ileriye doğru arama yaparak sonraki boş olmayan satırı döndürür.
bool document.isInWord(
String,karakterint);öznitelikVerilen
öznitelik’i içerenkarakterbir sözcüğün parçası olabiliyorsatrue, aksi takdirdefalsedöndürür.bool document.canBreakAt(
String,karakterint);öznitelikVerilen
öznitelik’i içerenkarakterbir satırı kaydırmak için uygunsatrue, aksi takdirdefalsedöndürür.bool document.canComment(
int,başlangıçÖzniteliğiint);bitişÖzniteliğiVerilen özniteliklerle başlayan ve biten bir erim, yorum olarak imlenebiliyorsa
true, aksi takdirdefalsedöndürür.String document.commentMarker(int);öznitelikVerilen bir
öznitelikiçin tek satırlık yorumlar için olan yorum imleyicisini döndürür.String document.commentStart(int);öznitelikVerilen bir
öznitelikiçin çok satırlık yorum başlangıçı için olan yorum imleyicisini döndürür.String document.commentEnd(int);öznitelikVerilen bir
öznitelikiçin çok satırlık yorum bitişi için olan yorum imleyicisini döndürür.Range document.documentRange();
Tüm belgeyi kapsayan bir erim döndürür.
Cursor documentEnd();
Belgedeki son satırın son sütununda konumlanan imleci döndürür.
bool isValidTextPosition(
int,satırint); bool isValidTextPosition(sütunCursor);imleçVerilen imleç konumu geçerli bir metin konumundaysa
truedeğerini döndürür. Bir metin konumu yalnızca geçerli bir satırın başında, ortasında veya sonunda bulunuyorsa geçerlidir. Ayrıca bir metin konumu, bir Unicode vekilinde bulunuyorsa geçersizdir.Eklendiği sürüm: KDE 5.0
int document.attribute(
int,satırint); int document.attribute(sütunCursor);imleçVerilen imleç konumundaki özniteliği döndürür.
bool document.isAttribute(
int,satırint,sütunint); bool document.isAttribute(öznitelikCursor,imleçint);öznitelikVerilen imleç konumundaki öznitelik
attributeile eşitsetrue, aksi takdirdefalsedöndürür.String document.attributeName(
int,satırint); String document.attributeName(sütunCursor);imleçÖznitelik adını insanlar tarafından okunabilir metin olarak döndürür. Bu, sözdizim vurgulama dosyalarındaki
itemDataadına eşittir.bool document.isAttributeName(
int,satırint,sütunString); bool document.isAttributeName(adCursor,imleçString);adBelirli bir imleç konumundaki öznitelik adı verilen
adile eşleşiyorsatrue, aksi takdirdefalsedöndürür.String document.variable(String);anahtarİstenen belge değişkeni
anahtar’ın değerini döndürür. Belge değişkeni yoksa dönüş değeri boş bir dizidir.void document.setVariable(
String,anahtarString);değerİstenen belge değişkeni
anahtar’ın değerini ayarla.Ayrıca bakınız: Kate belge değişkenleri
Eklendiği sürüm: KDE 4.8
int document.firstVirtualColumn(int);satırVerilen satırdaki boşluk olmayan ilk karakterin sanal sütununu veya satır boşsa veya yalnızca boşluk karakterleri içeriyorsa
-1döndürür.int document.lastVirtualColumn(int);satırVerilen satırdaki boşluk olmayan son karakterin sanal sütununu veya satır boşsa veya yalnızca boşluk karakterleri içeriyorsa
-1döndürür.int document.toVirtualColumn(
int,satırint); int document.toVirtualColumn(sütunCursor); Cursor document.toVirtualCursor(imleçCursor);imleçVerilen “gerçek” imleç konumunu, bir int veya Cursor nesnesi döndürerek sanal bir imleç konumuna dönüştürür.
int document.fromVirtualColumn(
int,satırint); int document.fromVirtualColumn(sanalSütunCursor); Cursor document.fromVirtualCursor(sanalİmleçCursor);sanalİmleçVerilen sanal imleç konumunu, bir int veya Cursor nesnesi döndürerek “gerçek” imleç konumuna dönüştürür.
Cursor document.anchor(
int,satırint,sütunChar); Cursor document.anchor(karakterCursor,imleçChar);karakterVerilen imleçten başlayarak verilen karakteri geriye doğru arar. Örnek olarak, eğer “(” karakter olarak iletilirse bu işlev “(” açılışının konumunu döndürecektir. Bu başvuru sayımı, yani diğer “(…)” yok sayılır.
Cursor document.rfind(
int,satırint,sütunString,metinint); Cursor document.rfind(öznitelik= -1Cursor,imleçString,metinint);öznitelik= -1Verilen metni uygun
öznitelikile geriye doğru arayarak bulun. Argümanözniteliği,-1olarak ayarlanmışsa yok sayılır. Metin bulunamadığında döndürülen imleç geçersizdir.int document.defStyleNum(
int,satırint); int document.defStyleNum(sütunCursor);imleçVerilen imleç konumunda kullanılan öntanımlı biçemi döndürür.
bool document.isCode(
int,satırint); bool document.isCode(sütunCursor);imleçVerilen imleç konumundaki öznitelik aşağıdaki biçemlerin tümüne eşit değilse
truedeğerini döndürür:dsComment,dsString,dsRegionMarker,dsChar,dsOthers.bool document.isComment(
int,satırint); bool document.isComment(sütunCursor);imleçİmleç konumundaki karakterin özniteliği
dsCommentisetrue, aksi takdirdefalsedöndürür.bool document.isString(
int,satırint); bool document.isString(sütunCursor);imleçİmleç konumundaki karakterin özniteliği
dsStringisetrue, aksi takdirdefalsedöndürür.bool document.isRegionMarker(
int,satırint); bool document.isRegionMarker(sütunCursor);imleçİmleç konumundaki karakterin özniteliği
dsRegionMarkerisetrue, aksi takdirdefalsedöndürür.bool document.isChar(
int,satırint); bool document.isChar(sütunCursor);imleçİmleç konumundaki karakterin özniteliği
dsCharisetrue, aksi takdirdefalsedöndürür.bool document.isOthers(
int,satırint); bool document.isOthers(sütunCursor);imleçİmleç konumundaki karakterin özniteliği
dsOthersisetrue, aksi takdirdefalsedöndürür.void document.indent(
Range,erimint);değişiklikerim’deki tüm satırlarıdeğişikliksekme kadar veyadeğişiklikkez girintiler.tabSizeboşlukları kullanıcı tercihlerine bağlıdır.değişiklikparametresi negatif olabilir.
Belge ve görünüm API’sine ek olarak, genel düzenleyici betiği oluşturma işlevlerine yönelik işlevler sağlayan bir genel düzenleyici API’si vardır.
String editor.clipboardText();
Şu anda global panoda bulunan metni döndürür.
Eklendiği sürüm: KDE Frameworks™ 5.50
String editor.clipboardHistory();
Düzenleyici, en fazla 10 pano girdisini içeren bir pano geçmişini tutar. Bu işlev, şu anda pano geçmişinde bulunan tüm girdileri döndürür.
Eklendiği sürüm: KDE Frameworks™ 5.50
void editor.setClipboardText(String);metinPanonun içeriğini
metinolarak ayarlar.metin, pano geçmişine eklenir.Eklendiği sürüm: KDE Frameworks™ 5.50