1
<chapter id="advanced-editing-tools">
5
>&Anders.Lund; &Anders.Lund.mail;</author>
7
>&Dominik.Haumann; &Dominik.Haumann.mail;</author>
8
<othercredit role="translator"
20
>Tõlge eesti keelde</contrib
26
>Täiustatud redigeerimisvahendid</title>
28
<sect1 id="advanced-editing-tools-comment">
31
>Kommentaari lisamine/eemaldamine</title>
34
>Käsud 'Lisa kommentaar' ja 'Eemalda kommentaar', mida saab kasutada menüüst <guimenu
36
>, võimaldavad lisada valitud tekstiosale või kui midagi ei ole valitud, siis parajasti aktiivsele reale kommentaarimärgid või need sealt eemaldada. Seda muidugi juhul, kui parajasti redigeeritava teksti vorming kommentaare üldse kasutada lubab.</para>
39
>Reeglid, mil moel kommentaar välja näeb, on määratud süntaksi definitsioonis, nii et kui süntaksi esiletõstu ei kasutata, ei ole võimalik ka kommentaarimärke lisada või eemaldada. </para>
42
>Mõned vormingud defineerivad ühe rea kommentaarimärgid, mõned lubavad kommenteerida mitut rida korraga ja mõned mõlemat. Kui mitme rea kommentaarimärke ei ole saadaval, siis ei ole võimalik kommenteerida valikut, mille viimane rida ei ole valitud tervikuna.</para>
45
>Kui saadaval on ühe rea kommentaarimärgid, on võimaluse korral mõttekas kommenteerida üksikuid ridasid - nii saab ära hoida näiteks "kommentaari kommentaari sees".</para>
48
>Kommentaarimärkide eemaldamisel ei tohi olla valitud kommenteerimata teksti. Valikult mitmerealise kommentaarimärgistuse eemaldamisel eiratakse iga tühikut väljaspool kommentaarimärgistust.</para>
55
> Kommentaarimärkide lisamiseks kasuta menüükäsku <menuchoice
59
>Kommentaar</guimenuitem
61
> või vastavat kiirklahvikombinatsiooni, mis vaikimisi on <keycombo action="simul"
70
>kommentaari eemaldamine</primary
72
> Kommentaarimärkide eemaldamiseks kasuta menüükäsku <menuchoice
76
>Kommentaari eemaldamine</guimenuitem
78
> või vastavat kiirklahvikombinatsiooni, mis vaikimisi on <keycombo action="simul"
86
<sect1 id="advanced-editing-tools-commandline">
88
>Redaktori käsureakomponent</title>
91
>&kate; redaktorikomponent kasutab seesmist käsurida, mis võimaldab minimaalse GUI-ga väga mitmesuguseid toiminguid ette võtta. Käsurida on terminal redaktori allosas, mille saab nähtavaks muuta menüükäsuga <menuchoice
95
>Lülitu käsureale</guimenuitem
97
> või kiirklahviga (vaikimisi <keycombo action="simul"
101
>). Redaktor pakub omalt poolt välja rea käske, mida tutvustatakse allpool, pluginad võivad neile veelgi lisa pakkuda.</para>
104
>Käsu käivitamiseks vajuta klahvi Enter. Käsurida annab märku, kas täitmine õnnestus ning näitab vajaduse korral teadet. Kui avasid käsurea klahviga <keycap
106
>, peidetakse see automaatselt mõne sekundi pärast. Teate eemaldamiseks ja uue käsu sisestamiseks vajuta uuesti klahvi <keycap
111
>Käsureal on omaenda abisüsteem, mille käivitamiseks anna käsk <command
113
>. Kõigi võimalike käskude nägemiseks anna käsk <command
115
>, mõne konkreetse käsu abi nägemiseks käsk <command
122
>Käsureal on ka omaenda mälu ehk ajalugu, mis võimaldab uuesti kasutada juba varem antud käske. Ajaloos saab liikuda klahvidega <keycap
126
>. Varasemate käskude näitamisel valitakse selle argument, mis võimaldab neid kergesti asendada.</para>
128
<sect2 id="advanced-editing-tools-commandline-commands">
130
>Standardsed käsureakäsud</title>
132
<sect3 id="advanced-editing-tools-commandline-commands-configure">
134
>Redaktori seadistamise käsud</title>
137
>Neid käske võimaldab kasutada redaktorikomponent ja need on mõeldud ainult aktiivse dokumendi ja vaate seadistamiseks. See on mugav juhul, kui sa ei soovi mingil põhjusel kasutada vaikeseadistusi (näiteks soovid teistmoodi treppida). </para>
141
>Argumenditüübid</title>
148
>Seda kasutatakse käskude puhul, millega saab midagi sisse või välja lülitada. Väärtusteks võivad olla <userinput
150
> ('sees'), <userinput
152
> ('väljas'), <userinput
154
> ('tõene'), <userinput
156
> ('väär'), <userinput
190
>set-tab-width</command
197
>Määrab tabelduskoha laiuseks arvu <userinput
207
>set-indent-width</command
214
>Määrab taande laiuseks arvu <userinput
216
>. Ainult sel juhul, kui trepitakse tühikutega.</para
224
>set-word-wrap-column</command
231
>Määrab sõnamurdmise korral rea laiuseks arvu <userinput
233
>. Ainult siis, kui teksti automaatne murdmine on sisse lülitatud.</para
241
>set-icon-border</command
243
>TÕEVÄÄRTUS enable</arg
248
>Ikoonipiirde näitamine.</para
256
>set-folding-markers</command
258
>TÕEVÄÄRTUS enable</arg
263
>Voltimismärkide paneeli näitamine.</para
271
>set-line-numbers</command
273
>TÕEVÄÄRTUS enable</arg
278
>Reanumbrite paneeli näitamine.</para
286
>set-replace-tabs</command
288
>TÕEVÄÄRTUS enable</arg
293
>Sisselülitamisel asendatakse tabeldusmärgid kirjutamise ajal tühimärkidega. </para
301
>set-remove-trailing-space</command
303
>TÕEVÄÄRTUS enable</arg
308
>Sisselülitamisel eemaldatakse rea lõpus seisvad tühimärgid kohe pärast seda, kui kursor lahkub realt.</para
316
>set-show-tabs</command
318
>TÕEVÄÄRTUS enable</arg
323
>Sisselülitamisel näidatakse tabeldusmärke ja rea lõpus seisvaid tühimärke väikeste punktidena.</para
331
>set-indent-spaces</command
333
>TÕEVÄÄRTUS enable</arg
338
>Sisselülitamisel trepib redaktor igal treppimistasemel <option
339
>indent-width</option
340
>'iga määratud tühikutega, mitte aga tabeldusmärgiga.</para
348
>set-mixed-indent</command
350
>TÕEVÄÄRTUS enable</arg
355
>Sisselülitamisel kasutab &kate; treppimisel tabeldus- ja tühimärkide segu. Iga treppimistase on laiusega <option
356
>indent-width</option
357
> ning täiendavaid treppimistasemeid optimeeritakse nii paljude tabeldusmärkide kasutamisega kui võimalik.kui võimalik.</para>
359
>Käivitamisel rakendab see käsk ka treppimise tühikumärkidega ning kui taande laius ei ole määratud, määratakse see täitmise ajal kogu dokumendile poole <option
369
>set-word-wrap</command
371
>TÕEVÄÄRTUS enable</arg
376
>Dünaamilise reamurdmise sisselülitamine vastavalt <userinput
386
>set-replace-tabs-save</command
388
>TÕEVÄÄRTUS enable </arg
393
>Sisselülitamisel asendatakse tabeldusmärgid dokumendi salvestamisel tühimärkidega.</para
401
>set-remove-trailing-space-save</command
403
>TÕEVÄÄRTUS enable</arg
408
>Sisselülitamisel eemaldatakse dokumendi salvestamisel ridade lõpust tühikud.</para
416
>set-indent-mode</command
423
>Määrab automaatse treppimise režiimiks väärtuse <userinput
427
> pole tuntud, on režiimiks 'none' ehk 'puudub'. Sobivad režiimid on 'none', 'normal', 'cstyle', 'haskell', 'lilypond', 'lisp', 'python', 'ruby' ja 'xml'.</para
435
>set-highlight</command
442
>Määrab dokumendi süntaksi esiletõstmise süsteemi. Argument peab olema kehtiv esiletõstu nimi, nagu seda näeb näiteks menüüs <menuchoice
446
>Esiletõstmine</guisubmenu
448
>. Käsk võimaldab argumendi lisamisel kasutada automaatset lõpetamist.</para
456
<sect3 id="advanced-editing-tools-commandline-commands-edit">
458
>Redigeerimiskäsud</title>
461
>Nende käskudega saab muuta aktiivset dokumenti.</para>
473
>Trepib valitud read või aktiivse rea.</para
486
>Eemaldab valitud ridade või aktiivse rea treppimise.</para
494
>cleanindent</command
499
>Puhastab valitud ridade või aktiivse rea treppimise vastavalt dokumendi treppimisseadistustele. </para
512
>Lisab kommentaarimärgid, millega muuta valik või valitud read või aktiivne rida kommentaariks vastavalt tekstivormindusele, mille määrab dokumendi süntaksi esiletõstu definitsioon.</para
525
>Eemaldab kommentaarimärgid valikult või valitud ridadelt või aktiivselt realt vastavalt tekstivormindusele, mille määrab dokumendi süntaksi esiletõstu definitsioon.</para
538
>Kustutab aktiivse rea.</para
555
>Asendab teksti, mille määrab <userinput
557
>, tekstiga, mille määrab <userinput
559
>. Kui soovid, et <userinput
561
> sisaldaks tühimärki, tuleb nii <userinput
565
> muuta ühe- või kahekordsete jutumärkidega tsitaadiks. Kui argumendid pole tsiteeritud, arvab käsk, et esimene sõna on <userinput
567
> ja ülejäänud <userinput
571
> andmata jätta, eemaldatakse kogu tekst, kus esineb <userinput
575
>Otsingule võib lisada lippe, milleks kirjuta koolon ja selle järele vajalik täht või tähed, nii et käsk võtab kuju <userinput
576
>replace:võtmed muster asendus</userinput
577
>. Kasutada saab järgmisi võtmeid: <variablelist>
586
>Otsing tagasisuunas</para
597
>Otsing alates kursori asukohast.</para
608
>Otsing ainult valikus.</para
619
>Regulaaravaldise otsing. Selle korral võid anda <userinput
621
>, kus N on arv, mis tähistab asendusstringi hõivet.</para
632
>Tõstutundlik otsing.</para
643
>Loa küsimine järgmise asenduse korral.</para
654
>Ainult täissõnade sobivus.</para
675
>Kuupäeva/kellaajastring lisamine kujul, nagu selle määrab <userinput
677
> või kui seda pole antud, siis kujul <quote
678
>yyyy-MM-dd hh:mm:ss</quote
679
>. Argument <userinput
681
> võib esineda järgmisel kujul: <informaltable
690
>Päev arvuna ilma alustava nullita (1-31).</entry
698
>Päev arvuna alustava nulliga (01-31).</entry
706
>Lühendatud ja lokaliseeritud päevanimi (nt. 'Esm', 'Püh').</entry
714
>Pikk ja lokaliseeritud päevanimi (nt. 'Esmaspäev', 'Pühapäev').</entry
722
>Kuu arvuna ilma alustava nullita (1-12).</entry
730
>Kuu arvuna alustava nulliga (01-12).</entry
738
>Lühendatud ja lokaliseeritud kuunimi (nt. 'Jaan', 'Dets').</entry
746
>Aasta kahekohalise arvuna (00-99).</entry
754
>Aasta neljakohalise arvuna (1752-8000).</entry
762
>Tunnid ilma alustava nullita (0-23 või 1-12, kui näidatakse AM/PM).</entry
770
>Tunnid alustava nulliga (00-23 või 01-12, kui näidatakse AM/PM).</entry
778
>Minutid ilma alustava nullita (0-59).</entry
786
>Minutid alustava nulliga (00-59).</entry
794
>Sekundid ilma alustava nullita (0-59).</entry
802
>Sekundid alustava nulliga (00-59).</entry
810
>Millisekundid ilma alustava nullita (0-999).</entry
818
>Millisekundid alustava nulliga (000-999).</entry
826
>AM/PM kasutamine. AP asemele pannakse kas "AM" või "PM".</entry
834
>am/pm kasutamine. ap asemele pannakse kas "am" või "pm".</entry
856
>See võimaldab sisestada tähemärke nende numbrilise koodi kaudu kümnend-, kaheksand- või kuueteistkümnendvormis. Selle kasutamiseks käivita redigeerimiskäsu dialoog, kirjuta sisendikasti <userinput
857
>char: [number]</userinput
858
> ja klõpsa nupule <guibutton
873
>Väljund: <computeroutput
874
>ê</computeroutput
878
>char:0x1234</userinput
881
>Väljund: <computeroutput
882
>ሴ</computeroutput
893
>Asendamine sed-stiilis</primary>
895
>Otsimine sed-stiilis</secondary
905
>See käsk käivitab sedi-sarnase otsi/asenda-operatsiooni aktiivsel real või kogu failis (<command
910
>Nii otsitakse tekst läbi, et leida sobivused <emphasis
911
>otsingumustriga</emphasis
912
>, st esimese ja teise kaldkriipsu vahele jääva regulaaravaldisega. Kui sobivus leitakse, asendatakse sobiv tekstiosa avaldisega stringi keskmise ja viimase kaldkriipsu vahel. Sulud otsingumustris tekitavad <emphasis
913
>tagasiviidad</emphasis
914
>, see tähendab, et käsk peab meeles, milline osa sobivusest vastas sulgudes olnule; neid stringe saab otsingumustris uuesti kasutada, viidates neile esimese sulukombinatsiooni puhul kui <userinput
916
>, teise puhul kui <userinput
921
>Otsimaks märki <literal
925
>, tuleb need <emphasis
926
>varjestada</emphasis
927
> längkriipsu kasutades: <userinput
932
>Kui kirjutada avaldise lõppu <userinput
934
>, ei arvestata sobivuse juures tõstu ehk tähesuurust. Kui kirjutada lõppu <userinput
936
>, asendatakse kõik mustri sobivused, muidu asendatakse ainult esimene sobivus.</para>
941
>Teksti asendamine aktiivses reas</title>
944
>Armas arvuti katkestas just äsja töö ja teatas, et lähtefaili real 3902 mainitud klass <classname
946
> ei ole defineeritud.</para>
949
>"Neetud!" mõtled sina: aga muidugi peab see olema <classname
951
>. Lähed siis reale 3092 ja selle asemel, et püüda tekstist sõnakest üles leida, käivitad redigeerimiskäsu dialoogi, sisestad seal <userinput
952
>s/myclass/MyClass</userinput
953
>, vajutad nupule <guibutton
955
>, salvestad faili ja kompileerid selle – edukalt ja ilma vigadeta.</para>
961
>Teksti asendamine kogu failis</title>
964
>Kujuta ette, et sul on fail, kus esineb mitu korda <quote
965
>preili Maasikas</quote
966
>, ja siis tuleb keegi, kes ütleb, et too neiu äsja abiellus ja kannab nüüd nime <quote
967
>proua Vaarikas</quote
968
>. On päris mõistetav, et sind tabab võitmatu iha kirjutada kõikjal tekstis <quote
969
>preili Maasikas</quote
971
>proua Vaarikas</quote
975
>Selleks käivita käsurida, anna käsk <userinput
976
>%s/preili Maasikas/proua Vaarikas/</userinput
977
>, vajuta klahvi Enter - ja asendused ongi tehtud.</para>
983
>Nõudlikum näide</title>
986
>See näide selgitab <emphasis
987
>tagasiviidete</emphasis
989
>märgiklasside</emphasis
990
> kasutamist (kui sa ei tea, mis need on, vaata selgitusi edaspidi viidatud dokumentides).</para>
993
>Oletame, et sul on selline rida: <programlisting
994
>void MyClass::DoStringOps( String &foo, String &bar String *p, int &a, int &b )</programlisting>
997
>Äkki taipad, et see pole mitte kõige kaunim kood, ja otsustad kasutada võtit <constant
1000
>aadressiargumentide</quote
1001
> puhul (need on need, mille puhul argumendi ees seisab operaator &). Ühtlasi tahad ühtlustada tühikute kasutamist, nii et iga sõna vahel oleks vaid üks tühik.</para>
1004
>Käivita redigeerimiskäsu dialoog ja sisesta sinna: <userinput
1005
>s/\s+(\w+)\s+(&)/ const \1 \2/g</userinput
1006
> ning vajuta nuppu <guibutton
1008
>. Avaldise lõpus paiknev <userinput
1010
> annab regulaaravaldisele korralduse rekompileerida iga sobivus <emphasis
1011
>tagasiviidete</emphasis
1012
> säilitamiseks.</para>
1015
>Väljund: <computeroutput
1016
>void MyClass::DoStringOps( const String &foo, const String &bar String *p, const int &a, const int &b )</computeroutput
1020
>Ja ongi valmis! Mis siis tegelikult juhtus? Juhtus see, et me otsisime tühikut (<literal
1022
>), millele järgneks üks või enam tähte (<literal
1024
>), millele omakorda järgneks tühik (<literal
1026
>) ja sellele omakorda ja-märk. Otsingu käigus salvestasime tähekombinatsioonid ja ja-märgid edasiseks kasutamiseks asendusoperatsioonis. Seejärel asendasime sobinud kohad tühikuga, millele järgneb <quote
1028
>, millele järgneb tühik, millele järgneb meelde jäetud tähekombinatsioon (<literal
1030
>, millele järgneb tühik, millele järgneb meelde jäetud ja-märk (<literal
1032
>). Lihtne, eks ju?</para>
1035
>Pane tähele, et mõnel juhul oli täheühendiks <quote
1037
>, mõnel juhul aga <quote
1039
>, nii et märgiklassi <literal
1041
> ja kvantori <literal
1043
> kasutamine oli väga mõistlik tegu.</para>
1055
<sect3 id="advanced-editing-tools-commandline-commands-navigation">
1057
>Liikumiskäsud</title>
1072
>Selle käsuga saab liikuda määratud reale.</para
1087
>Selle käsuga saab liikuda sinna, kus esimest korda esineb <userinput
1089
>. Selle järgmisi esinemisi saab leida menüükäsuga <menuchoice
1091
>Redigeerimine</guimenu
1093
>Otsi järgmine</guimenuitem
1095
> (vaikimisi kiirklahv <keycap
1099
>Otsimiskäsku saab täiendavalt seadistada, kui lisada koolon ja selle järele mõni võti, nii et käsk võtab kuju <userinput
1100
>find:võtmed muster</userinput
1101
>. Kasutada saab järgmisi võtmeid: <variablelist>
1110
>Otsing tagasisuunas</para
1121
>Otsing alates kursori asukohast.</para
1132
>Otsing ainult valikus.</para
1143
>Regulaaravaldise otsing. Selle korral võid anda <userinput
1145
>, kus N on arv, mis tähistab asendusstringi hõivet.</para
1156
>Tõstutundlik otsing.</para
1167
>Ainult täissõnade sobivus.</para
1190
>See käsk võimaldab otsimist <quote
1192
>, see tähendab, otse kirjutamise ajal. Selle käitumist või otsingut saab seadistada käsule koolonit ja selle järele mõnda võtit lisades, nii et käsk võtaks kuju <userinput
1193
>ifind:võtmed muster</userinput
1194
>. Kasutada saab järgmisi võtmeid <variablelist>
1202
>Otsing tagasisuunas</para
1213
>Regulaaravaldise otsing.</para
1224
>Tõstutundlik otsing.</para
1235
>Otsing alates kursori asukohast.</para
1252
<sect1 id="advanced-editing-tools-code-folding">
1254
>Koodi voltimise kasutamine</title>
1257
>Koodi voltimine võimaldab peita redaktoris dokumendi osi, muutes nii eriti suured dokumendid lihtsamini jälgitavaks. &kate; arvutab voltimispiirkondi välja süntaksi esiletõstu definitsioonides antud reeglite põhjal, mistõttu see on kasutatav ainult teatud vormingutes - tavaliselt lähtekoodis, XML-märkekeeles ja muude selliste failide korral. Enamik koodivoltimist toetavaid esiletõstu definitsioone lubab ka kasutajal endal määrata voltimispiirkondi, mida tavaliselt tähistavad võtmesõnad <userinput
1264
>Koodivoltimise kasutamiseks lülita sisse voltimismärgid käsuga <menuchoice
1268
>Voltimismärkide näitamine</guimenuitem
1270
>. Voltimismärkide paneel vasakus servas näitab graafiliselt voltimispiirkondi, kolmnurgad osutavad antud piirkonnas võimalikele toimingutele: alla suunatud kolmnurk tähendab, et piirkond on avatud ning märgil klõpsamine suleb piirkonna, kusjuures selle asemel kuvatakse paremale osutavat kolmnurka.</para>
1273
>Voltimispiirkondades saab kasutada nelja käsku, mida tutvustab lähemalt <link linkend="view-code-folding"
1274
>menüükäskude ülevaade</link
1278
>Kui sa ei soovi koodivoltimist kasutada, võid eemaldada märke valiku <guilabel
1279
>Voltimismärkide näitamine (kui võimalik)</guilabel
1280
> eest redaktori seadistuste <link linkend="appearance"
1286
<sect1 id="advanced-editing-tools-scripting">
1288
>&kate; laiendamine skriptidega</title>
1291
>Alates &kate; versioonist 3.4, mis tuleb koos KDE 4.4-ga, saab &kate; redaktorikomponenti hõlpsalt laiendada skriptidega. Skriptikeeleks on ECMAScript (rohkem tuntud kui JavaScript). &kate; toetab kaht laadi skripte: taande- ja käsureaskriptid. </para>
1293
<sect2 id="advanced-editing-tools-scripting-indentation">
1295
>Taandeskriptid</title>
1298
>Taandeskriptid või ka treppimisskriptid annavad lähtekoodile selle kirjutamise ajal automaatselt vajaliku taande. Näiteks Enter-klahvi vajutades koodi taandetase tihtipeale suureneb. </para>
1301
>Järgnevates sektsioonides kirjeldame samm-sammult lihtsa taandeskripti loomist. Kõigepealt loo uus <filename
1303
>-fail, näiteks <filename
1304
>javascript.js</filename
1305
> oma kohalikus kodukataloogi kataloogis <filename
1306
>$KDEHOME/share/apps/katepart/script</filename
1309
<sect3 id="advanced-editing-tools-scripting-indentation-header">
1311
>Taandeskripti päis</title>
1314
>javascript.js</filename
1315
> on põimitud kommentaarina ning näeb välja selline: <programlisting>
1318
* author: Example Name <example.name@some.address.org>
1323
* required-syntax-style: javascript
1324
* indent-languages: javascript
1326
* i18n-catalog: mycatalog
1328
* Rida ilma koolonita ':' peatab päise parsimise. See tähendab, et sa võid siia
1329
* lisada muud teksti, näiteks üksikasjaliku litsentsi.
1332
> Allpool selgitatakse põhjalikult iga kirjet: <itemizedlist>
1336
>kate-script</literal
1337
> [kohustuslik]: see tekstistring peab esinema <filename
1339
>-faili esimesel real, vastasel juhul jätab &kate; skripti lihtsalt vahele. </para
1345
> [kohustuslik]: see on taandeskripti nimi, nagu seda näeb menüüs <menuchoice
1347
>Tööriistad</guimenu
1349
>Treppimine</guimenuitem
1351
> ja seadistustedialoogis. </para
1357
> [pole kohustuslik]: autori nimi ja kontaktteave. </para
1363
> [pole kohustuslik]: litsents lühidalt, näiteks BSD või LGPLv3. </para
1369
> [kohustuslik]: skripti versioon. Seda arvu tuleb alati suurendada, kui skripti muudetakse. </para
1374
>kate-version</literal
1375
> [kohustuslik]: &kate; minimaalne nõutav versioon. </para
1381
> [kohustuslik]: tüüp peab olema <quote
1383
>indentation</literal
1385
>, vastasel juhul &kate; lihtsalt jätab skripti vahele. </para
1390
>required-syntax-style</literal
1391
> [pole kohustuslik]: komadega eraldatud nõutavate süntaksi esiletõstmise stiilide loend. See on oluline taandeskriptide puhul, mis toetuvad teatavale dokumendis leiduvale esiletõstmise teabele. Kui nõutav süntaksistiil on määratud, saab taandeskripti kasutada ainult siis, kui aktiivne on sobiv esiletõstmise skeem. See takistab <quote
1392
>sobimatut käitumist</quote
1393
>, mis võib tekkida, kui taandeskripti kasutatakse eeldatud esiletõstmise skeemita. Näiteks Ruby taandeskript kasutab sellist võimalust failides <filename
1402
>indent-languages</literal
1403
> [pole kohustuslik]: komadega eraldatud süntaksistiilide loend, mille puhul taandeskript suudab korrektselt treppimist rakendada, näiteks c++, java. </para
1409
> [pole kohustuslik]: kui teatava esiletõstmisega faili puhul sobib mitu taandeskripti, siis prioriteet määrab, millist neist kasutatakse vaikimisi. </para
1414
>i18n-catalog</literal
1415
> [pole kohustuslik]: täiendav tõlkesõnumite kataloog (<literal
1417
>-fail), mis laaditakse kolmanda poole taandemääratluste tõlgete saamiseks.</para
1423
>&kate; loeb kõik paarid <quote
1427
>väärtus</replaceable
1429
>, kuni ei leia enam koolonit. See tähendab, et päis võib sisaldada suvalist teksti, näiteks litsentsi, nagu oli näha näites. </para>
1433
<sect3 id="advanced-editing-tools-scripting-indentation-body">
1435
>Taandeskripti lähtekood</title>
1437
>Kui päis on defineeritud, siis siin osas saab aimu, kuidas töötab taandeskript ise. Põhimõtteliselt näeb see välja nii: <programlisting>
1438
triggerCharacters = "{}/:;";
1439
function indent(line, indentWidth, ch)
1441
// called for each newline (ch == '\n') and all characters specified in
1442
// the global variable triggerCharacters. When calling <menuchoice
1448
// the variable ch is empty, i.e. ch == ''.
1450
// see also: Scripting API
1454
> Funktsioonil <function
1456
> on kolm parameetrit: <itemizedlist
1461
>: rida, mida asutakse treppima</para
1466
>indentWidth</literal
1467
>: treppimise ehk taande laius tühimärkide hulgana</para
1473
>: kas reavahetuse sümbol (<literal
1474
>ch == '\n'</literal
1475
>), käivitamissümbol, mille määrab kindlaks <literal
1476
>triggerCharacters</literal
1477
> või ka tühi, kui kasutaja kustub välja toimingu <menuchoice
1479
>Tööriistad</guimenu
1481
>Joondamine</guimenuitem
1486
> Funktsiooni <function
1488
> tagastatav väärtus määrab, kuidas rida trepitakse. Kui tagastatud väärtus on lihtsalt täisarv, tõlgendatakse seda järgnevalt: <itemizedlist
1491
>tagastatud väärtus <literal
1493
>: ei tehta midagi</para
1497
>tagastatud väärtus <literal
1499
>: säilitatakse taandus (otsitakse eelmist mittetühja rida)</para
1503
>tagastatud väärtus <literal
1505
>: arv >= 0 määrab taandesügavuse tühimärkide arvuna</para
1508
> Teise võimalusena tagastatakse kahest elemendist koosnev massiiv: <itemizedlist
1512
>return [ indent, align ];</literal
1516
> Sel juhul on esimene element taandesügavus nagu ülal ja samade eriväärtustega. Teine element on aga absoluutväärtus, mis tähistab <quote
1518
> veergu. Kui see väärtus on suurem kui taande väärtus, tähistab nende erinevus tühimärkide arvu, mis tuleb lisada esimese parameetriga määratud taande järele. Muul juhul teist arvu eiratakse. Tabeldusmärkide ja tühimärkide kasutamist treppimisel nimetatakse sageli <quote
1519
>segarežiimiks</quote
1523
>Vaatame järgmist näidet. Eeldame, et treppimiseks kasutatakse tabeldusmärke ning nende laiuseks on määratud 4. <tab> tähistab tabeldusmärki ja '.' tühimärki: <programlisting>
1524
1: <tab><tab>foobar("hello",
1525
2: <tab><tab>......."world");
1527
> Teise taandega rea puhul tagastab funktsioon <function
1529
> [8, 15]. Seepärast lisatakse kaks tabeldusmärki veeru 8 treppimiseks ning 7 tühimärki teise parameetri joondamiseks esimese alla, et see oleks joondatud ka siis, kui faili vaadatakse mõne muu tabeldusmärgi laiusega. </para>
1532
>KDE vaikimisi paigalduse puhul pakub &kate; mitut taandeskripti. Vastava JavaScripti lähtekoodi leiab kataloogist <filename
1533
>$KDEDIR/share/apps/katepart/script</filename
1537
>Taandeskripti arendamiseks tuleb skriptid taaslaadida, et näha, kas muudatused, mida nad teevad, on korrektsed. Terve rakenduse taaskäivitamise asemel lülitu lihtsalt käsureale ja anna käsk <command
1538
>reload-scripts</command
1542
>Kui lood mõne kasuliku skripti, võiksid kaaluda selle annetamist ka &kate; hüvanguks. Selleks võib ühendust võtta <ulink url="mailto:kwrite-devel@kde.org"
1543
>postiloendis</ulink
1549
<sect2 id="advanced-editing-tools-scripting-command-line">
1551
>Käsureaskriptid</title>
1554
>Et kõigi vajadusi on ühekorraga raske rahuldada, toetab &kate; pisikesi abitööriistu teksti kiireks töötlemiseks <link linkend="advanced-editing-tools-commandline"
1555
>sisseehitatud käsurea abil</link
1556
>. Näiteks käsk <command
1558
> on teostatud skriptina. Järgnevas osas selgitatakse, kuidas luua <filename
1560
>-faile &kate; laiendamiseks mis tahes abiskriptidega. </para>
1563
>Käsureaskriptid paiknevad samas kataloogis taandeskriptidega. Niisiis, esimese sammuna loo uus <filename
1565
>-fail nimega <filename
1566
>myutils.js</filename
1567
> kohalikus kodukataloogis <filename
1568
>$KDEHOME/share/apps/katepart/script</filename
1571
<sect3 id="advanced-editing-tools-scripting-command-line-header">
1573
>Käsureaskripti päis</title>
1575
>Kõigi käsureaskriptide päis on põimitud kommentaarina ning näeb välja selline: <programlisting>
1577
* author: Example Name <example.name@some.address.org>
1582
* functions: sort, format-paragraph
1583
* i18n-catalog: mycatalog
1585
* Rida ilma koolonita ':' peatab päise parsimise. See tähendab, et sa võid siia
1586
* lisada muud teksti, näiteks üksikasjaliku litsentsi.
1589
> Allpool selgitatakse põhjalikult iga kirjet: <itemizedlist>
1593
>kate-script</literal
1594
> [kohustuslik]: see tekstistring peab esinema <filename
1596
>-faili esimesel real, vastasel juhul jätab &kate; skripti lihtsalt vahele.</para
1602
> [pole kohustuslik]: autori nimi ja kontaktteave.</para
1608
> [pole kohustuslik]: litsents lühidalt, näiteks BSD või LGPLv3.</para
1614
> [kohustuslik]: skripti versioon. Seda arvu tuleb alati suurendada, kui skripti muudetakse.</para
1619
>kate-version</literal
1620
> [kohustuslik]: &kate; minimaalne nõutav versioon.</para
1626
> [kohustuslik]: tüüp peab olema <quote
1630
>, vastasel juhul &kate; lihtsalt jätab skripti vahele.</para
1636
> [kohustuslik]: komadega eraldatud skripti käskude loend.</para
1641
>i18n-catalog</literal
1642
> [pole kohustuslik]: täiendav tõlkesõnumite kataloog (<literal
1644
>-fail), mis laaditakse kolmanda poole skriptide tõlgete saamiseks.</para
1650
>&kate; loeb kõik paarid <quote
1654
>väärtus</replaceable
1656
>, kuni ei leia enam koolonit. See tähendab, et päis võib sisaldada suvalist teksti, näiteks litsentsi, nagu ka eespool olnud näiteks. Võtme functions väärtus on komadega eraldatud käsureakäskude loend. See tähendab, et üks skript võib sisaldada suvalisel hulgal käsureakäske. Kõik funktsioonid on saadaval &kate; <link linkend="advanced-editing-tools-commandline"
1657
>sisseehitatud käsurea vahendusel</link
1661
<sect3 id="advanced-editing-tools-scripting-command-line-body">
1663
>Skripti lähtekood</title>
1666
>Kõik päises osutatud funktsioonid tuleb skriptis teostada. Nii peab näiteks ülaltoodud näites esitatud skript teostama kaks funktsiooni: <command
1669
>format-paragraph</command
1670
>. Kõigil funktsioonidel on järgmine süntaks: <programlisting
1671
>function <nimi>(arg1, arg2, ...)
1673
// ... implementation, see also: Scripting API
1679
>Argumendid edastatakse käsureal funktsioonile kujul <parameter
1683
> jne. Kõigi käskude kohta dokumentatsiooni pakkumiseks teosta lihtsalt funktsioon '<function
1685
>': <programlisting>
1688
if (cmd == "sort") {
1689
return i18n("Sort the selected text.");
1690
} else if (cmd == "...") {
1697
> käivitamine kutsub välja abifunktsiooni argumendiga <parameter
1699
>, mille väärtuseks on määratud antud käsk, s.t <parameter
1700
>cmd == "sort"</parameter
1701
>. &kate; tagastab seejärel teksti kasutajale nähtava dokumentatsioonina. Kontrolli kindlasti, et ikka <link linkend="advanced-editing-tools-scripting-api-i18n"
1702
>tõlgid stringid</link
1705
<sect4 id="advanced-editing-tools-scripting-command-line-shortcuts">
1707
>Kiirklahvid</title>
1709
>Kiirklahvide omistamiseks peab skript pakkuma järgmisel moel funktsiooni <literal
1712
function action(cmd)
1714
var a = new Object();
1715
if (cmd == "sort") {
1716
a.text = i18n("Sort Selected Text");
1719
a.interactive = false;
1721
} else if (cmd == "moveLinesDown") {
1722
// same for next action
1727
> Funktsiooni parameeter <literal
1729
> määrab käsu, mille jaoks kiirklahv on mõeldud. Tagastatavas JavaScripti objektis tuleb määrata ära mitu välja: <itemizedlist>
1734
> [kohustuslik]: tekst, mida näeb menüüs <menuchoice
1736
>Tööriistad</guimenu
1738
>Skriptid</guisubmenu
1740
>. Kontrolli, et kasutaksid tõlgete jaoks <literal
1748
> [pole kohustuslik]: ikoon, mida näeb menüüs teksti kõrval. Siin võib kasutada kõiki KDE ikooninimesid.</para
1753
>a.category</literal
1754
> [pole kohustuslik]: kategooria määramisel näeb skripti alammenüüs. Kontrolli, et kasutaksid tõlgete jaoks <literal
1761
>a.interactive</literal
1762
>: kui skript vajab kasutajapoolset sisendit, tuleb selle väärtuseks määrata <literal
1769
>a.shortcut</literal
1770
> [pole kohustuslik]: siin määratud kiirklahv on vaikimisi kiirklahv. Näide: Ctrl+Alt+t. Täpsemalt kõneldakse sellest <ulink url="http://doc.qt.nokia.com/latest/qt.html#Key-enum"
1771
>Qt dokumentatsioonis</ulink
1779
>Käsureaskripti arendamiseks tuleb skriptid taaslaadida, et näha, kas muudatused, mida nad teevad, on korrektsed. Terve rakenduse taaskäivitamise asemel lülitu lihtsalt käsureale ja anna käsk <command
1780
>reload-scripts</command
1784
>Kui lood mõne kasuliku skripti, võiksid kaaluda selle annetamist ka &kate; hüvanguks. Selleks võib ühendust võtta <ulink url="mailto:kwrite-devel@kde.org"
1785
>postiloendis</ulink
1792
<sect2 id="advanced-editing-tools-scripting-api">
1794
>Skriptimise API</title>
1797
>Allpool esitatud skriptimise API kehtib kõigi skriptide, s.t nii taande- kui ka käsureakäskude skriptide kohta. Enne skripti sisu laadimist lisab &kate; kõigepealt skriptimiskontekstile mõned prototüübid ja funktsioonid. Seepärast sisaldabki API prototüüpe tekstikursorite ja tekstivahemike kujul ning neid võib leida kataloogis <filename
1798
>$KDEDIR/share/apps/katepart/api</filename
1799
>. Kõigi JavaScripti failide nimed vastavad järgmisele skeemile: <programlisting>
1800
<arv>_<nimi>.js
1802
> Arvul on kaks kohta, nimi aga on suvaline nimi, näiteks <quote
1806
>. Arvude abil kontrollib &kate; API täitmise järjekorda. Nii kutsutakse fail <filename
1807
>05_cursor.js</filename
1808
> välja enne faili <filename
1809
>10_range.js</filename
1810
>. (Samasugune käivitamise järjekord kehtib näiteks Linuxis käitustasemete puhul.) </para>
1813
>Standardse skriptimise API laiendamiseks oma funktsioonide ja prototüüpidega loo lihtsalt uus fail KDE kohalikus seadistuste kataloogis <filename
1814
>$KDEHOME/share/apps/katepart/api</filename
1815
> ja kanna hoolt, et selle arv (täitmise järjekord) oleks suurem kui teistel <filename
1817
>-failidel globaalses kataloogis <filename
1818
>$KDEDIR/share/apps/katepart/api</filename
1819
>. &kate; otsib automaatselt mõlemast kataloogis <filename
1821
>-faile ja käivitab need õiges järjekorras. </para>
1824
>Olemasolevate prototüüpide, näiteks <classname
1828
>, laiendamiseks <emphasis
1830
> soovitatav muuta globaalseid <filename
1832
>-faile. Selle asemel loo <filename
1834
>-fail kohalikus kataloogis, mis käivitatakse hiljem kui <filename
1835
>05_cursor.js</filename
1836
> ja seejärel muuda prototüüpi <classname
1838
> JavaScriptis. </para>
1840
<sect3 id="advanced-editing-tools-scripting-api-prototypes">
1842
>Kursorid ja vahemikud</title>
1845
>Kuna &kate; on tekstiredaktor, siis on kogu skriptimise API aluseks, nii palju kui võimalik, kursorid ja vahemikud. Kursor kujutab endast lihtsat <literal
1846
>(rida,veerg)</literal
1847
> määratlust, mis näitab ära teksti asukoha dokumendis. Vahemik aga paneb paika tekstivahemiku kursori algasukohast selle lõppasukohani. API seletatakse üksikasjalikult lahti järgmistes lõikudes. </para>
1849
<sect4 id="advanced-editing-tools-scripting-api-cursors">
1851
>Kursori prototüüp</title>
1862
>Konstruktor. Tagastab kursori asukohas <literal
1867
>var cursor = new Cursor();</function
1891
>Konstruktor. Tagastab kursori asukohas (rida, veerg). </para>
1894
>var cursor = new Cursor(3, 42);</function
1906
>Cursor <replaceable
1914
>Koopia konstruktor. Tagastab kursori koopia <replaceable
1919
>var copy = new Cursor(other);</function
1930
>Cursor Cursor.clone();
1935
>Tagastab kursori klooni.</para>
1938
>var clone = cursor.clone();</function
1949
>bool Cursor.isValid();
1954
>Kontrollib, kas kursor on korrektne. Kursor ei ole korrektne, kui rida ja/või veeru väärtuseks on määratud <literal
1959
>var valid = cursor.isValid();</function
1970
>Cursor Cursor.invalid();
1975
>Tagastab uue ebakorrektse kursori asukohas <literal
1980
>var invalidCursor = cursor.invalid();</function
1990
>int Cursor.compareTo(<parameter
1991
>Cursor <replaceable
1999
>Võrdleb antud kursorit kursoriga <replaceable
2001
>. Tagastab <itemizedlist>
2006
>, kui antud kursor paikneb enne kursorit <replaceable
2014
>, kui mõlemad kursorid on võrdsed,</para
2020
>, kui antud kursor paikneb pärast kursorit <replaceable
2035
>bool Cursor.equals(<parameter
2036
>Cursor <replaceable
2046
>, kui antud kursor ja kursor <replaceable
2048
> on võrdsed, vastasel juhul <literal
2060
>String Cursor.toString();
2065
>Tagastab kursori stringina kujul <quote
2067
>Cursor(rida, veerg)</literal
2077
<sect4 id="advanced-editing-tools-scripting-api-ranges">
2079
>Vahemiku prototüüp</title>
2090
>Konstruktor <literal
2091
>new Range()</literal
2092
> väljakutsumine tagastab vahemiku (0, 0) - (0, 0). </para
2103
>Cursor <replaceable
2107
>Cursor <replaceable
2115
>Konstruktor <literal
2116
>new Range(<replaceable
2121
> väljakutsumine tagastab vahemiku (<replaceable
2137
>algusRida</replaceable
2141
>algusVeerg</replaceable
2145
>lõppRida</replaceable
2149
>lõppVeerg</replaceable
2156
>Konstruktor. <literal
2157
>new Range(<replaceable
2158
>algusRida</replaceable
2160
>algusVeerg</replaceable
2162
>lõppRida</replaceable
2164
>lõppVeerg</replaceable
2166
> tagastab vahemiku alates (<replaceable
2167
>algusRida</replaceable
2169
>algusVeerg</replaceable
2170
>) kuni (<replaceable
2171
>lõppRida</replaceable
2173
>lõppVeerg</replaceable
2193
>Koopia konstruktor. Tagastab vahemiku koopia <replaceable
2205
>Range Range.clone();
2210
>Tagastab vahemiku klooni. </para>
2213
>var clone = range.clone();</function
2224
>bool Range.isValid();
2231
>, kui nii algus- kui ka lõppkursor on korrektsed, vastasel juhul <literal
2236
>var valid = range.isValid();</function
2247
>bool Range.invalid();
2252
>Tagastab vahemiku alates (-1, -1) kuni (-1, -1). </para
2262
>bool Range.contains(<parameter
2263
>Cursor <replaceable
2264
>kursor</replaceable
2273
>, kui antud vahemik sisaldab kursori asukohta, vastasel juhul <literal
2285
>bool Range.contains(<parameter
2296
>, kui antud vahemik sisaldab vahemikku <replaceable
2298
>, vastasel juhul <literal
2310
>bool Range.containsColumn(<parameter
2323
> paikneb vahemikus <literal
2324
>[start.column, end.column)</literal
2325
>, vastasel juhul <literal
2337
>bool Range.containsLine(<parameter
2350
> paikneb vahemikus <literal
2351
>[start.line, end.line)</literal
2352
>, vastasel juhul <literal
2364
>bool Range.overlaps(<parameter
2375
>, kui antud vahemikul ja vahemikul <replaceable
2377
> on ühine piirkond, vastasel juhul <literal
2389
>bool Range.overlapsLine(<parameter
2402
> paikneb vahemikus <literal
2403
>[start.line, end.line]</literal
2404
>, vastasel juhul <literal
2416
>bool Range.overlapsColumn(<parameter
2429
> paikneb vahemikus <literal
2430
>[start.column, end.column]</literal
2431
>, vastasel juhul <literal
2443
>bool Range.equals(<parameter
2454
>, kui antud vahemik ja vahemik <replaceable
2456
> on võrdsed, vastasel juhul <literal
2468
>String Range.toString();
2473
>Tagastab vahemiku stringina kujul <quote
2475
>Range(Cursor(rida, veerg), Cursor(rida, veerg))</literal
2485
<sect3 id="advanced-editing-tools-scripting-api-global">
2487
>Globaalsed funktsioonid</title>
2489
>See sektsioon loetleb kõik globaalsed funktsioonid.</para>
2491
<sect4 id="advanced-editing-tools-scripting-api-debug">
2499
>void debug(<parameter
2500
>String <replaceable
2508
>Näitab <replaceable
2510
>i standardväljundis <literal
2512
> samas konsoolis, kus rakendus käivitati. </para
2518
<sect4 id="advanced-editing-tools-scripting-api-i18n">
2523
>Täieliku lokaliseerimise pakkumiseks on olemas mitu funktsiooni, mille abil tõlkida skriptide stringe, nimelt <literal
2531
>. Need funktsioonid toimivad täpselt nii nagu <ulink url="http://techbase.kde.org/Development/Tutorials/Localization/i18n"
2532
> KDE tõlkimisfunktsioonid</ulink
2536
>Tõlkimisfunktsioonid tõlgivad tõlkimiseks määratud stringid KDE tõlkesüsteemi kaudu rakenduse kasutatavasse keelde. Ametlikus &kate; lähtekoodis arendatud skriptide stringid hangitakse ja tõlgitakse automaatselt. See tähendab, et &kate; arendajana ei ole vaja pead vaevata tõlkesõnumite saatusega. Kuid kolmanda poole skriptide puhul, mida arendatakse väljaspool KDE-d, tuleb sõnumid ise kätte saada ja tõlkida lasta. Skriptiga tuleb kaasa panna tõlkekataloog, mis sisaldab kõiki tõlgitavaid stringe. Lisaks peab skripti päises konkreetselt ära määrama laaditava kataloogi, milleks on mõeldud <literal
2537
>i18n-catalog</literal
2544
>void i18n(<parameter
2545
>String <replaceable
2555
>Tõlgib <replaceable
2557
>i rakenduse kasutatavasse keelde. Argumendid <replaceable
2559
>, ... ei ole kohustuslikud ning neid kasutatakse kohatäitjate <literal
2563
> jne. asendamiseks.</para
2572
>void i18nc(<parameter
2573
>String <replaceable
2574
>kontekst</replaceable
2577
>String <replaceable
2587
>Tõlgib <replaceable
2589
>i rakenduse kasutatavasse keelde. Lisaks näevad tõlkijad stringi <replaceable
2590
>kontekst</replaceable
2591
>, mis aitab neil paremini leida õiget tõlkevastet. Argumendid <replaceable
2593
>, ... ei ole kohustuslikud ning neid kasutatakse kohatäitjate <literal
2597
> jne. asendamiseks.</para
2606
>void i18np(<parameter
2607
>String <replaceable
2608
>ainsus</replaceable
2611
>String <replaceable
2612
>mitmus</replaceable
2625
>Tõlgib kas <replaceable
2626
>ainsus</replaceable
2628
>mitmus</replaceable
2629
>e rakenduse kasutatavasse keelde sõltuvalt määratud <replaceable
2631
>ust. Argumendid <replaceable
2633
>, ... ei ole kohustuslikud ning neid kasutatakse kohatäitjate <literal
2637
> jne. asendamiseks.</para
2646
>void i18ncp(<parameter
2647
>String <replaceable
2648
>kontekst</replaceable
2651
>String <replaceable
2652
>ainsus</replaceable
2655
>String <replaceable
2656
>mitmus</replaceable
2669
>Tõlgib kas <replaceable
2670
>ainsus</replaceable
2672
>mitmus</replaceable
2673
>e rakenduse kasutatavasse keelde sõltuvalt määratud <replaceable
2675
>ust. Lisaks näevad tõlkijad stringi <replaceable
2676
>kontekst</replaceable
2677
>, mis aitab neil paremini leida õiget tõlkevastet. Argumendid <replaceable
2679
>, ... ei ole kohustuslikud ning neid kasutatakse kohatäitjate <literal
2683
> jne. asendamiseks.</para
2691
<sect3 id="advanced-editing-tools-scripting-api-view">
2695
>Skripti käivitamisel on alati olemas globaalne muutuja <quote
2699
>, mis tähistab aktiivset redaktorivaadet. Järgnevalt on loetletud saadaolevad vaatefunktsioonid. <variablelist
2704
>Cursor view.cursorPosition()</function
2710
>Tagastab aktiivse kursori asukoha vaates.</para
2721
>void view.setCursorPosition(<parameter
2731
>void view.setCursorPosition(<parameter
2732
>Cursor <replaceable
2733
>kursor</replaceable
2741
>Tagastab aktiivse kursori asukoha vaates.</para
2751
>void view.setCursorPosition(<parameter
2760
void view.setCursorPosition(<parameter
2761
>Cursor <replaceable
2762
>kursor</replaceable
2769
>Määrab aktiivse kursori asukoha kas (rida, veerg) või määratud kursori järgi. </para
2779
>Cursor view.virtualCursorPosition();
2784
>Tagastab virtuaalse kursori asukoha tabeldusmärgis, arvestades tabeldusmärgile taande puhul määratud tühimärkide arvu. </para
2794
>void view.setVirtualCursorPosition(<parameter
2803
void view.setVirtualCursorPosition(<parameter
2804
>Cursor <replaceable
2805
>kursor</replaceable
2812
>Määrab aktiivse virtuaalse kursori asukoha kas (rida, veerg) või määratud kursori järgi. </para
2822
>String view.selectedText();
2827
>Tagastab valitud teksti. Kui teksti pole valitud, on tagastatav string tühi. </para
2837
>bool view.hasSelection();
2844
>, kui vaade sisaldab valitud teksti, vastasel juhul <literal
2856
>Range view.selection();
2861
>Tagastab valitud teksti vahemiku. Tagastatud vahemik on vigane, kui teksti pole valitud. </para
2871
>void view.setSelection(<parameter
2873
>vahemik</replaceable
2880
>Määrab valitud teksti valitud vahemikku. </para
2890
>void view.removeSelectedText();
2895
>Eemaldab valitud teksti. Kui vaates pole valitud teksti, ei tee midagi. </para
2905
>void view.selectAll();
2910
>Valib kogu dokumendi teksti. </para
2920
>void view.clearSelection();
2925
>Puhastab tekstivaliku ilma teksti eemaldamata. </para
2932
<sect3 id="advanced-editing-tools-scripting-api-document">
2934
>Dokumendi API</title>
2936
>Skripti käivitamisel on alati olemas globaalne muutuja <quote
2940
>, mis tähistab aktiivset dokumenti. Järgnevalt on loetletud saadaolevad dokumendifunktsioonid. <variablelist
2944
>String document.fileName();
2949
>Tagastab dokumendi failinime või tühja stringi salvestamata tekstipuhvri korral. </para
2959
>String document.url();
2964
>Tagastab dokumendi täieliku URL-i või tühja stringi salvestamata tekstipuhvri korral. </para
2974
>String document.mimeType();
2979
>Tagastab dokumendi MIME tüübi või MIME tüübi <literal
2980
>application/octet-stream</literal
2981
>, kui sobivat MIME tüüpi ei leita. </para
2991
>String document.encoding();
2996
>Tagastab faili salvestamisel kasutatava kodeeringu. </para
3005
>String document.highlightingMode();
3010
>Tagastab kogu dokumendis kasutatava globaalse esiletõstmise režiimi. </para
3019
>String document.highlightingModeAt(<parameter
3020
>Cursor <replaceable
3021
>asukoht</replaceable
3028
>Tagastab dokumendi määratud asukohas kasutatava esiletõstmise režiimi. </para
3037
>Array document.embeddedHighlightingModes();
3042
>Tagastab dokumenti põimitud esiletõstmise režiimide massiivi. </para
3051
>bool document.isModified();
3058
>, kui dokument sisaldab salvestamata muudatusi, vastasel juhul <literal
3070
>String document.text();
3075
>Tagastab kogu dokumendi sisu üheainsa tekstistringina. Reavahetusi tähistavad reavahetussümbolid <quote
3089
>String document.text(<parameter
3091
>alatesReast</replaceable
3095
>alatesVeerust</replaceable
3099
>kuniReani</replaceable
3103
>kuniVeeruni</replaceable
3106
String document.text(<parameter
3107
>Cursor <replaceable
3108
>alates</replaceable
3111
>Cursor <replaceable
3115
String document.text(<parameter
3117
>vahemik</replaceable
3124
>Tagastab teksti määratud vahemikust. Lähtekoodi parema loetavuse huvides on soovitatav kasutada kursorile ja vahemikule tuginevaid versioone. </para
3134
>String document.line(<parameter
3143
>Tagastab valitud teksti stringina. String on tühi, kui soovitud rida jääb vahemikust välja. </para
3153
>String document.wordAt(<parameter
3162
String document.wordAt(<parameter
3163
>Cursor <replaceable
3164
>kursor</replaceable
3171
>Tagastab sõna määratud kursori asukohas. </para
3181
>String document.charAt(<parameter
3190
String document.charAt(<parameter
3191
>Cursor <replaceable
3192
>kursor</replaceable
3199
>Tagastab sümboli määratud kursori asukohas. </para
3209
>String document.firstChar(<parameter
3218
>Tagastab määratud <replaceable
3230
>String document.lastChar(<parameter
3239
>Tagastab määratud <replaceable
3241
> esimese märgi, mis ei ole tühimärk. Kui rida on tühi või sisaldab ainult tühimärke, on tagastatud string tühi. </para
3251
>bool document.isSpace(<parameter
3260
bool document.isSpace(<parameter
3261
>Cursor <replaceable
3262
>kursor</replaceable
3271
>, kui määratud kursori asukohas paiknev märk on tühimärk, vastasel juhul <literal
3283
>bool document.matchesAt(<parameter
3296
>String <replaceable
3300
bool document.matchesAt(<parameter
3301
>Cursor <replaceable
3302
>kursor</replaceable
3305
>String <replaceable
3315
>, kui määratud <replaceable
3317
> sobib tekstiga määratud kursori asukohas, vastasel juhul <literal
3329
>bool document.startsWith(<parameter
3334
>String <replaceable
3339
>skipWhiteSpaces</replaceable
3348
>, kui rida algab <replaceable
3349
>tekstiga</replaceable
3350
>, vastasel juhul <literal
3352
>. Argument <replaceable
3353
>skipWhiteSpaces</replaceable
3354
> määrab, kas alustavaid tühimärke eiratakse või mitte. </para
3364
>bool document.endsWith(<parameter
3369
>String <replaceable
3374
>skipWhiteSpaces</replaceable
3383
>, kui rida lõpeb <replaceable
3384
>tekstiga</replaceable
3385
>, vastasel juhul <literal
3387
>. Argument <replaceable
3388
>skipWhiteSpaces</replaceable
3389
> määrab, kas lõpetavaid tühimärke eiratakse või mitte. </para
3399
>bool document.setText(<parameter
3400
>String <replaceable
3408
>Määrab kogu dokumendi teksti. </para
3418
>bool document.clear();
3423
>Eemaldab kogu dokumendi teksti. </para
3433
>bool document.truncate(<parameter
3442
bool document.truncate(<parameter
3443
>Cursor <replaceable
3444
>kursor</replaceable
3451
>Kärbib määratud rea määratud veeruga või kursori asukohaga. Tagastab <literal
3453
> õnnestumise korral või <literal
3455
>, kui määratud rida ei kuulu dokumendi vahemikku. </para
3465
>bool document.insertText(<parameter
3478
>String <replaceable
3482
bool document.insertText(<parameter
3483
>Cursor <replaceable
3484
>kursor</replaceable
3487
>String <replaceable
3496
>teksti</replaceable
3497
> määratud kursori asukohta. Tagastab <literal
3499
> õnnestumise korral või <literal
3501
>, kui dokument on kirjutuskaitstud. </para
3511
>bool document.removeText(<parameter
3513
>alatesReast</replaceable
3517
>alatesVeerust</replaceable
3521
>kuniReani</replaceable
3525
>kuniVeeruni</replaceable
3528
bool document.removeText(<parameter
3529
>Cursor <replaceable
3530
>alates</replaceable
3533
>Cursor <replaceable
3537
bool document.removeText(<parameter
3539
>vahemik</replaceable
3546
>Eemaldab teksti määratud vahemikus. Tagastab <literal
3548
> õnnestumise korral või <literal
3550
>, kui dokument on kirjutuskaitstud. </para
3560
>bool document.insertLine(<parameter
3565
>String <replaceable
3573
>Lisab teksti määratud reale. Tagastab <literal
3575
> õnnestumise korral või <literal
3577
>, kui dokument on kirjutuskaitstud või rida ei paikne dokumendi vahemikus. </para
3587
>bool document.removeLine(<parameter
3596
>Eemaldab määratud tekstirea. Tagastab <literal
3598
> õnnestumise korral või <literal
3600
>, kui dokument on kirjutuskaitstud või rida ei paikne dokumendi vahemikus. </para
3610
>void document.joinLines(<parameter
3612
>algusRida</replaceable
3616
>lõppRida</replaceable
3623
>Ühendab read alates <replaceable
3624
>algusRida</replaceable
3626
>lõppRida</replaceable
3627
>. Kaht järjestikust tekstirida eraldab alati üks tühik. </para
3637
>int document.lines();
3642
>Tagastab dokumendi ridade arvu. </para
3652
>int document.length();
3657
>Tagastab dokumendi sümbolite arvu. </para
3667
>int document.lineLength(<parameter
3676
>Tagastab <replaceable
3688
>void document.editBegin();
3693
>Alustab redigeerimisrühma tagasivõtmiste või uuestitegemiste rühmitamiseks. Kontrolli, et <function
3694
>editEnd()</function
3695
> oleks alati sama palju välja kutsutud kui <function
3696
>editBegin()</function
3698
>editBegin()</function
3699
> väljakutse kasutab seesmiselt referentsarvestit, s.t selle väljakutse korral on võimalik pesastamine. </para
3709
>void document.editEnd();
3714
>Lõpetab redigeerimisrühma. Viimane <function
3715
>editEnd()</function
3716
> väljakutse (s.t see, mis vastab esimesele <function
3717
>editBegin()</function
3718
> väljakutsele) lõpetab redigeerimisastme. </para
3728
>int document.firstColumn(<parameter
3737
>Tagastab määratud <replaceable
3739
> esimese mittetühimärgiga veeru. Kui real on ainult tühimärgid, tagastatakse <literal
3751
>int document.lastColumn(<parameter
3760
>Tagastab määratud <replaceable
3762
> viimase mittetühimärgiga veeru. Kui real on ainult tühimärgid, tagastatakse <literal
3774
>int document.prevNonSpaceColumn(<parameter
3783
int document.prevNonSpaceColumn(<parameter
3784
>Cursor <replaceable
3785
>kursor</replaceable
3792
>Tagastab mittetühimärkidega veeru alates aktiivsest kursori asukohast tagasisuunas otsides. </para
3802
>int document.nextNonSpaceColumn(<parameter
3811
int document.nextNonSpaceColumn(<parameter
3812
>Cursor <replaceable
3813
>kursor</replaceable
3820
>Tagastab mittetühimärkidega veeru alates aktiivsest kursori asukohast edasisuunas otsides. </para
3830
>int document.prevNonEmptyLine(<parameter
3839
>Tagastab järgmise mittetühimärkidega mittetühja rea, otsides tagasisuunas. </para
3849
>int document.nextNonEmptyLine(<parameter
3858
>Tagastab järgmise mittetühimärkidega mittetühja rea, otsides edasisuunas. </para
3868
>bool document.isInWord(<parameter
3869
>String <replaceable
3870
>sümbol</replaceable
3874
>atribuut</replaceable
3883
>, kui määratud <replaceable
3884
>sümbol</replaceable
3885
> määratud <replaceable
3886
>atribuudiga</replaceable
3887
> võib olla sõna osa, vastasel juhul <literal
3899
>bool document.canBreakAt(<parameter
3900
>String <replaceable
3901
>sümbol</replaceable
3905
>atribuut</replaceable
3914
>, kui määratud <replaceable
3915
>sümbol</replaceable
3916
> määratud <replaceable
3917
>atribuudiga</replaceable
3918
> sobib reamurdmiseks, vastasel juhul <literal
3930
>bool document.canComment(<parameter
3932
>algusAtribuut</replaceable
3936
>lõppAtribuut</replaceable
3945
>, kui määratud atribuudiga algav ja lõppev vahemik sobib kommenteerimiseks, vastasel juhul <literal
3957
>String document.commentMarker(<parameter
3959
>atribuut</replaceable
3966
>Tagastab kommentaaritähise määratud <replaceable
3967
>atribuudiga</replaceable
3968
> üherealise kommentaari puhul. </para
3978
>String document.commentStart(<parameter
3980
>atribuut</replaceable
3987
>Tagastab kommentaaritähise määratud <replaceable
3988
>atribuudiga</replaceable
3989
> mitmerealise kommentaari alguse puhul. </para
3999
>String document.commentEnd(<parameter
4001
>atribuut</replaceable
4008
>Tagastab kommentaaritähise määratud <replaceable
4009
>atribuudiga</replaceable
4010
> mitmerealise kommentaari lõpu puhul. </para
4021
>int document.attribute(<parameter
4030
int document.attribute(<parameter
4031
>Cursor <replaceable
4032
>kursor</replaceable
4039
>Tagastab atribuudi määratud kursori asukohas. </para
4049
>bool document.isAttribute(<parameter
4059
>atribuut</replaceable
4062
bool document.isAttribute(<parameter
4063
>Cursor <replaceable
4064
>kursor</replaceable
4068
>atribuut</replaceable
4077
>, kui kursori asukohas paiknev atribuut on võrdne <replaceable
4078
>atribuudiga</replaceable
4079
>, vastasel juhul <literal
4091
>String document.attributeName(<parameter
4100
String document.attributeName(<parameter
4101
>Cursor <replaceable
4102
>kursor</replaceable
4109
>Tagastab atribuudi nime inimloetava tekstina. See võrdub nimega <literal
4111
> süntaksi esiletõstmise failides. </para
4121
>bool document.isAttributeName(<parameter
4130
>String <replaceable
4134
bool document.isAttributeName(<parameter
4135
>Cursor <replaceable
4136
>kursor</replaceable
4139
>String <replaceable
4149
>, kui kursori asukohas paikneva atribuudi nimi sobib määratud <replaceable
4150
>nimega</replaceable
4151
>, vastasel juhul <literal
4163
>String document.variable(<parameter
4164
>String <replaceable
4172
>Tagastab soovitud dokumendi muutuja <replaceable
4174
> väärtuse. Kui dokumendi muutujat ei ole olemas, tagastatakse tühi string. </para
4185
>int document.firstVirtualColumn(<parameter
4194
>Tagastab määratud rea esimese mittetühimärgi virtuaalse veeru või <literal
4196
>, kui rida on tühi või sisaldab ainult tühimärke. </para
4206
>int document.lastVirtualColumn(<parameter
4215
>Tagastab määratud rea viimase mittetühimärgi virtuaalse veeru või <literal
4217
>, kui rida on tühi või sisaldab ainult tühimärke. </para
4227
>int document.toVirtualColumn(<parameter
4236
int document.toVirtualColumn(<parameter
4237
>Cursor <replaceable
4238
>kursor</replaceable
4241
Cursor document.toVirtualCursor(<parameter
4242
>Cursor <replaceable
4243
>kursor</replaceable
4250
>Teisendab määratud <quote
4252
> kursori asukoha virtuaalseks kursori asukohaks, tagastades täisarvu või objekti Cursor. </para
4262
>int document.fromVirtualColumn(<parameter
4268
>virtuaalneVeerg</replaceable
4271
int document.fromVirtualColumn(<parameter
4272
>Cursor <replaceable
4273
>virtuaalneKursor</replaceable
4276
Cursor document.fromVirtualCursor(<parameter
4277
>Cursor <replaceable
4278
>virtuaalneKursor</replaceable
4285
>Teisendab määratud virtuaalse kursori asukoha <quote
4287
> kursori asukohaks. tagastades täisarvu või objekti Cursor. </para
4297
>Cursor document.anchor(<parameter
4307
>sümbol</replaceable
4310
Cursor document.anchor(<parameter
4311
>Cursor <replaceable
4312
>kursor</replaceable
4316
>sümbol</replaceable
4323
>Otsib määratud sümbolit tagasisuunas alates määratud kursorist. Kui näiteks '(' edastatakse sümbolina, tagastab see funktsioon avava '(' asukoha. Referentsarvestust, s.t teisi '(...)', eiratakse. </para
4333
>Cursor document.rfind(<parameter
4342
>String <replaceable
4347
>atribuut</replaceable
4350
Cursor document.rfind(<parameter
4351
>Cursor <replaceable
4352
>kursor</replaceable
4355
>String <replaceable
4360
>atribuut</replaceable
4367
>Otsib tagasisuunas määratud teksti sobiva <replaceable
4368
>atribuudiga</replaceable
4369
>. Argumenti <replaceable
4370
>atribuut</replaceable
4371
> eiratakse, kui selle väärtuseks on määratud <literal
4373
>. Tagastatud kursor on vigane, kui teksti ei leita. </para
4383
>int document.defStyleNum(<parameter
4392
int document.defStyleNum(<parameter
4393
>Cursor <replaceable
4394
>kursor</replaceable
4401
>Tagastab määratud kursori asukohas kasutatud vaikimisi stiili. </para
4411
>bool document.isCode(<parameter
4420
bool document.isCode(<parameter
4421
>Cursor <replaceable
4422
>kursor</replaceable
4431
>, kui määratud kursori asukohas paiknev atribuut ei ole võrdne kõigi järgnevate stiilidega: <literal
4436
>dsRegionMarker</literal
4452
>bool document.isComment(<parameter
4461
bool document.isComment(<parameter
4462
>Cursor <replaceable
4463
>kursor</replaceable
4472
>, kui kursori asukohas paikneva sümboli atribuut on <literal
4474
>, vastasel juhul <literal
4486
>bool document.isString(<parameter
4495
bool document.isString(<parameter
4496
>Cursor <replaceable
4497
>kursor</replaceable
4506
>, kui kursori asukohas paikneva sümboli atribuut on <literal
4508
>, vastasel juhul <literal
4520
>bool document.isRegionMarker(<parameter
4529
bool document.isRegionMarker(<parameter
4530
>Cursor <replaceable
4531
>kursor</replaceable
4540
>, kui kursori asukohas paikneva sümboli atribuut on <literal
4541
>dsRegionMarker</literal
4542
>, vastasel juhul <literal
4554
>bool document.isChar(<parameter
4563
bool document.isChar(<parameter
4564
>Cursor <replaceable
4565
>kursor</replaceable
4574
>, kui kursori asukohas paikneva sümboli atribuut on <literal
4576
>, vastasel juhul <literal
4588
>bool document.isOthers(<parameter
4597
bool document.isOthers(<parameter
4598
>Cursor <replaceable
4599
>kursor</replaceable
4608
>, kui kursori asukohas paikneva sümboli atribuut on <literal
4610
>, vastasel juhul <literal