La KatePart redaktila komponanto estas facile etendebla skribante skriptojn. La skriptlingvo estas ECMAScript (vaste konata kiel JavaScript). KatePart subtenas du specojn de skriptoj: deŝovajn kaj komandliniajn skriptojn.
Deŝovskriptoj - ankaŭ referencitaj kiel indentiloj - aŭtomate deŝovas la fontkodon dum tajpado de teksto. Ekzemple, post frapado de la revenklavo la deŝovnivelo ofte pliiĝas.
La sekvaj sekcioj priskribas paŝon post paŝo kiel krei la skeleton por simpla indentilo. Kiel unua paŝo, kreu novan *.js dosieron nomatan ekz. javascript.js en la loka hejma dosierujo $. En tio, la mediovariablo XDG_DATA_HOME/katepart5/script/indentationXDG_DATA_HOME kutime vastiĝas al aŭ ~/.local aŭ ~/.local/share.
Sur Windows® ĉi tiuj dosieroj troviĝas en %USERPROFILE%\AppData\Local\katepart5\script\indentation. %USERPROFILE% kutime vastiĝas al C:\\Uzantoj\\.uzanto
La kaplinio de la dosiero javascript.js estas enigita kiel JSON komence de la dokumento jene:
var katescript = {
"name": "JavaScript",
"author": "Ekzempla nomo <example.name@some.address.org>",
"license": "BSD-Permesilo",
"revision": 1,
"kate-version": "5.1",
"required-syntax-style": "javascript",
"indent-languages": ["javascript"],
"priority": 0,
}; // kate-script-header, devas esti ĉe la komenco de la dosiero sen komentoj
Ĉiu eniro estas klarigita detale nun:
nomo[bezonata]: Ĉi tiu estas la deŝovilnomo, kiu aperas en la menuo → kaj en la agorda dialogo.aŭtoro[laŭvola]: La nomo de la aŭtoro kaj kontaktinformoj.licenco[laŭvola]: Mallonga formo de la permesilo, kiel BSD License aŭ LGPLv3.revizio[bezonata]: La revizio de la skripto. Ĉi tiu nombro devus esti pliigita kiam ajn la skripto estas modifita.kate-version[bezonata]: Minimuma bezonata KatePart versio.required-syntax-style[laŭvola]: La bezonata sintaksa stilo, kiu kongruas kun la specifitastiloen sintaks-reliefigaj dosieroj. Ĉi tio estas grava por indentiloj, kiuj dependas de specifaj elstarig-informoj en la dokumento. Se bezonata sintaksa stilo estas specifita, la indentigilo disponeblas nur kiam la taŭga markilo estas aktiva. Ĉi tio malhelpas “nedifinitan konduton” kaŭzitan de uzado de la indentigilo sen la atendata reliefa skemo. Ekzemple, la Ruby-indentigilo uzas ĉi tion en la dosierojruby.jskajruby.xml.indent-languages[laŭvola]: JSON tabelo de sintaksaj stiloj kiujn la indentilo povas ĝuste deŝovi, ekz.:["c++", "java"].prioritato[laŭvola]: Se pluraj indentigiloj taŭgas por certa reliefigita dosiero, la prioritato decidas kiu indentigilo estas elektita kiel defaŭlta.
Specifinte la kaplinion, ĉi tiu sekcio klarigas kiel funkcias la indentskripto mem. La baza skeleto de la korpo aspektas jene:
// bezonataj katepart js-bibliotekoj, ekz. range.js se vi uzas Range
require ("range.js");
triggerCharacters = "{}/:;";
function indent(linio, indentLarĝo, ch)
{
// vokita por ĉiu novlinio (ch == '\n') kaj ĉiuj signoj specifitaj en
// la ĉiea variablo triggerCharacters. Kiam oni vokas →
// la variablo ch estas malplena, t.e. ch == ''.
//
// vidu ankaŭ: Scripting API
return -2;
}
La funkcio indent() havas tri parametrojn:
linio: la linio, kiu devas esti indentigitaindentWidth: la indentlarĝo en nombro da spacojch: ĉu novlinia signo (ch == '\n'), la ekigilo specifita entriggerCharactersaŭ malplenigi se la uzanto alvokis la agon → .
La revena valoro de la indent() funkcio specifas kiel la linio estos indentigita. Se la liveraĵo estas simpla entjera nombro, ĝi estas interpretata jene:
revenvaloro
-2: faru nenionredona valoro
-1: konservi indentaĵon (serĉas antaŭan nemalplenan linion)redonas valoron
0: nombroj >= 0 precizigas la indentprofundecon en spacoj
Alternative, tabelo de du elementoj povas esti liverita:
return [ indent, align ];
En ĉi tiu kazo, la unua elemento estas la indentprofundo kiel supre kun la sama signifo de la specialaj valoroj. Tamen, la dua elemento estas absoluta valoro reprezentanta kolumnon por “aligno”. Se ĉi tiu valoro estas pli alta ol la indenta valoro, la diferenco reprezentas kelkajn spacojn aldonotajn post la indentaĵo de la unua parametro. Alie, la dua nombro estas ignorita. Uzado de taboj kaj spacoj por indentaĵo estas ofte nomata “miksita reĝimo”.
Konsideru la sekvan ekzemplon: Supozu uzanta tabojn por indentigi, kaj tab-larĝo estas agordita al 4. Ĉi tie, <tab> reprezentas tabon kaj '.' spacon:
1: <tab><tab>foobar("saluton",
2: <tab><tab>......."mondo");
Kiam indentlinio 2, la funkcio indent() redonas [8, 15]. Kiel rezulto, du taboj estas enmetitaj por deŝovi al kolumno 8, kaj 7 spacoj estas aldonitaj por vicigi la duan parametron sub la unua, tiel ke ĝi restu vicigita se la dosiero estas rigardata kun malsama tab-larĝo.
Defaŭlta KDE instalaĵo sendas KatePart kun pluraj indentiloj. La responda JavaScript fontkodo troviĝas en $.XDG_DATA_DIRS/katepart5/script/indentation
Sur Windows® ĉi tiuj dosieroj troviĝas en %USERPROFILE%\AppData\Local\katepart5\script\indentation. %USERPROFILE% kutime vastiĝas al C:\\Uzantoj\\. uzanto
Evoluigi deŝovilon postulas reŝargi la skriptojn por vidi ĉu la ŝanĝoj kondutas taŭge. Anstataŭ rekomenci la aplikaĵon, simple ŝanĝu al la komandlinio kaj alvoku la komandon reload-scripts.
Se vi evoluigas utilajn skriptojn bonvolu konsideri kontribui al la KatePart Projekto per kontaktante la dissendoliston.
Ĉar estas malfacile kontentigi ĉies bezonojn, KatePart subtenas malgrandajn helpajn ilojn por rapida manipulado de teksto per la enkonstruita komandlinio. Ekzemple, la komando sort estas efektivigita kiel skripto. Ĉi tiu sekcio klarigas kiel krei dosierojn *.js por etendi KatePart kun arbitraj helpaj skriptoj.
Komandliniaj skriptoj troviĝas en la sama dosierujo kiel deŝovilaj skriptoj. Do kiel unua paŝo, kreu novan dosieron *.js nomitan myutils.js en la loka hejma dosierujo $. En tio, la mediovariablo XDG_DATA_HOME/katepart5 /script/commandsXDG_DATA_HOME kutime vastiĝas al aŭ ~/.local aŭ ~/.local/share.
Sur Windows® ĉi tiuj dosieroj troviĝas en %USERPROFILE%\AppData\Local\katepart5\script\commands. %USERPROFILE% kutime vastiĝas al C:\\Users\\. uzanto
La kaplinio de ĉiu komandlinia skripto estas enigita en JSON komence de la skripto jene:
var katescript = {
"author": "Ekzempla nomo <example.name@some.address.org>",
"license" : "LGPLv2+",
"revision": 1,
"kate-version": "5.1",
"functions": ["sort", " moveLinesDown"],
"actions": [
{ "function": "sort",
"name": "Ordigi Elektitan Tekston",
"category ": "Redaktado",
"interactive": "false"
},
{ "function": "moveLinesDown",
"name": \ "Movi Liniojn Malsupren",
"category": "Redaktado",
"shortcut": "Ctrl+Shift+Down",
"interactive": "false"
}
]
}; // kate-script-header, devas esti ĉe la komenco de la dosiero sen komentoj
Ĉiu eniro estas klarigita detale nun:
aŭtoro[laŭvola]: La nomo de la aŭtoro kaj kontaktinformoj.licenco[laŭvola]: Mallonga formo de la permesilo, kiel BSD License aŭ LGPLv2.revizio[bezonata]: La revizio de la skripto. Ĉi tiu nombro devus esti pliigita kiam ajn la skripto estas modifita.kate-version[bezonata]: Minimuma bezonata KatePart versio.funkcioj[bezonata]: JSON tabelo de komandoj en la skripto.agoj[laŭvola]: JSON Tabelo de JSON objektoj kiuj difinas la agojn kiuj aperas en la aplikaĵa menuo. Detalaj informoj estas provizitaj en la sekcio Ligaj Ŝparvojoj.
Ĉar la valoro de funkcioj estas JSON tabelo, ununura skripto kapablas enhavi arbitran nombron da komandliniaj komandoj. Ĉiu funkcio disponeblas per la enkonstruita komandlinio de KatePart.
Ĉiuj funkcioj specifitaj en la kaplinio devas esti efektivigitaj en la skripto. Ekzemple, la skriptodosiero de la supra ekzemplo bezonas efektivigi la du funkciojn sort kaj moveLinesDown. Ĉiuj funkcioj havas la sekvan sintakson:
// postulis katepart js-bibliotekojn, ekz. range.js se vi uzas Range
require ("range.js");
function <nomo>(arg1, arg2, ...)
{
// ... efektivigo, vidu ankaŭ: Skripta API
}
Argumentoj en la komandlinio estas transdonitaj al la funkcio kiel arg1, arg2, ktp. Por provizi dokumentadon por ĉiu komando, simple efektivigu la funkcion 'help' jene:
function help(cmd)
{
if (cmd == "sort" ) {
return i18n("Ordigi la elektitan tekston.");
} else if (cmd == "...") {
// ...
}
}
Efektivigi help sort en la komandlinio tiam vokas ĉi tiun helpfunkcion kun la argumento cmd agordita al la donita komando, t.s. cmd == "sort". KatePart tiam prezentas la liveritan tekston kiel dokumentadon al la uzanto. Nepre traduki la ĉenojn.
Disvolvi komandlinian skripton postulas reŝargi la skriptojn por vidi ĉu la ŝanĝoj kondutas taŭge. Anstataŭ rekomenci la aplikaĵon, simple ŝanĝu al la komandlinio kaj alvoku la komandon reload-scripts.
Por igi la skriptojn alireblaj en la aplikaĵa menuo kaj atribui ŝparvojojn, la skripto devas provizi taŭgan skripton. En la ĉi-supra ekzemplo, ambaŭ funkcioj ordigi kaj moveLinesDown aperas en la menuo pro la sekva parto en la skriptkapo:
var katescript = {
...
"actions": [
{ "function": "sort",
"name": "Ordigi Elektitan Tekston",
"icon": "",
"category": "Redaktado",
"interactive": "false"
},
{ "function": "moveLinesDown",
"name": "Movi Liniojn Malsupren",
"icon": "",
"category": "Redaktado",
"shortcut": "Ctrl+Shift+Down",
"interactive": "false"
}
]
};
La kampoj por unu ago estas jenaj:
funkcio[bezonata]: La funkcio kiu devus aperi en la menuo → .nomo[bezonata]: La teksto aperas en la skriptmenuo.pikono[laŭvola]: La piktogramo aperas apud la teksto en la menuo. Ĉiuj KDE piktogramnomoj povas esti uzataj ĉi tie.kategorio[laŭvola]: Se kategorio estas specifita, la skripto aperas en submenuo.mallongigo[laŭvola]: La ŝparvojo donita ĉi tie estas la defaŭlta ŝparvojo. Ekzemplo:Ktrl+Alt+t. Vidu la Qt™ dokumentado por pliaj detaloj.interaga[laŭvola]: Se la skripto bezonas enigon de uzanto en la komandlinio, agordu ĉi tion altrue.
Se vi evoluigas utilajn skriptojn bonvolu konsideri kontribui al la KatePart Projekto per kontaktante la dissendoliston.
La scripting-API prezentita ĉi tie estas disponebla por ĉiuj skriptoj, t.s. deŝovskriptoj kaj komandliniaj komandoj. La klasoj Cursor kaj Range estas provizitaj de bibliotekaj dosieroj en $. Se vi volas uzi ilin en via skripto, kiu bezonas uzi iujn el la funkcioj XDG_DATA_DIRS/katepart5/librariesDokumento aŭ Vidi, bonvolu inkluzivi la necesan bibliotekon uzante:
// postulis katepart js-bibliotekojn, ekz. range.js se vi uzas Range
require ("range.js");
Por etendi la norman scripting API kun viaj propraj funkcioj kaj prototipoj simple kreu novan dosieron en la loka agorda dosierujo de KDE $ kaj enmetu ĝin en vian skripto uzante: XDG_DATA_HOME/katepart5/libraries
require ("miaskriptnomoĉitie.js");
Sur Windows® ĉi tiuj dosieroj troviĝas en %USERPROFILE%\AppData\Local\katepart5\libraries. %USERPROFILE% kutime vastiĝas al C:\\Users\\.uzanto
Por etendi ekzistantajn prototipojn kiel Cursor aŭ Range, la rekomendinda maniero estas ne modifi la ĉieajn *.js dosierojn. . Anstataŭe, ŝanĝu la prototipon Cursor en JavaScript post kiam la cursor.js estas inkluzivita en vian skripton per require.
Ĉar KatePart estas tekstredaktilo, la tuta scripting-API baziĝas sur kursoroj kaj intervaloj kiam ajn eblas. Kursoro estas simpla (linio, kolumno) opo reprezentanta tekstopozicion en la dokumento.Intervalo ampleksas tekston de komenca kursora pozicio ĝis fina kursora pozicio. La API estas klarigita detale en la sekvaj sekcioj.
Cursor();
Konstruilo. Liveras Cursor ĉe pozicio
(0, 0).Ekzemplo:
var cursor = new Cursor();Cursor(
int,linioint);kolumnoKonstruilo. Liveras Cursor ĉe pozicio (linio, kolumno).
Ekzemplo:
var cursor = new Cursor(3, 42);Cursor(Cursor);aliaKopi-konstruilo. Liveras kopion de la kursoro
alia.Ekzemplo:
var kopio = new Cursor(alia);Cursor Cursor.clone();
Liveras klonon de la kursoro.
Ekzemplo:
var clone = cursor.clone();Cursor.setPosition(
int,linioint);kolumnoAgordas la pozicion de la kursoro al
liniokajkolumno.Ekde: KDE 4.11
bool Cursor.isValid();
Kontrolu ĉu la kursoro validas. La kursoro estas nevalida, se linio kaj/aŭ kolumno estas agordita al
-1.Ekzemplo:
var valid = cursor.isValid();Cursor Cursor.invalid();
Liveras novan nevalidan kursoron situantan ĉe
(-1, -1).Ekzemplo:
var invalidCursor = cursor.invalid();int Cursor.compareTo(Cursor);aliaKomparas ĉi tiun kursoron kun la kursoro
alia. Revenoj-1, se ĉi tiu kursoro troviĝas antaŭ la kursoroalia,0, se ambaŭ kursoroj egalas kaj+1, se ĉi tiu kursoro troviĝas post la kursoroalia.
bool Cursor.equals(Cursor);aliaDonas
true, se ĉi tiu kursoro kaj la kursoroaliaestas egalaj, aliefalse.String Cursor.toString();
Liveras la kursoron kiel ĉeno de la formo “
Cursor(linio, kolumno)”.
Range();
Konstruilo. Voki
new Range()liveras Range ĉe (0, 0) - (0, 0).Range (
Cursor,komencoCursor);finoKonstruilo. Voki
new Range(redonas la Gamon (komenco,fino)komenco,fino).Range(
int,komencLinioint,startColumnintparametro >,endLinioint);endColumnKonstruilo. Voki
new Range(redonas la Gamon de (startLine,startColumn,endLine,endColumn)komencLinio,komencKolumno) al (finLinio,finKolumno).Range(Range);aliaKopi-konstruilo. Resendas kopion de Range
alia.Range Range.clone();
Liveras klonon de la intervalo.
Ekzemplo:
var clone = range.clone();bool Range.isEmpty();
Donas
true, se la komencaj kaj finaj kursoroj estas egalaj.Ekzemplo:
var empty = range.isEmpty();Ekde: KDE 4.11
bool Range.isValid();
Donas
true, se kaj komenca kaj fina kursoro validas, aliefalse.Ekzemplo:
var valid = range.isValid();Range Range.invalid();
Liveras la Range de (-1, -1) al (-1, -1).
bool Range.contains(Cursor);kursoroDonas
true, se ĉi tiu intervalo enhavas la kursoran pozicion, aliefalse.bool Range.contains(Range);aliaDonas
true, se ĉi tiu gamo enhavas la Gamonalia, aliefalse.bool Range.containsColumn(int);kolumnoDonas
true, sekolumnoestas en la duonmalferma intervalo[komenco.kolumno, fino.kolumno), aliefalse.bool Range.containsLine(int);linioDonas
true, selinioestas en la duonmalferma intervalo[komenco.linio, fino.linio), aliefalse.bool Range.overlaps(Range);aliaDonas
true, se ĉi tiu intervalo kaj la intervaloaliadividas komunan regionon, aliefalse.bool Range.overlapsLine(int);linioDonas
true, selinioestas en la intervalo[start.line, end.line], aliefalse.bool Range.overlapsColumn(int);kolumnoDonas
true, sekolumnoestas en la intervalo[komenco.kolumno, fino.kolumno], aliefalse.bool Range.onSingleLine();
Donas
true, se la intervalo komenciĝas kaj finiĝas ĉe la sama linio, t.s. ifRange.start.line == Range.end.line.Ekde: KDE 4.9
bool Range.equals(Range);aliaDonas
true, se ĉi tiu gamo kaj la Rangealiaestas egalaj, aliefalse.String Range.toString();
Liveras la intervalon kiel ĉeno de la formo “
Range(Cursor(linio, kolumno), Cursor(linio, kolumno))”.
Ĉi tiu sekcio listigas ĉiujn ĉieajn funkciojn.
String read(String);dosieroSerĉos la donitan
dosieronrilate al la dosierujokatepart5/script/fileskaj liveros ĝian enhavon kiel ĉenon.
void require(String);dosieroSerĉos la donitan
dosieronrilate al la dosierujokatepart5/script/librarieskaj taksos ĝin.requireestas interne protektita kontraŭ multoblaj inkludoj de la samadosiero.Ekde: KDE 4.10
Por subteni plenan lokalizon, ekzistas pluraj funkcioj por traduki ĉenojn en skriptoj, nome i18n, i18nc, i18np kaj i18ncp. Ĉi tiuj funkcioj kondutas ekzakte kiel la tradukfunkcioj de KDE.
La tradukfunkcioj tradukas la envolvitajn ĉenojn per la traduksistemo de KDE al la lingvo uzata en la aplikaĵo. Ĉenoj en skriptoj evoluantaj en la oficiala KatePart fontoj estas aŭtomate ĉerpitaj kaj tradukeblaj. Alivorte, kiel KatePart programisto vi ne devas ĝeni per eltiro kaj tradukado de mesaĝoj. Notu tamen, ke la traduko funkcias nur ene de la KDE infrastrukturo, t.s., novaj ĉenoj en triaj skriptoj disvolvitaj ekster KDE ne estas tradukitaj. Tial bonvolu konsideri kontribui viajn skriptojn al Kate tia ke taŭga tradukado estas ebla.
void i18n(
String,tekstoarg1, ...);Tradukas
tekstonal la lingvo uzata de la aplikaĵo. La argumentojarg1, ..., estas nedevigaj kaj uzataj por anstataŭigi la anstataŭaĵojn%1,%2, ktp.void i18nc(
String,kuntekstoString,tekstoarg1, ...) ;Tradukas
tekstonal la lingvo uzata de la aplikaĵo. Aldone, la ĉenokuntekstoestas videbla por tradukistoj por ke ili povu provizi pli bonan tradukon. La argumentojarg1, ..., estas nedevigaj kaj uzataj por anstataŭigi la anstataŭaĵojn%1,%2, ktp.void i18np(
String,unuopaString,pluraloint,nombroarg1, ...);Tradukas aŭ
singularoaŭpluraloen la lingvon uzatan de la aplikaĵo, depende de la donitanombro. La argumentojarg1, ..., estas nedevigaj kaj uzataj por anstataŭigi la anstataŭaĵojn%1,%2, ktp.void i18ncp(
String,kuntekstoString,unuopaString,pluraloint,nombroarg1, ...);Tradukas aŭ
singularoaŭpluraloen la lingvon uzatan de la aplikaĵo, depende de la donitanombro. Aldone, la ĉenokuntekstoestas videbla por tradukistoj por ke ili povu provizi pli bonan tradukon. La argumentojarg1, ..., estas nedevigaj kaj uzataj por anstataŭigi la anstataŭaĵojn%1,%2, ktp.
Kiam ajn skripto estas rulita, ekzistas ĉiea variablo “vido” reprezentanta la nunan aktivan redaktan vidon. La sekvanta estas listo de ĉiuj disponeblaj Vidaj funkcioj.
void view.copy()Kopiu la elekton se ekzistas unu, alie la nunan linion se la opcio
[ ] Kopiu/Tranĉi la nunan linion se neniu elektoestas agordita.Ekde: KDE Frameworks™ 5.79
void view.cut()Tranĉi la elekton se ekzistas unu, alie la aktuala linio se la opcio
[ ] Kopiu/Tranĉi la nunan linion se neniu elektoestas agordita.Ekde: KDE Frameworks™ 5.79
void view.paste()Algluu la enhavon de la tondujo.
Ekde: KDE Frameworks™ 5.79
Cursor view.cursorPosition()Liveras la aktualan kursoran pozicion en la vido.
void view.setCursorPosition(
int,linioint); void view.setCursorPosition(kolumnoCursor);kursoroAgordu la aktualan kursoron al aŭ (linio, kolumno) aŭ al la donita kursoro.
Cursor vido.virtualCursorPosition ();
Resendas la virtualan kursoran pozicion kun ĉiu tabo kalkulanta la respondan kvanton da spacoj depende de la nuna tab-larĝeco.
void view.setVirtualCursorPosition(
int,linioint); void view.setVirtualCursorPosition(kolumnoCursor);kursoroAgordu la nunan virtualan kursoran pozicion al (linio, kolumno) aŭ al la donita kursoro.
String view.selectedText();
Resendas la elektitan tekston. Se neniu teksto estas elektita, la liverita ĉeno estas malplena.
bool view.hasSelection();
Redonas
true, se la vido elektis tekston, aliefalse.Range view.selection();
Redonas la elektitan tekstan gamon. La redonita intervalo estas nevalida se ne estas elektita teksto.
void view.setSelection(Range);gamoAgordu la elektitan tekston al la donita gamo.
void view.removeSelectedText();
Forigu la elektitan tekston. Se la vido ne havas ajnan elektitan tekston, tio faras nenion.
void view.selectAll ();
Elektas la tutan tekston en la dokumento.
void vido.clearSelection();
Purigas la teksto-elekton sen forigi la tekston.
void view.setBlockSelection(bool on);
Ŝalti aŭ malŝalti blokan elektoreĝimon.
bool view.blockSelection();
Redonas
true, se blokelekta reĝimo estas ŝaltita, aliefalse.void view.align(Range);gamoĜuste reindentigas liniojn ene de
intervalolaŭ aktualaj indentagordoj.void view.alignOn(
Range,gamoString);ŝablono= ""Vicigas liniojn en
gamosur la kolumno donita de la regula esprimoŝablono. Kun malplenaŝablonoĝi viciĝos al la unua nemalplena signo defaŭlte. Se la ŝablono havas kapton, ĝi deŝovos sur la kaptita kongruo.Ekzemploj:
view.alignOn(document.documentRange(), '-');enmetos spacojn antaŭ la unua-de ĉiu linioj por vicigi ilin ĉiujn sur la sama kolumno.view.alignOn(document.documentRange(), ':\\s+(.)');enmetos spacojn antaŭ la unua nemalplena signo kiu okazas post dupunkto por vicigi ilin ĉiujn. la sama kolumno.objekto view.executeCommand(
String,komandoString,argojRange);intervaloEfektigas la komandlinian komandon
komandonkun la nedevigaj argumentojargskaj la nedevigagamo. La redonitaobjektohavas bulean econobject.okkiu indikas ĉu plenumo de lakomandosukcesis. En kazo de eraro, la ĉenoobject.statusenhavas erarmesaĝon.Ekde: KDE Frameworks™ 5.50
Range view.searchText(
Range,gamoString,ŝablonobool);malantaŭen= falseSerĉu la unuan aperon de
ŝablonoengamokaj liveras la kongruan intervalon. Serĉo estas farita malantaŭen se la laŭvola bulea parametromalantaŭenestas agordita altrue.La redonita intervalo estas nevalida (vidu Range.isValid()) se
ŝablonone troviĝas enintervalo.Ekde: KDE Frameworks™ 5.97
Kiam ajn skripto estas rulita, estas ĉiea variablo “dokumento” reprezentanta la aktuale aktivan dokumenton. La sekvanta estas listo de ĉiuj disponeblaj Dokumentaj funkcioj.
String document.fileName();
Liveras la dosiernomon de la dokumento aŭ malplenan ĉenon por nekonservitaj tekstaj bufroj.
String document.url();
Liveras la plenan URL de la dokumento; aŭ malplena ĉeno por nekonservitaj tekstaj bufroj.
String document.mimeType();
Liveras la dokumentan MIME-tipon aŭ la MIME-tipon
application/octet-streamse neniu taŭga MIME-tipo povus esti trovita.String document.encoding();
Redonas la nuntempe uzatan kodigon por konservi la dosieron.
String document.highlightingMode ();
Liveras la ĉiean reliefigreĝimon uzatan por la tuta dokumento.
String document.highlightingModeAt(Cursor);posRedonas la emfazan reĝimon uzatan ĉe la donita pozicio en la dokumento.
Array document.embeddedHighlightingModes ();
Liveras tabelon de reliefaj modoj enigitaj en ĉi tiu dokumento.
bool document.isModified();
Redonas
true, se la dokumento havas nekonservitajn ŝanĝojn (modifitajn), aliefalse.String document.text();
Resendas la tutan enhavon de la dokumento en ununura tekstoĉeno. Novlinioj estas markitaj per la novlinia signo “
\n”.String document.text(
int,deLinioint,deKolumnoint,alLinioint); String document.text(alKolumnoCursor,deCursor); String document.text(alRange);intervaloLiveras la tekston en la donita gamo. Oni rekomendas uzi la kursoron kaj gamon bazitan version por pli bona legebleco de la fontkodo.
String document.line(int);linioLiveras la donitan tekstlinion kiel ĉenon. La ĉeno estas malplena se la petita linio estas ekster intervalo.
String document.wordAt(
int,linioint); String document.wordAt(kolumnoCursor);kursoroLiveras la vorton ĉe la donita kursora pozicio.
-
Range document.wordRangeAt(
int,linioint); Range document.wordRangeAt(kolumnoCursor);kursoro Redonu la gamon de la vorto ĉe la donita kursora pozicio. La redonita intervalo estas nevalida (vidu Range.isValid()), se la tekstopozicio estas post la fino de linio. Se ne estas vorto ĉe la donita kursoro, malplena gamo estas liverita.
Ekde: KDE 4.9
String document.charAt(
int,linioint); String document.charAt(kolumnoCursor);kursoroLiveras la signon ĉe la donita kursora pozicio.
String document.firstChar(int);linioLiveras la unuan signon en la donita
liniokiu ne estas blankspaco. La unua signo estas ĉe kolumno 0. Se la linio estas malplena aŭ enhavas nur blankspacsignojn, la liverita ĉeno estas malplena.String document.lastChar(int);linioLiveras la lastan signon en la donita
liniokiu ne estas blankspaco. Se la linio estas malplena aŭ enhavas nur blankspacsignojn, la liverita ĉeno estas malplena.bool document.isSpace(
int,linioint); bool document.isSpace(kolumnoCursor);kursoroDonas
true, se la signo ĉe la donita kursora pozicio estas blankspaco, aliefalse.bool document.matchesAt(
int,linioint,kolumnoString); bool document.matchesAt(tekstoCursor,kursoroString);tekstoDonas
true, se la donitatekstokongruas ĉe la responda kursora pozicio, aliefalse.bool document.startsWith(
int,linioString,tekstobool);skipWhiteSpacesDonas
true, se la linio komenciĝas perteksto, aliefalse. La argumentoskipWhiteSpaceskontrolas ĉu gvidaj blankspacoj estas ignoritaj.bool document.endsWith(
int,linioString,tekstobool);skipWhiteSpacesRedonas
true, se la linio finiĝas perteksto, aliefalse. La argumentoskipWhiteSpaceskontrolas ĉu postaj blankspacoj estas ignoritaj.bool document.setText(String);tekstoAgordas la tutan dokumentan tekston.
bool document.clear();
Forigas la tutan tekston en la dokumento.
bool document.truncate(
int,linioint); bool document.truncate(kolumnoCursor);kursoroDetranĉu la donitan linion ĉe la donita kolumno aŭ kursora pozicio. Redonas
trueje sukceso, aŭfalsese la donita linio ne estas parto de la dokumento-intervalo.bool document.insertText(
int,linioint,kolumnoString); bool document.insertText(tekstoCursor,kursoroString);tekstoEnmetas la
tekstonĉe la donita kursora pozicio. Redonastrueje sukceso, aŭfalse, se la dokumento estas en nurlegebla reĝimo.bool document.removeText(
int,deLinioint,deKolumnoint,alLinioint); bool document.removeText(alKolumnoCursor,deCursor); bool document.removeText(alRange);intervaloForigas la tekston en la donita gamo. Redonas
trueje sukceso, aŭfalse, se la dokumento estas en nurlegebla reĝimo.bool document.insertLine(
int,linioString);tekstoEnmetas tekston en la donita linio. Redonas
trueje sukceso, aŭfalse, se la dokumento estas en nurlegebla reĝimo aŭ la linio ne estas en la dokumento-intervalo.bool document.removeLine(int);linioForigas la donitan tekstan linion. Redonas
trueje sukceso, aŭfalse, se la dokumento estas en nurlegebla reĝimo aŭ la linio ne estas en la dokumento-intervalo.bool document.wrapLine(
int,linioint); bool document.wrapLine(kolumnoCursor);kursoroEnvolvas la linion ĉe la donita kursora pozicio. Redonas
trueje sukceso, aliefalse, ekz. if linio < 0.Ekde: KDE 4.9
void document.joinLines(
int,startLineint);endLineKunigas la liniojn de
startLinealendLine. Du sekvaj tekstlinioj ĉiam estas apartigitaj per ununura spaco.int dokumento.lines();
Liveras la nombron da linioj en la dokumento.
bool document.isLineModified(int);linioDonas
true, selinionuntempe enhavas nekonservitajn datumojn.Ekde: KDE 5.0
bool document.isLineSaved(int);linioDonas
true, selinioestis ŝanĝita, sed la dokumento estis konservita. Tial, la linio nuntempe ne enhavas iujn ajn nekonservitajn datumojn.Ekde: KDE 5.0
bool document.isLineTouched(int);linioDonas
true, selinionuntempe enhavas nekonservitajn datumojn aŭ estis ŝanĝita antaŭe.Ekde: KDE 5.0
bool document.findTouchedLine(
int,startLiniobool);malsuprenSerĉu la sekvan tuŝitan linion komencante ĉe
linio. La serĉo estas farita aŭ supren aŭ malsupren laŭ la serĉdirekto specifita enmalsupren.Ekde: KDE 5.0
int dokumento.length();
Liveras la nombron da signoj en la dokumento.
int dokumento.lineLength(int);linioLiveras la longon de la
linio.void dokumento.editBegin();
Lanĉas redaktan grupon por malfari/refari grupigon. Certiĝu ĉiam voki
editEnd()tiom ofte kiom vi vokaseditBegin(). VokieditBegin()interne uzas referencan nombrilon, t.s., ĉi tiu voko povas esti nestita.void dokumento.editEnd();
Finas redaktan grupon. La lasta alvoko de
editEnd()(t.s. tiu por la unua voko deeditBegin()) finas la redaktan paŝon.int dokumento.unuaKolumno(int);linioLiveras la unuan ne-blankspackolumnon en la donita
linio. Se estas nur blankspacoj en la linio, la liveraĵo estas-1.int dokumento.lastKolumno(int);linioLiveras la lastan ne-blankspackolumnon en la donita
linio. Se estas nur blankspacoj en la linio, la liveraĵo estas-1.int document.prevNonSpaceColumn(
int,linioint); int document.prevNonSpaceColumn(kolumnoCursor);kursoroRedonas la kolumnon kun ne-blankspaca signo komencanta ĉe la donita kursora pozicio kaj serĉanta malantaŭen.
int document.nextNonSpaceColumn(
int,linioint); int document.nextNonSpaceColumn(kolumnoCursor);kursoroRedonas la kolumnon kun ne-blankspaca signo komencanta ĉe la donita kursora pozicio kaj serĉante antaŭen.
int document.prevNonEmptyLine(int);linioLiveras la sekvan nemalplenan linion enhavantan ne-blankspacsignojn serĉantajn malantaŭen.
int dokumento.nextNonEmptyLine(int);linioLiveras la sekvan nemalplenan linion enhavantan ne-blankspacsignojn serĉantajn antaŭen.
bool document.isInWord(
String,signoint);atributoDonas
true, se la donitasignokun la donitaatributopovas esti parto de vorto, aliefalse.bool document.canBreakAt(
String,signoint);atributoDonas
true, se la donitasignokun la donitaatributotaŭgas por envolvi linion, aliefalse.bool document.canComment(
int,startAtributeint);endAttributeDonas
true, se intervalo komencanta kaj finiĝanta per la donitaj atributoj taŭgas por esti komentita, aliefalse.String document.commentMarker(int);atributoLiveras la komentmarkilon por unuliniaj komentoj por donita
atributo.String document.commentStart(int);atributoLiveras la komentmarkilon por la komenco de plurliniaj komentoj por donita
atributo.String document.commentEnd(int);atributoRedonas la komentan markilon por la fino de plurliniaj komentoj por donita
atributo.Range document.documentRange();
Liveras gamon, kiu ampleksas la tutan dokumenton.
Cursor documentEnd();
Liveras kursoron poziciigitan ĉe la lasta kolumno de la lasta linio en la dokumento.
bool isValidTextPosition(
int,linioint); bool isValidTextPosition(kolumnoCursor);kursoroDonas
true, se la donita kursora pozicio estas poziciigita ĉe valida tekstopozicio. Teksta pozicio validas nur se ĝi situas ĉe la komenco, en la mezo aŭ la fino de valida linio. Plue, tekstpozicio estas malvalida se ĝi troviĝas en Unikoda anstataŭaĵo.Ekde: KDE 5.0
int document.attribute(
int,linioint); int document.attribute(kolumnoCursor);kursoroLiveras la atributon ĉe la donita kursora pozicio.
bool document.isAttribute(
int,linioint,kolumnoint); bool document.isAttribute(atributoCursor,kursoroint);atributoDonas
true, se la atributo ĉe la donita kursora pozicio egalasatributo, aliefalse.String document.attributeName(
int,linioint); String document.attributeName(kolumnoCursor);kursoroDonas la atributan nomon kiel homlegebla teksto. Ĉi tio estas egala al la nomo
itemDataen la sintaksa reliefaj dosieroj.bool document.isAttributeName(
int,linioint,kolumnoString); bool document.isAttributeName(nomoCursor,kursoroString);nomoRedonas
true, se la atributnomo ĉe certa kursorpozicio kongruas kun la donitanomo, aliefalse.String document.variable(String);klavoLiveras la valoron de la petita dokumentvariablo
ŝlosilo. Se la dokumentvariablo ne ekzistas, la liveraĵo estas malplena ĉeno.void document.setVariable(
String,ŝlosiloString);valoroAgordu la valoron de la petita dokumentvariablo
ŝlosilo.Vidu ankaŭ: Kate-dokumentvariabloj
Ekde: KDE 4.8
int dokumento.unuaVirtualaKolumno(int);linioLiveras la virtualan kolumnon de la unua ne-spaco en la donita linio aŭ
-1, se la linio estas malplena aŭ enhavas nur blankspacsignojn.int dokumento.lastVirtualColumn(int);linioLiveras la virtualan kolumnon de la lasta ne-spaco en la donita linio aŭ
-1, se la linio estas malplena aŭ enhavas nur blankspacsignojn.int document.toVirtualColumn(
int,linioint); int document.toVirtualColumn(kolumnoCursor); Cursor document.toVirtualCursor(kursoroCursor);kursoroKonvertas la donitan “realan” kursoran pozicion al virtuala kursora pozicio, ĉu liverante int aŭ Cursor-objekton.
int document.fromVirtualColumn(
int,linioint); int document.fromVirtualColumn(virtualaKolumnoCursor); Cursor document.fromVirtualCursor(virtualaKursoroCursor);virtualaKursoroKonvertas la donitan virtualan kursoran pozicion al “reala” kursora pozicio, ĉu liverante int aŭ Cursor-objekton.
Cursor document.anchor(
int,linioint,kolumnoChar); Cursor document.anchor(signoCursor,kursoroSigno);signoSerĉas malantaŭen la donitan signon komencante de la donita kursoro. Ekzemple, se '(' estas pasigita kiel signo, ĉi tiu funkcio redonos la pozicion de la malfermaĵo '('. Ĉi tiu referenca nombrado, t.s. aliaj '(...)' estas ignoritaj.
Cursor document.rfind(
int,linioint,kolumnoString,tekstoint); Cursor document.rfind(atributo= -1Cursor,kursoroString,tekstoint);atributo= -1Trovu serĉante malantaŭen la donitan tekston kun la taŭga
atributo. La argumentoatributoestas ignorata se ĝi estas agordita al-1. La redonita kursoro estas nevalida, se la teksto ne troviĝis.int document.defStyleNum(
int,linioint); int document.defStyleNum(kolumnoCursor);kursoroLiveras la defaŭltan stilon uzatan ĉe la donita kursora pozicio.
bool document.isCode(
int,linioint); bool document.isCode(kolumnoCursor);kursoroRedonas
true, se la atributo ĉe la donita kursora pozicio ne egalas al ĉiuj jenaj stiloj:dsComment,dsString,dsRegionMarker,dsChar,dsOthers.bool document.isComment(
int,linioint); bool document.isComment(kolumnoCursor);kursoroRedonas
true, se la eco de la signo ĉe la kursora pozicio estasdsComment, aliefalse.bool document.isString(
int,linioint); bool document.isString(kolumnoCursor);kursoroRedonas
true, se la atributo de la signo ĉe la kursora pozicio estasdsString, aliefalse.bool document.isRegionMarker(
int,linioint); bool document.isRegionMarker(kolumnoCursor);kursoroRedonas
true, se la eco de la signo ĉe la kursora pozicio estasdsRegionMarker, aliefalse.bool document.isChar(
int,linioint); bool document.isChar(kolumnoCursor);kursoroRedonas
true, se la eco de la signo ĉe la kursora pozicio estasdsChar, aliefalse.bool document.isOthers(
int,linioint); bool document.isOthers(kolumnoCursor);kursoroDonas
true, se la eco de la signo ĉe la kursora pozicio estasdsOthers, aliefalse.void document.indent(
Range,intervaloint);ŝanĝoIndentigas ĉiujn liniojn en
intervaloperŝanĝotaboj aŭŝanĝoobletabSizespacoj depende de la preferoj de la uzantoj. La parametroŝanĝopovas esti negativa.
Krom la dokumento kaj vido API, ekzistas ĝenerala redaktilo API kiu disponigas funkciojn por ĝenerala redaktilo skriptfunkcio.
String editor.clipboardText();
Liveras la tekston kiu nuntempe estas en la ĉiea tondujo.
Ekde: KDE Frameworks™ 5.50
String editor.clipboardHistory();
La redaktilo tenas historion de tondujo kiu enhavas ĝis 10 enskribojn de tondujo. Ĉi tiu funkcio liveras ĉiujn enskribojn kiuj nuntempe estas en la tondujohistorio.
Ekde: KDE Frameworks™ 5.50
void editor.setClipboardText(String);tekstoAgordu la enhavon de la tondujo al
teksto. Latekstoestos aldonita al la historio de la tondujo.Ekde: KDE Frameworks™ 5.50