<chapter id="advanced-editing-tools">
<chapterinfo>
<authorgroup>
<author
>&Anders.Lund; &Anders.Lund.mail;</author>
<author
>&Dominik.Haumann; &Dominik.Haumann.mail;</author>
<othercredit role="translator"
><firstname
>Marek</firstname
><surname
>Laane</surname
><affiliation
><address
><email
>bald@smail.ee</email
></address
></affiliation
><contrib
>Tõlge eesti keelde</contrib
></othercredit
> 
</authorgroup>
</chapterinfo>
<title
>Täiustatud redigeerimisvahendid</title>

<sect1 id="advanced-editing-tools-comment">

<title
>Kommentaari lisamine/eemaldamine</title>

<para
>Käsud 'Lisa kommentaar' ja 'Eemalda kommentaar', mida saab kasutada menüüst <guimenu
>Tööriistad</guimenu
>, 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>

<para
>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>

<para
>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>

<para
>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>

<para
>Kommentaarimärkide eemaldamisel ei tohi olla valitud kommenteerimata teksti. Valikult mitmerealise kommentaarimärgistuse eemaldamisel eiratakse iga tühikut väljaspool kommentaarimärgistust.</para>

<para
><indexterm
><primary
>kommentaar</primary
></indexterm
> Kommentaarimärkide lisamiseks kasuta menüükäsku <menuchoice
><guimenu
>Tööriistad</guimenu
><guimenuitem
>Kommentaar</guimenuitem
></menuchoice
> või vastavat kiirklahvikombinatsiooni, mis vaikimisi on <keycombo action="simul"
>&Ctrl;<keycap
>D</keycap
></keycombo
>.</para>

<para
><indexterm
><primary
>kommentaari eemaldamine</primary
></indexterm
> Kommentaarimärkide eemaldamiseks kasuta menüükäsku <menuchoice
><guimenu
>Tööriistad</guimenu
><guimenuitem
>Kommentaari eemaldamine</guimenuitem
></menuchoice
> või vastavat kiirklahvikombinatsiooni, mis vaikimisi on <keycombo action="simul"
>&Ctrl;&Shift;<keycap
>D</keycap
></keycombo
>.</para>

</sect1>

<sect1 id="advanced-editing-tools-commandline">
<title
>Redaktori käsureakomponent</title>

<para
>&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
><guimenu
>Vaade</guimenu
><guimenuitem
>Lülitu käsureale</guimenuitem
></menuchoice
> või kiirklahviga (vaikimisi <keycombo action="simul"
><keycap
>F7</keycap
></keycombo
>). Redaktor pakub omalt poolt välja rea käske, mida tutvustatakse allpool, pluginad võivad neile veelgi lisa pakkuda.</para>

<para
>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
>F7</keycap
>, peidetakse see automaatselt mõne sekundi pärast. Teate eemaldamiseks ja uue käsu sisestamiseks vajuta uuesti klahvi <keycap
>F7</keycap
>.</para>

<para
>Käsureal on omaenda abisüsteem, mille käivitamiseks anna käsk <command
>help</command
>. Kõigi võimalike käskude nägemiseks anna käsk <command
>help list</command
>, mõne konkreetse käsu abi nägemiseks käsk <command
>help <replaceable
>käsk</replaceable
></command
>.</para>

<para
>Käsureal on ka omaenda mälu ehk ajalugu, mis võimaldab uuesti kasutada juba varem antud käske. Ajaloos saab liikuda klahvidega <keycap
>Nool üles</keycap
> ja <keycap
>Nool alla</keycap
>. Varasemate käskude näitamisel valitakse selle argument, mis võimaldab neid kergesti asendada.</para>

<sect2 id="advanced-editing-tools-commandline-commands">
<title
>Standardsed käsureakäsud</title>

<sect3 id="advanced-editing-tools-commandline-commands-configure">
<title
>Redaktori seadistamise käsud</title>

<para
>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>

<variablelist>
<title
>Argumenditüübid</title>

<varlistentry>
<term
>TÕEVÄÄRTUS</term>
<listitem
><para
>Seda kasutatakse käskude puhul, millega saab midagi sisse või välja lülitada. Väärtusteks võivad olla <userinput
>on</userinput
> ('sees'), <userinput
>off</userinput
> ('väljas'), <userinput
>true</userinput
> ('tõene'), <userinput
>false</userinput
> ('väär'), <userinput
>1</userinput
> või <userinput
>0</userinput
>.</para
></listitem>
</varlistentry>

<varlistentry>
<term
>TÄISARV</term>
<listitem
><para
>Täisarv</para
></listitem>
</varlistentry>

<varlistentry>
<term
>SÕNE</term>
<listitem
><para
>String</para
></listitem>
</varlistentry>

</variablelist>

<variablelist>

<varlistentry>
<term
><cmdsynopsis
><command
>set-tab-width</command
><arg
>TÄISARV laius</arg
></cmdsynopsis
></term>
<listitem
><para
>Määrab tabelduskoha laiuseks arvu <userinput
>laius</userinput
></para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-width</command
><arg
>TÄISARV laius</arg
></cmdsynopsis
></term>
<listitem
><para
>Määrab taande laiuseks arvu <userinput
>laius</userinput
>. Ainult sel juhul, kui trepitakse tühikutega.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-word-wrap-column</command
><arg
>TÄISARV laius</arg
></cmdsynopsis
></term>
<listitem
><para
>Määrab sõnamurdmise korral rea laiuseks arvu <userinput
>laius</userinput
>. Ainult siis, kui teksti automaatne murdmine on sisse lülitatud.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-icon-border</command
><arg
>TÕEVÄÄRTUS enable</arg
> </cmdsynopsis
></term>
<listitem
><para
>Ikoonipiirde näitamine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-folding-markers</command
><arg
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Voltimismärkide paneeli näitamine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-line-numbers</command
><arg
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Reanumbrite paneeli näitamine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-replace-tabs</command
><arg
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel asendatakse tabeldusmärgid kirjutamise ajal tühimärkidega. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-remove-trailing-space</command
><arg
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel eemaldatakse rea lõpus seisvad tühimärgid kohe pärast seda, kui kursor lahkub realt.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-show-tabs</command
><arg
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel näidatakse tabeldusmärke ja rea lõpus seisvaid tühimärke väikeste punktidena.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-spaces</command
><arg
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel trepib redaktor igal treppimistasemel <option
>indent-width</option
>'iga määratud tühikutega, mitte aga tabeldusmärgiga.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-mixed-indent</command
><arg
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel kasutab &kate; treppimisel tabeldus- ja tühimärkide segu. Iga treppimistase on laiusega <option
>indent-width</option
> ning täiendavaid treppimistasemeid optimeeritakse nii paljude tabeldusmärkide kasutamisega kui võimalik.kui võimalik.</para>
<para
>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
>tab-width</option
> väärtusele.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-word-wrap</command
><arg
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Dünaamilise reamurdmise sisselülitamine vastavalt <userinput
>enable</userinput
> väärtusele.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-replace-tabs-save</command
><arg
>TÕEVÄÄRTUS enable </arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel asendatakse tabeldusmärgid dokumendi salvestamisel tühimärkidega.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-remove-trailing-space-save</command
><arg
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel eemaldatakse dokumendi salvestamisel ridade lõpust tühikud.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-mode</command
><arg
>nimi</arg
></cmdsynopsis
></term>
<listitem
><para
>Määrab automaatse treppimise režiimiks väärtuse <userinput
>nimi</userinput
>. Kui <userinput
>nimi</userinput
> pole tuntud, on režiimiks 'none' ehk 'puudub'. Sobivad režiimid on 'none', 'normal', 'cstyle', 'haskell', 'lilypond', 'lisp', 'python', 'ruby' ja 'xml'.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-highlight</command
><arg
>esiletõst</arg
></cmdsynopsis
></term>
<listitem
><para
>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
><guimenu
>Tööriistad</guimenu
><guisubmenu
>Esiletõstmine</guisubmenu
></menuchoice
>. Käsk võimaldab argumendi lisamisel kasutada automaatset lõpetamist.</para
></listitem>
</varlistentry>

</variablelist>

</sect3>

<sect3 id="advanced-editing-tools-commandline-commands-edit">
<title
>Redigeerimiskäsud</title>

<para
>Nende käskudega saab muuta aktiivset dokumenti.</para>

<variablelist>
<varlistentry>
<term
><cmdsynopsis
><command
>indent</command
></cmdsynopsis
></term>
<listitem
><para
>Trepib valitud read või aktiivse rea.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>unindent</command
></cmdsynopsis
></term>
<listitem
><para
>Eemaldab valitud ridade või aktiivse rea treppimise.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>cleanindent</command
></cmdsynopsis
></term>
<listitem
><para
>Puhastab valitud ridade või aktiivse rea treppimise vastavalt dokumendi treppimisseadistustele. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>comment</command
></cmdsynopsis
></term>
<listitem
><para
>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
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>uncomment</command
></cmdsynopsis
></term>
<listitem
><para
>Eemaldab kommentaarimärgid valikult või valitud ridadelt või aktiivselt realt vastavalt tekstivormindusele, mille määrab dokumendi süntaksi esiletõstu definitsioon.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>kill-line</command
></cmdsynopsis
></term>
<listitem
><para
>Kustutab aktiivse rea.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>replace</command
><arg
>muster</arg
><arg
>asendus</arg
></cmdsynopsis
></term>
<listitem
><para
>Asendab teksti, mille määrab <userinput
>muster</userinput
>, tekstiga, mille määrab <userinput
>asendus</userinput
>. Kui soovid, et <userinput
>muster</userinput
> sisaldaks tühimärki, tuleb nii <userinput
>muster</userinput
> kui ka <userinput
>asendus</userinput
> muuta ühe- või kahekordsete jutumärkidega tsitaadiks. Kui argumendid pole tsiteeritud, arvab käsk, et esimene sõna on <userinput
>muster</userinput
> ja ülejäänud <userinput
>asendus</userinput
>. Kui <userinput
>asendus</userinput
> andmata jätta, eemaldatakse kogu tekst, kus esineb <userinput
>muster</userinput
>.</para>
<para
>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
>replace:võtmed muster asendus</userinput
>. Kasutada saab järgmisi võtmeid: <variablelist>

<varlistentry>
<term
><userinput
>b</userinput
></term>
<listitem
><para
>Otsing tagasisuunas</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>c</userinput
></term>
<listitem
><para
>Otsing alates kursori asukohast.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>e</userinput
></term>
<listitem
><para
>Otsing ainult valikus.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>r</userinput
></term>
<listitem
><para
>Regulaaravaldise otsing. Selle korral võid anda <userinput
>\N</userinput
>, kus N on arv, mis tähistab asendusstringi hõivet.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>s</userinput
></term>
<listitem
><para
>Tõstutundlik otsing.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>p</userinput
></term>
<listitem
><para
>Loa küsimine järgmise asenduse korral.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>w</userinput
></term>
<listitem
><para
>Ainult täissõnade sobivus.</para
></listitem>
</varlistentry>

</variablelist>

</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>date</command
><arg
>vorming</arg
></cmdsynopsis
></term>
<listitem
><para
>Kuupäeva/kellaajastring lisamine kujul, nagu selle määrab <userinput
>vorming</userinput
> või kui seda pole antud, siis kujul <quote
>yyyy-MM-dd hh:mm:ss</quote
>. Argument <userinput
>vorming</userinput
> võib esineda järgmisel kujul: <informaltable
> <tgroup cols="2"
> <tbody>
<row
><entry
><literal
>d</literal
></entry
><entry
>Päev arvuna ilma alustava nullita (1-31).</entry
></row>
<row
><entry
><literal
>dd</literal
></entry
><entry
>Päev arvuna alustava nulliga (01-31).</entry
></row>
<row
><entry
><literal
>ddd</literal
></entry
><entry
>Lühendatud ja lokaliseeritud päevanimi (nt. 'Esm', 'Püh').</entry
></row>
<row
><entry
><literal
>dddd</literal
></entry
><entry
>Pikk ja lokaliseeritud päevanimi (nt. 'Esmaspäev', 'Pühapäev').</entry
></row>
<row
><entry
><literal
>M</literal
></entry
><entry
>Kuu arvuna ilma alustava nullita (1-12).</entry
></row>
<row
><entry
><literal
>MM</literal
></entry
><entry
>Kuu arvuna alustava nulliga (01-12).</entry
></row>
<row
><entry
><literal
>MMM</literal
></entry
><entry
>Lühendatud ja lokaliseeritud kuunimi (nt. 'Jaan', 'Dets').</entry
></row>
<row
><entry
><literal
>yy</literal
></entry
><entry
>Aasta kahekohalise arvuna (00-99).</entry
></row>
<row
><entry
><literal
>yyyy</literal
></entry
><entry
>Aasta neljakohalise arvuna (1752-8000).</entry
></row>
<row
><entry
><literal
>h</literal
></entry
><entry
>Tunnid ilma alustava nullita (0-23 või 1-12, kui näidatakse AM/PM).</entry
></row>
<row
><entry
><literal
>hh</literal
></entry
><entry
>Tunnid alustava nulliga (00-23 või 01-12, kui näidatakse AM/PM).</entry
></row>
<row
><entry
><literal
>m</literal
></entry
><entry
>Minutid ilma alustava nullita (0-59).</entry
></row>
<row
><entry
><literal
>mm</literal
></entry
><entry
>Minutid alustava nulliga (00-59).</entry
></row>
<row
><entry
><literal
>s</literal
></entry
><entry
>Sekundid ilma alustava nullita (0-59).</entry
></row>
<row
><entry
><literal
>ss</literal
></entry
><entry
>Sekundid alustava nulliga (00-59).</entry
></row>
<row
><entry
><literal
>z</literal
></entry
><entry
>Millisekundid ilma alustava nullita (0-999).</entry
></row>
<row
><entry
><literal
>zzz</literal
></entry
><entry
>Millisekundid alustava nulliga (000-999).</entry
></row>
<row
><entry
><literal
>AP</literal
></entry
><entry
>AM/PM kasutamine. AP asemele pannakse kas "AM" või "PM".</entry
></row>
<row
><entry
><literal
>ap</literal
></entry
><entry
>am/pm kasutamine. ap asemele pannakse kas "am" või "pm".</entry
></row>

</tbody>
</tgroup>
</informaltable>

</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>char</command
><arg
>identifikaator</arg
></cmdsynopsis
></term>
<listitem>
<para
>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
>char: [number]</userinput
> ja klõpsa nupule <guibutton
>OK</guibutton
>.</para>

<example>
<title
><command
>char</command
> näited</title>

<para
>Sisend: <userinput
>char:234</userinput
></para>
<para
>Väljund: <computeroutput
>&#234;</computeroutput
></para>
<para
>Sisend: <userinput
>char:0x1234</userinput
></para>
<para
>Väljund: <computeroutput
>&#x1234;</computeroutput
></para>
</example>

</listitem>
</varlistentry>

<varlistentry>
<term>
<indexterm
><primary
>Asendamine sed-stiilis</primary>
<secondary
>Otsimine sed-stiilis</secondary
></indexterm>
<command
>s///[ig]</command
> <command
>%s///[ig]</command
></term>

<listitem>
<para
>See käsk käivitab sedi-sarnase otsi/asenda-operatsiooni aktiivsel real või kogu failis (<command
>%s///</command
>).</para>

<para
>Nii otsitakse tekst läbi, et leida sobivused <emphasis
>otsingumustriga</emphasis
>, 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
>tagasiviidad</emphasis
>, 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
>\1</userinput
>, teise puhul kui <userinput
>\2</userinput
> jne.</para>

<para
>Otsimaks märki <literal
>(</literal
> või <literal
>)</literal
>, tuleb need <emphasis
>varjestada</emphasis
> längkriipsu kasutades: <userinput
>\(\)</userinput
></para>

<para
>Kui kirjutada avaldise lõppu <userinput
>i</userinput
>, ei arvestata sobivuse juures tõstu ehk tähesuurust. Kui kirjutada lõppu <userinput
>g</userinput
>, asendatakse kõik mustri sobivused, muidu asendatakse ainult esimene sobivus.</para>

<example>

<title
>Teksti asendamine aktiivses reas</title>

<para
>Armas arvuti katkestas just äsja töö ja teatas, et lähtefaili real 3902 mainitud klass <classname
>myClass</classname
> ei ole defineeritud.</para>

<para
>&quot;Neetud!&quot; mõtled sina: aga muidugi peab see olema <classname
>MyClass</classname
>. Lähed siis reale 3092 ja selle asemel, et püüda tekstist sõnakest üles leida, käivitad redigeerimiskäsu dialoogi, sisestad seal <userinput
>s/myclass/MyClass</userinput
>, vajutad nupule <guibutton
>OK</guibutton
>, salvestad faili ja kompileerid selle &ndash; edukalt ja ilma vigadeta.</para>

</example>

<example>
<title
>Teksti asendamine kogu failis</title>

<para
>Kujuta ette, et sul on fail, kus esineb mitu korda <quote
>preili Maasikas</quote
>, ja siis tuleb keegi, kes ütleb, et too neiu äsja abiellus ja kannab nüüd nime <quote
>proua Vaarikas</quote
>. On päris mõistetav, et sind tabab võitmatu iha kirjutada kõikjal tekstis <quote
>preili Maasikas</quote
> asemele <quote
>proua Vaarikas</quote
>.</para>

<para
>Selleks käivita käsurida, anna käsk <userinput
>%s/preili Maasikas/proua Vaarikas/</userinput
>, vajuta klahvi Enter - ja asendused ongi tehtud.</para>

</example>

<example>
<title
>Nõudlikum näide</title>

<para
>See näide selgitab <emphasis
>tagasiviidete</emphasis
> ja <emphasis
>märgiklasside</emphasis
> kasutamist (kui sa ei tea, mis need on, vaata selgitusi edaspidi viidatud dokumentides).</para>

<para
>Oletame, et sul on selline rida: <programlisting
>void MyClass::DoStringOps( String      &amp;foo, String &amp;bar String *p, int  &amp;a, int &amp;b )</programlisting>
</para>
<para
>Äkki taipad, et see pole mitte kõige kaunim kood, ja otsustad kasutada võtit <constant
>const</constant
> kõigi <quote
>aadressiargumentide</quote
> puhul (need on need, mille puhul argumendi ees seisab operaator &amp;). Ühtlasi tahad ühtlustada tühikute kasutamist, nii et iga sõna vahel oleks vaid üks tühik.</para>

<para
>Käivita redigeerimiskäsu dialoog ja sisesta sinna: <userinput
>s/\s+(\w+)\s+(&amp;)/ const \1 \2/g</userinput
> ning vajuta nuppu <guibutton
>OK</guibutton
>. Avaldise lõpus paiknev <userinput
>g</userinput
> annab regulaaravaldisele korralduse rekompileerida iga sobivus <emphasis
>tagasiviidete</emphasis
> säilitamiseks.</para>

<para
>Väljund: <computeroutput
>void MyClass::DoStringOps( const String &amp;foo, const String &amp;bar String *p, const int &amp;a, const int &amp;b )</computeroutput
></para>

<para
>Ja ongi valmis! Mis siis tegelikult juhtus? Juhtus see, et me otsisime tühikut (<literal
>\s+</literal
>), millele järgneks üks või enam tähte (<literal
>\w+</literal
>), millele omakorda järgneks tühik (<literal
>\s+</literal
>) 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
>const</quote
>, millele järgneb tühik, millele järgneb meelde jäetud tähekombinatsioon (<literal
>\1</literal
>, millele järgneb tühik, millele järgneb meelde jäetud ja-märk (<literal
>\2</literal
>). Lihtne, eks ju?</para>

<para
>Pane tähele, et mõnel juhul oli täheühendiks <quote
>String</quote
>, mõnel juhul aga <quote
>int</quote
>, nii et märgiklassi <literal
>\w</literal
> ja kvantori <literal
>+</literal
> kasutamine oli väga mõistlik tegu.</para>

</example>

</listitem>

</varlistentry>

</variablelist>

</sect3>

<sect3 id="advanced-editing-tools-commandline-commands-navigation">
<title
>Liikumiskäsud</title>

<variablelist>

<varlistentry>
<term
><cmdsynopsis
><command
>goto</command
><arg
>TÄISARV rida</arg
></cmdsynopsis
></term>
<listitem
><para
>Selle käsuga saab liikuda määratud reale.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>find</command
><arg
>muster</arg
></cmdsynopsis
></term>
<listitem
><para
>Selle käsuga saab liikuda sinna, kus esimest korda esineb <userinput
>muster</userinput
>. Selle järgmisi esinemisi saab leida menüükäsuga <menuchoice
><guimenu
>Redigeerimine</guimenu
><guimenuitem
>Otsi järgmine</guimenuitem
></menuchoice
> (vaikimisi kiirklahv <keycap
>F3</keycap
>).</para>
<para
>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
>find:võtmed muster</userinput
>. Kasutada saab järgmisi võtmeid: <variablelist>

<varlistentry>
<term
><userinput
>b</userinput
></term>
<listitem
><para
>Otsing tagasisuunas</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>c</userinput
></term>
<listitem
><para
>Otsing alates kursori asukohast.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>e</userinput
></term>
<listitem
><para
>Otsing ainult valikus.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>r</userinput
></term>
<listitem
><para
>Regulaaravaldise otsing. Selle korral võid anda <userinput
>\N</userinput
>, kus N on arv, mis tähistab asendusstringi hõivet.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>s</userinput
></term>
<listitem
><para
>Tõstutundlik otsing.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>w</userinput
></term>
<listitem
><para
>Ainult täissõnade sobivus.</para
></listitem>
</varlistentry>

</variablelist>

</para>

</listitem>

</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>ifind</command
><arg
>muster</arg
></cmdsynopsis
></term>
<listitem
><para
>See käsk võimaldab otsimist <quote
>lennult</quote
>, 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
>ifind:võtmed muster</userinput
>. Kasutada saab järgmisi võtmeid <variablelist>
<varlistentry>
<term
><userinput
>b</userinput
></term>
<listitem
><para
>Otsing tagasisuunas</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>r</userinput
></term>
<listitem
><para
>Regulaaravaldise otsing.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>s</userinput
></term>
<listitem
><para
>Tõstutundlik otsing.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>c</userinput
></term>
<listitem
><para
>Otsing alates kursori asukohast.</para
></listitem>
</varlistentry>

</variablelist>
</para
></listitem>
</varlistentry>

</variablelist>

</sect3>

</sect2>

</sect1>

<sect1 id="advanced-editing-tools-code-folding">
<title
>Koodi voltimise kasutamine</title>

<para
>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
>BEGIN</userinput
> ja <userinput
>END</userinput
>.</para>

<para
>Koodivoltimise kasutamiseks lülita sisse voltimismärgid käsuga <menuchoice
><guimenu
>Vaade</guimenu
><guimenuitem
>Voltimismärkide näitamine</guimenuitem
></menuchoice
>. 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>

<para
>Voltimispiirkondades saab kasutada nelja käsku, mida tutvustab lähemalt <link linkend="view-code-folding"
>menüükäskude ülevaade</link
>. </para>

<para
>Kui sa ei soovi koodivoltimist kasutada, võid eemaldada märke valiku <guilabel
>Voltimismärkide näitamine (kui võimalik)</guilabel
> eest redaktori seadistuste <link linkend="appearance"
>välimuse</link
> kaardil.</para>

</sect1>

<sect1 id="advanced-editing-tools-scripting">
<title
>&kate; laiendamine skriptidega</title>

<para
>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>

<sect2 id="advanced-editing-tools-scripting-indentation">
<title
>Taandeskriptid</title>

<para
>Taandeskriptid või ka treppimisskriptid annavad lähtekoodile selle kirjutamise ajal automaatselt vajaliku taande. Näiteks Enter-klahvi vajutades koodi taandetase tihtipeale suureneb. </para>

<para
>Järgnevates sektsioonides kirjeldame samm-sammult lihtsa taandeskripti loomist. Kõigepealt loo uus <filename
>*.js</filename
>-fail, näiteks  <filename
>javascript.js</filename
> oma kohalikus kodukataloogi kataloogis <filename
>$KDEHOME/share/apps/katepart/script</filename
>. </para>

<sect3 id="advanced-editing-tools-scripting-indentation-header">
<title
>Taandeskripti päis</title>
<para
>Faili <filename
>javascript.js</filename
> on põimitud kommentaarina ning näeb välja selline: <programlisting>
/* kate-script
 * name: JavaScript
 * author: Example Name &lt;example.name@some.address.org&gt;
 * license: BSD
 * revision: 1
 * kate-version: 3.4
 * type: indentation
 * required-syntax-style: javascript
 * indent-languages: javascript
 * priority: 0
 *
 * Rida ilma koolonita ':' peatab päise parsimise. See tähendab, et sa võid siia
 * lisada muud teksti, näiteks üksikasjaliku litsentsi.
 */
</programlisting
> Allpool selgitatakse põhjalikult iga kirjet: <itemizedlist>
<listitem
><para
><literal
>kate-script</literal
> [kohustuslik]: see tekstistring peab esinema <filename
>*.js</filename
>-faili esimesel real, vastasel juhul jätab &kate; skripti lihtsalt vahele. </para
></listitem>
<listitem
><para
><literal
>name</literal
> [kohustuslik]: see on taandeskripti nimi, nagu seda näeb menüüs <menuchoice
><guimenu
>Tööriistad</guimenu
><guimenuitem
>Treppimine</guimenuitem
></menuchoice
> ja seadistustedialoogis. </para
></listitem>
<listitem
><para
><literal
>author</literal
> [pole kohustuslik]: autori nimi ja kontaktteave. </para
></listitem>
<listitem
><para
><literal
>license</literal
> [pole kohustuslik]: litsents lühidalt, näiteks BSD või LGPLv3. </para
></listitem>
<listitem
><para
><literal
>revision</literal
> [kohustuslik]: skripti versioon. Seda arvu tuleb alati suurendada, kui skripti muudetakse. </para
></listitem>
<listitem
><para
><literal
>kate-version</literal
> [kohustuslik]: &kate; minimaalne nõutav versioon. </para
></listitem>
<listitem
><para
><literal
>type</literal
> [kohustuslik]: tüüp peab olema <quote
><literal
>indentation</literal
></quote
>, vastasel juhul &kate; lihtsalt jätab skripti vahele. </para
></listitem>
<listitem
><para
><literal
>required-syntax-style</literal
> [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
>sobimatut käitumist</quote
>, mis võib tekkida, kui taandeskripti kasutatakse eeldatud esiletõstmise skeemita. Näiteks Ruby taandeskript kasutab sellist võimalust failides <filename
>ruby.js</filename
> ja <filename
>ruby.xml</filename
>. </para
></listitem>
<listitem
><para
><literal
>indent-languages</literal
> [pole kohustuslik]: komadega eraldatud süntaksistiilide loend, mille puhul taandeskript suudab korrektselt treppimist rakendada, näiteks c++, java. </para
></listitem>
<listitem
><para
><literal
>priority</literal
> [pole kohustuslik]: kui teatava esiletõstmisega faili puhul sobib mitu taandeskripti, siis prioriteet määrab, millist neist kasutatakse vaikimisi. </para
></listitem>
</itemizedlist>
</para>

<para
>&kate; loeb kõik paarid <quote
><replaceable
>võti</replaceable
>:<replaceable
>väärtus</replaceable
></quote
>, 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>

</sect3>

<sect3 id="advanced-editing-tools-scripting-indentation-body">
<title
>Taandeskripti lähtekood</title>
<para
>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>
triggerCharacters = "{}/:;";
function indent(line, indentWidth, ch)
{
    // called for each newline (ch == '\n') and all characters specified in
    // the global variable triggerCharacters. When calling <menuchoice
><guimenu
>Tools</guimenu
><guimenuitem
>Align</guimenuitem
></menuchoice>
    // the variable ch is empty, i.e. ch == ''.
    //
    // see also: Scripting API
    return -2;
}
</programlisting
> Funktsioonil <function
>indent()</function
> on kolm parameetrit: <itemizedlist
> <listitem
><para
><literal
>line</literal
>: rida, mida asutakse treppima</para
></listitem
> <listitem
><para
><literal
>indentWidth</literal
>: treppimise ehk taande laius tühimärkide hulgana</para
></listitem
> <listitem
><para
><literal
>ch</literal
>: kas reavahetuse sümbol (<literal
>ch == '\n'</literal
>), käivitamissümbol, mille määrab kindlaks <literal
>triggerCharacters</literal
> või ka tühi, kui kasutaja kustub välja toimingu <menuchoice
><guimenu
>Tööriistad</guimenu
><guimenuitem
>Joondamine</guimenuitem
></menuchoice
>.</para
></listitem
> </itemizedlist
> Funktsiooni <function
>indent()</function
> tagastatav väärtus määrab, kuidas rida trepitakse. Kui tagastatud väärtus on lihtsalt täisarv, tõlgendatakse seda järgnevalt: <itemizedlist
> <listitem
><para
>tagastatud väärtus <literal
>-2</literal
>: ei tehta midagi</para
></listitem
> <listitem
><para
>tagastatud väärtus <literal
>-1</literal
>: säilitatakse taandus (otsitakse eelmist mittetühja rida)</para
></listitem
> <listitem
><para
>tagastatud väärtus <literal
> 0</literal
>: arv &gt;= 0 määrab taandesügavuse tühimärkide arvuna</para
></listitem
> </itemizedlist
> Teise võimalusena tagastatakse kahest elemendist koosnev massiiv: <itemizedlist
> <listitem
><para
><literal
>return [ indent, align ];</literal
></para
></listitem
> </itemizedlist
> Sel juhul on esimene element taandesügavus nagu ülal ja samade eriväärtustega. Teine element on aga absoluutväärtus, mis tähistab <quote
>joonduse</quote
> 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
>segarežiimiks</quote
>. </para>

<para
>Vaatame järgmist näidet. Eeldame, et treppimiseks kasutatakse tabeldusmärke ning nende laiuseks on määratud 4. &lt;tab&gt; tähistab tabeldusmärki ja '.' tühimärki: <programlisting>
1: &lt;tab&gt;&lt;tab&gt;foobar("hello",
2: &lt;tab&gt;&lt;tab&gt;......."world");
</programlisting
> Teise taandega rea puhul tagastab funktsioon <function
>indent()</function
> [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>

<para
>KDE vaikimisi paigalduse puhul pakub &kate; mitut taandeskripti. Vastava JavaScripti lähtekoodi leiab kataloogist <filename
>$KDEDIR/share/apps/katepart/script</filename
>. </para>

<para
>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
>reload-scripts</command
>. </para>

<para
>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"
>postiloendis</ulink
>. </para>

</sect3>
</sect2>

<sect2 id="advanced-editing-tools-scripting-command-line">
<title
>Käsureaskriptid</title>

<para
>Et kõigi vajadusi on ühekorraga raske rahuldada, toetab &kate; pisikesi abitööriistu teksti kiireks töötlemiseks <link linkend="advanced-editing-tools-commandline"
>sisseehitatud käsurea abil</link
>. Näiteks käsk <command
>sort</command
> on teostatud skriptina. Järgnevas osas selgitatakse, kuidas luua <filename
>*.js</filename
>-faile &kate; laiendamiseks mis tahes abiskriptidega. </para>

<para
>Käsureaskriptid paiknevad samas kataloogis taandeskriptidega. Niisiis, esimese sammuna loo uus <filename
>*.js</filename
>-fail nimega <filename
>myutils.js</filename
> kohalikus kodukataloogis <filename
>$KDEHOME/share/apps/katepart/script</filename
>. </para>

<sect3 id="advanced-editing-tools-scripting-command-line-header">
<title
>Käsureaskripti päis</title>
<para
>Kõigi käsureaskriptide päis on põimitud kommentaarina ning näeb välja selline: <programlisting>
/* kate-script
 * author: Example Name &lt;example.name@some.address.org&gt;
 * license: BSD
 * revision: 1
 * kate-version: 3.4
 * type: commands
 * functions: sort, format-paragraph
 *
 * Rida ilma koolonita ':' peatab päise parsimise. See tähendab, et sa võid siia
 * lisada muud teksti, näiteks üksikasjaliku litsentsi.
 */
</programlisting
> Allpool selgitatakse põhjalikult iga kirjet: <itemizedlist>
<listitem
><para
><literal
>kate-script</literal
> [kohustuslik]: see tekstistring peab esinema <filename
>*.js</filename
>-faili esimesel real, vastasel juhul jätab &kate; skripti lihtsalt vahele.</para
></listitem>
<listitem
><para
><literal
>author</literal
> [pole kohustuslik]: autori nimi ja kontaktteave.</para
></listitem>
<listitem
><para
><literal
>license</literal
> [pole kohustuslik]: litsents lühidalt, näiteks BSD või LGPLv3.</para
></listitem>
<listitem
><para
><literal
>revision</literal
> [kohustuslik]: skripti versioon. Seda arvu tuleb alati suurendada, kui skripti muudetakse.</para
></listitem>
<listitem
><para
><literal
>kate-version</literal
> [kohustuslik]: &kate; minimaalne nõutav versioon.</para
></listitem>
<listitem
><para
><literal
>type</literal
> [kohustuslik]: tüüp peab olema <quote
><literal
>commands</literal
></quote
>, vastasel juhul &kate; lihtsalt jätab skripti vahele.</para
></listitem>
<listitem
><para
><literal
>functions</literal
> [kohustuslik]: komadega eraldatud skripti käskude loend.</para
></listitem>
</itemizedlist>
</para>

<para
>&kate; loeb kõik paarid <quote
><replaceable
>võti</replaceable
>:<replaceable
>väärtus</replaceable
></quote
>, 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"
>sisseehitatud käsurea vahendusel</link
>. </para>
</sect3>

<sect3 id="advanced-editing-tools-scripting-command-line-body">
<title
>Skripti lähtekood</title>

<para
>Kõik päises osutatud funktsioonid tuleb skriptis teostada. Nii peab näiteks ülaltoodud näites esitatud skript teostama kaks funktsiooni: <command
>sort</command
> ja <command
>format-paragraph</command
>. Kõigil funktsioonidel on järgmine süntaks: <programlisting
>function &lt;nimi&gt;(arg1, arg2, ...)
{
    // ... implementation, see also: Scripting API
}
</programlisting>
</para>

<para
>Argumendid edastatakse käsureal funktsioonile kujul <parameter
>arg1</parameter
>, <parameter
>arg2</parameter
> jne. Kõigi käskude kohta dokumentatsiooni pakkumiseks teosta lihtsalt funktsioon  '<function
>help</function
>': <programlisting>
function help(cmd)
{
    if (cmd == "sort") {
        return "Sort the selected text.";
    } else if (cmd == "...") {
        // ...
    }
}
</programlisting
> Käsureal <command
>help sort</command
> käivitamine kutsub välja abifunktsiooni argumendiga <parameter
>cmd</parameter
>, mille väärtuseks on määratud antud käsk, s.t <parameter
>cmd == "sort"</parameter
>. &kate; tagastab seejärel teksti kasutajale nähtava dokumentatsioonina. </para>

<para
>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
>reload-scripts</command
>. </para>

<para
>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"
>postiloendis</ulink
>. </para>
</sect3>
</sect2>

<sect2 id="advanced-editing-tools-scripting-api">
<title
>Skriptimise API</title>

<para
>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
>$KDEDIR/share/apps/katepart/api</filename
>. Kõigi JavaScripti failide nimed vastavad järgmisele skeemile: <programlisting>
&lt;arv&gt;_&lt;nimi&gt;.js
</programlisting
> Arvul on kaks kohta, nimi aga on suvaline nimi, näiteks <quote
><filename
>myutils</filename
></quote
>. Arvude abil kontrollib &kate; API täitmise järjekorda. Nii kutsutakse fail <filename
>05_cursor.js</filename
> välja enne faili <filename
>10_range.js</filename
>. (Samasugune käivitamise järjekord kehtib näiteks Linuxis käitustasemete puhul.) </para>

<para
>Standardse skriptimise API laiendamiseks oma funktsioonide ja prototüüpidega loo lihtsalt uus fail KDE kohalikus seadistuste kataloogis <filename
>$KDEHOME/share/apps/katepart/api</filename
> ja kanna hoolt, et selle arv (täitmise järjekord) oleks suurem kui teistel  <filename
>*.js</filename
>-failidel globaalses kataloogis <filename
>$KDEDIR/share/apps/katepart/api</filename
>. &kate; otsib automaatselt mõlemast kataloogis <filename
>*.js</filename
>-faile ja käivitab need õiges järjekorras. </para>

<para
>Olemasolevate prototüüpide, näiteks <classname
>Cursor</classname
> või <classname
>Range</classname
>, laiendamiseks <emphasis
>ei ole</emphasis
> soovitatav muuta globaalseid <filename
>*.js</filename
>-faile. Selle asemel loo <filename
>*.js</filename
>-fail kohalikus kataloogis, mis käivitatakse hiljem kui <filename
>05_cursor.js</filename
> ja seejärel muuda prototüüpi <classname
>Cursor</classname
> JavaScriptis. </para>

<sect3 id="advanced-editing-tools-scripting-api-global">
<title
>Kursorid ja vahemikud</title>

<para
>Kuna &kate; on tekstiredaktor, siis on kogu skriptimise API aluseks, nii palju kui võimalik, kursorid ja vahemikud. Kursor kujutab endast lihtsat <literal
>(rida,veerg)</literal
> 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>

<sect4 id="advanced-editing-tools-scripting-api-cursors">
<title
>Kursori prototüüp</title>

<variablelist
><varlistentry>
<term
><synopsis
>Cursor();
</synopsis
></term>
<listitem
><para
>Konstruktor. Tagastab kursori asukohas <literal
>(0, 0)</literal
>.</para>
<para
>Näide: <function
>var cursor = new Cursor();</function
> </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Cursor(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Konstruktor. Tagastab kursori asukohas (rida, veerg). </para>
<para
>Näide: <function
>var cursor = new Cursor(3, 42);</function
> </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Cursor(<parameter
>Cursor <replaceable
>other</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Koopia konstruktor. Tagastab kursori koopia <replaceable
>other</replaceable
>. </para>
<para
>Näide: <function
>var copy = new Cursor(other);</function
> </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Cursor Cursor.clone();
</synopsis
></term>
<listitem
><para
>Tagastab kursori klooni.</para>
<para
>Näide: <function
>var clone = cursor.clone();</function
> </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Cursor.isValid();
</synopsis
></term>
<listitem
><para
>Kontrollib, kas kursor on korrektne. Kursor ei ole korrektne, kui rida ja/või veeru väärtuseks on määratud <literal
>-1</literal
>. </para>
<para
>Näide: <function
>var valid = cursor.isValid();</function
> </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Cursor Cursor.invalid();
</synopsis
></term>
<listitem
><para
>Tagastab uue ebakorrektse kursori asukohas <literal
>(-1, -1)</literal
>. </para>
<para
>Näide: <function
>var invalidCursor = cursor.invalid();</function
> </para
></listitem>
</varlistentry
></variablelist>

<variablelist
><varlistentry>
<term
><synopsis
>int Cursor.compareTo(<parameter
>Cursor <replaceable
>other</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Võrdleb antud kursorit kursoriga <replaceable
>other</replaceable
>. Tagastab <itemizedlist>
<listitem
><para
><literal
>-1</literal
>, kui antud kursor paikneb enne kursorit <replaceable
>other</replaceable
>,</para
></listitem>
<listitem
><para
><literal
>0</literal
>, kui mõlemad kursorid on võrdsed,</para
></listitem>
<listitem
><para
><literal
>-+1</literal
>, kui antud kursor paikneb pärast kursorit <replaceable
>other</replaceable
>.</para
></listitem>
</itemizedlist>
</para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Cursor.equals(<parameter
>Cursor <replaceable
>other</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui antud kursor ja kursor <replaceable
>other</replaceable
> on võrdsed, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String Cursor.toString();
</synopsis
></term>
<listitem
><para
>Tagastab kursori stringina kujul <quote
><literal
>Cursor(rida, veerg)</literal
></quote
>. </para
></listitem>
</varlistentry
></variablelist>

</sect4>


<sect4 id="advanced-editing-tools-scripting-api-ranges">
<title
>Vahemiku prototüüp</title>

<variablelist
><varlistentry>
<term
><synopsis
>Range();
</synopsis
></term>
<listitem
><para
>Konstruktor <literal
>new Range()</literal
> väljakutsumine tagastab vahemiku (0, 0) - (0, 0). </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Range(<parameter
>Cursor <replaceable
>algus</replaceable
></parameter
>, <parameter
>Cursor <replaceable
>lõpp</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Konstruktor <literal
>new Range(<replaceable
>algus</replaceable
>, <replaceable
>lõpp</replaceable
>)</literal
> väljakutsumine tagastab vahemiku (<replaceable
>algus</replaceable
>, <replaceable
>lõpp</replaceable
>). </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Range(<parameter
>int <replaceable
>algusRida</replaceable
></parameter
>, <parameter
>int <replaceable
>algusVeerg</replaceable
></parameter
>, <parameter
>int <replaceable
>lõppRida</replaceable
></parameter
>, <parameter
>int <replaceable
>lõppVeerg</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Konstruktor. <literal
>new Range(<replaceable
>algusRida</replaceable
>, <replaceable
>algusVeerg</replaceable
>, <replaceable
>lõppRida</replaceable
>, <replaceable
>lõppVeerg</replaceable
>)</literal
> tagastab vahemiku alates (<replaceable
>algusRida</replaceable
>, <replaceable
>algusVeerg</replaceable
>) kuni (<replaceable
>lõppRida</replaceable
>, <replaceable
>lõppVeerg</replaceable
>). </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Range(<parameter
>Range <replaceable
>other</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Koopia konstruktor. Tagastab vahemiku koopia <replaceable
>other</replaceable
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Range Range.clone();
</synopsis
></term>
<listitem
><para
>Tagastab vahemiku klooni. </para>
<para
>Näide: <function
>var clone = range.clone();</function
> </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.isValid();
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui nii algus- kui ka lõppkursor on korrektsed, vastasel juhul <literal
>false</literal
>. </para>
<para
>Näide: <function
>var valid = range.isValid();</function
> </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.invalid();
</synopsis
></term>
<listitem
><para
>Tagastab vahemiku alates (-1, -1) kuni (-1, -1). </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.contains(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui antud vahemik sisaldab kursori asukohta, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.contains(<parameter
>Range <replaceable
>other</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui antud vahemik sisaldab vahemikku <replaceable
>other</replaceable
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.containsColumn(<parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui <replaceable
>veerg</replaceable
> paikneb vahemikus <literal
>[start.column, end.column)</literal
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.containsLine(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui <replaceable
>rida</replaceable
> paikneb vahemikus <literal
>[start.line, end.line)</literal
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.overlaps(<parameter
>Range <replaceable
>other</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui antud vahemikul ja vahemikul <replaceable
>other</replaceable
> on ühine piirkond, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.overlapsLine(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui <replaceable
>rida</replaceable
> paikneb vahemikus <literal
>[start.line, end.line]</literal
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.overlapsColumn(<parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui <replaceable
>veerg</replaceable
> paikneb vahemikus <literal
>[start.column, end.column]</literal
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool Range.equals(<parameter
>Range <replaceable
>other</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui antud vahemik ja vahemik <replaceable
>other</replaceable
> on võrdsed, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String Range.toString();
</synopsis
></term>
<listitem
><para
>Tagastab vahemiku stringina kujul <quote
><literal
>Range(Cursor(rida, veerg), Cursor(rida, veerg))</literal
></quote
>. </para
></listitem>
</varlistentry
></variablelist>

</sect4>
</sect3>

<sect3 id="advanced-editing-tools-scripting-api-debug">
<title
>Globaalsed funktsioonid</title>

<variablelist
><varlistentry>
<term
><synopsis
>void debug(<parameter
>String <replaceable
>tekst</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Näitab <replaceable
>tekst</replaceable
>i standardväljundis <literal
>stdout</literal
> samas konsoolis, kus rakendus käivitati. </para
></listitem>
</varlistentry
></variablelist>


</sect3>

<sect3 id="advanced-editing-tools-scripting-api-view">
<title
>Vaate API</title>
<para
>Skripti käivitamisel on alati olemas globaalne muutuja <quote
><literal
>view</literal
></quote
>, mis tähistab aktiivset redaktorivaadet. Järgnevalt on loetletud saadaolevad vaatefunktsioonid. <variablelist
><varlistentry>
<term
><synopsis
><function
>Cursor view.cursorPosition()</function
>
</synopsis
></term>
<listitem
><para
>Tagastab aktiivse kursori asukoha vaates.</para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
><function
>void view.setCursorPosition(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>)</function>
<function
>void view.setCursorPosition(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>)</function
>
</synopsis
></term>
<listitem
><para
>Tagastab aktiivse kursori asukoha vaates.</para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>void view.setCursorPosition(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
void view.setCursorPosition(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Määrab aktiivse kursori asukoha kas (rida, veerg) või määratud kursori järgi. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Cursor view.virtualCursorPosition();
</synopsis
></term>
<listitem
><para
>Tagastab virtuaalse kursori asukoha tabeldusmärgis, arvestades tabeldusmärgile taande puhul määratud tühimärkide arvu. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>void view.setVirtualCursorPosition(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
void view.setVirtualCursorPosition(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Määrab aktiivse virtuaalse kursori asukoha kas (rida, veerg) või määratud kursori järgi. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String view.selectedText();
</synopsis
></term>
<listitem
><para
>Tagastab valitud teksti. Kui teksti pole valitud, on tagastatav string tühi. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool view.hasSelection();
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui vaade sisaldab valitud teksti, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Range view.selection();
</synopsis
></term>
<listitem
><para
>Tagastab valitud teksti vahemiku. Tagastatud vahemik on vigane, kui teksti pole valitud. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>void view.setSelection(<parameter
>Range <replaceable
>vahemik</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Määrab valitud teksti valitud vahemikku. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>void view.removeSelectedText();
</synopsis
></term>
<listitem
><para
>Eemaldab valitud teksti. Kui vaates pole valitud teksti, ei tee midagi. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>void view.selectAll();
</synopsis
></term>
<listitem
><para
>Valib kogu dokumendi teksti. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>void view.clearSelection();
</synopsis
></term>
<listitem
><para
>Puhastab tekstivaliku ilma teksti eemaldamata. </para
></listitem>
</varlistentry
></variablelist>
</para>
</sect3>

<sect3 id="advanced-editing-tools-scripting-api-document">
<title
>Dokumendi API</title>
<para
>Skripti käivitamisel on alati olemas globaalne muutuja <quote
><literal
>document</literal
></quote
>, mis tähistab aktiivset dokumenti. Järgnevalt on loetletud saadaolevad dokumendifunktsioonid. <variablelist
><varlistentry>
<term
><synopsis
>String document.fileName();
</synopsis
></term>
<listitem
><para
>Tagastab dokumendi failinime või tühja stringi salvestamata tekstipuhvri korral. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.url();
</synopsis
></term>
<listitem
><para
>Tagastab dokumendi täieliku URL-i või tühja stringi salvestamata tekstipuhvri korral. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.mimeType();
</synopsis
></term>
<listitem
><para
>Tagastab dokumendi MIME tüübi või MIME tüübi <literal
>application/octet-stream</literal
>, kui sobivat MIME tüüpi ei leita. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.encoding();
</synopsis
></term>
<listitem
><para
>Tagastab faili salvestamisel kasutatava kodeeringu. </para
></listitem>
</varlistentry
></variablelist>

<variablelist
><varlistentry>
<term
><synopsis
>String document.highlightingMode();
</synopsis
></term>
<listitem
><para
>Tagastab kogu dokumendis kasutatava globaalse esiletõstmise režiimi. </para
></listitem>
</varlistentry
></variablelist>

<variablelist
><varlistentry>
<term
><synopsis
>String document.highlightingModeAt(<parameter
>Cursor <replaceable
>asukoht</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab dokumendi määratud asukohas kasutatava esiletõstmise režiimi. </para
></listitem>
</varlistentry
></variablelist>

<variablelist
><varlistentry>
<term
><synopsis
>Array document.embeddedHighlightingModes();
</synopsis
></term>
<listitem
><para
>Tagastab dokumenti põimitud esiletõstmise režiimide massiivi. </para
></listitem>
</varlistentry
></variablelist>

<variablelist
><varlistentry>
<term
><synopsis
>bool document.isModified();
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui dokument sisaldab salvestamata muudatusi, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.text();
</synopsis
></term>
<listitem
><para
>Tagastab kogu dokumendi sisu üheainsa tekstistringina. Reavahetusi tähistavad reavahetussümbolid <quote
><literal
>\n</literal
></quote
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.text(<parameter
>int <replaceable
>alatesReast</replaceable
></parameter
>, <parameter
>int <replaceable
>alatesVeerust</replaceable
></parameter
>, <parameter
>int <replaceable
>kuniReani</replaceable
></parameter
>, <parameter
>int <replaceable
>kuniVeeruni</replaceable
></parameter
>);
String document.text(<parameter
>Cursor <replaceable
>alates</replaceable
></parameter
>, <parameter
>Cursor <replaceable
>kuni</replaceable
></parameter
>);
String document.text(<parameter
>Range <replaceable
>vahemik</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab teksti määratud vahemikust. Lähtekoodi parema loetavuse huvides on soovitatav kasutada kursorile ja vahemikule tuginevaid versioone. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.line(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab valitud teksti stringina. String on tühi, kui soovitud rida jääb vahemikust välja. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.wordAt(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
String document.wordAt(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab sõna määratud kursori asukohas. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.charAt(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
String document.charAt(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab sümboli määratud kursori asukohas. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.firstChar(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab määratud <replaceable
>rea</replaceable
>  </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.lastChar(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab määratud <replaceable
>rea</replaceable
> 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
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.isSpace(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
bool document.isSpace(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui määratud kursori asukohas paiknev märk on tühimärk, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.matchesAt(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>, <parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>String <replaceable
>tekst</replaceable
></parameter
>);
bool document.matchesAt(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>, <parameter
>String <replaceable
>tekst</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui määratud <replaceable
>tekst</replaceable
> sobib tekstiga määratud kursori asukohas, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.startsWith(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>String <replaceable
>tekst</replaceable
></parameter
>, <parameter
>bool <replaceable
>skipWhiteSpaces</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui rida algab <replaceable
>tekstiga</replaceable
>, vastasel juhul <literal
>false</literal
>. Argument <replaceable
>skipWhiteSpaces</replaceable
> määrab, kas alustavaid tühimärke eiratakse või mitte. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.endsWith(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>String <replaceable
>tekst</replaceable
></parameter
>, <parameter
>bool <replaceable
>skipWhiteSpaces</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui rida lõpeb <replaceable
>tekstiga</replaceable
>, vastasel juhul <literal
>false</literal
>. Argument <replaceable
>skipWhiteSpaces</replaceable
> määrab, kas lõpetavaid tühimärke eiratakse või mitte. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.setText(<parameter
>String <replaceable
>tekst</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Määrab kogu dokumendi teksti. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.clear();
</synopsis
></term>
<listitem
><para
>Eemaldab kogu dokumendi teksti. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.truncate(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
bool document.truncate(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Kärbib määratud rea määratud veeruga või kursori asukohaga. Tagastab <literal
>true</literal
> õnnestumise korral või <literal
>false</literal
>, kui määratud rida ei kuulu dokumendi vahemikku. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.insertText(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>, <parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>String <replaceable
>tekst</replaceable
></parameter
>);
bool document.insertText(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>, <parameter
>String <replaceable
>tekst</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Lisab <replaceable
>teksti</replaceable
> määratud kursori asukohta. Tagastab <literal
>true</literal
> õnnestumise korral või <literal
>false</literal
>, kui dokument on kirjutuskaitstud. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.removeText(<parameter
>int <replaceable
>alatesReast</replaceable
></parameter
>, <parameter
>int <replaceable
>alatesVeerust</replaceable
></parameter
>, <parameter
>int <replaceable
>kuniReani</replaceable
></parameter
>, <parameter
>int <replaceable
>kuniVeeruni</replaceable
></parameter
>);
bool document.removeText(<parameter
>Cursor <replaceable
>alates</replaceable
></parameter
>, <parameter
>Cursor <replaceable
>kuni</replaceable
></parameter
>);
bool document.removeText(<parameter
>Range <replaceable
>vahemik</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Eemaldab teksti määratud vahemikus. Tagastab <literal
>true</literal
> õnnestumise korral või <literal
>false</literal
>, kui dokument on kirjutuskaitstud. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.insertLine(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>String <replaceable
>tekst</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Lisab teksti määratud reale. Tagastab <literal
>true</literal
> õnnestumise korral või <literal
>false</literal
>, kui dokument on kirjutuskaitstud või rida ei paikne dokumendi vahemikus. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.removeLine(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Eemaldab määratud tekstirea. Tagastab <literal
>true</literal
> õnnestumise korral või <literal
>false</literal
>, kui dokument on kirjutuskaitstud või rida ei paikne dokumendi vahemikus. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>void document.joinLines(<parameter
>int <replaceable
>algusRida</replaceable
></parameter
>, <parameter
>int <replaceable
>lõppRida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Ühendab read alates <replaceable
>algusRida</replaceable
> to <replaceable
>lõppRida</replaceable
>. Kaht järjestikust tekstirida eraldab alati üks tühik. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.lines();
</synopsis
></term>
<listitem
><para
>Tagastab dokumendi ridade arvu. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.length();
</synopsis
></term>
<listitem
><para
>Tagastab dokumendi sümbolite arvu. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.lineLength(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <replaceable
>rea</replaceable
> pikkuse. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>void document.editBegin();
</synopsis
></term>
<listitem
><para
>Alustab redigeerimisrühma tagasivõtmiste või uuestitegemiste rühmitamiseks. Kontrolli, et <function
>editEnd()</function
> oleks alati sama palju välja kutsutud kui <function
>editBegin()</function
>. <function
>editBegin()</function
> väljakutse kasutab seesmiselt referentsarvestit, s.t selle väljakutse korral on võimalik pesastamine. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>void document.editEnd();
</synopsis
></term>
<listitem
><para
>Lõpetab redigeerimisrühma. Viimane <function
>editEnd()</function
> väljakutse (s.t see, mis vastab esimesele <function
>editBegin()</function
> väljakutsele) lõpetab redigeerimisastme. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.firstColumn(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab määratud <replaceable
>rea</replaceable
> esimese mittetühimärgiga veeru. Kui real on ainult tühimärgid, tagastatakse <literal
>-1</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.lastColumn(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab määratud <replaceable
>rea</replaceable
> viimase mittetühimärgiga veeru. Kui real on ainult tühimärgid, tagastatakse <literal
>-1</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.prevNonSpaceColumn(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
int document.prevNonSpaceColumn(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab mittetühimärkidega veeru alates aktiivsest kursori asukohast tagasisuunas otsides. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.nextNonSpaceColumn(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
int document.nextNonSpaceColumn(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab mittetühimärkidega veeru alates aktiivsest kursori asukohast edasisuunas otsides. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.prevNonEmptyLine(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab järgmise mittetühimärkidega mittetühja rea, otsides tagasisuunas. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.nextNonEmptyLine(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab järgmise mittetühimärkidega mittetühja rea, otsides edasisuunas. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.isInWord(<parameter
>String <replaceable
>sümbol</replaceable
></parameter
>, <parameter
>int <replaceable
>atribuut</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui määratud <replaceable
>sümbol</replaceable
> määratud <replaceable
>atribuudiga</replaceable
> võib olla sõna osa, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.canBreakAt(<parameter
>String <replaceable
>sümbol</replaceable
></parameter
>, <parameter
>int <replaceable
>atribuut</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui määratud <replaceable
>sümbol</replaceable
> määratud <replaceable
>atribuudiga</replaceable
> sobib reamurdmiseks, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.canComment(<parameter
>int <replaceable
>algusAtribuut</replaceable
></parameter
>, <parameter
>int <replaceable
>lõppAtribuut</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui määratud atribuudiga algav ja lõppev vahemik sobib kommenteerimiseks, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.commentMarker(<parameter
>int <replaceable
>atribuut</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab kommentaaritähise määratud <replaceable
>atribuudiga</replaceable
> üherealise kommentaari puhul. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.commentStart(<parameter
>int <replaceable
>atribuut</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab kommentaaritähise määratud <replaceable
>atribuudiga</replaceable
> mitmerealise kommentaari alguse puhul. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.commentEnd(<parameter
>int <replaceable
>atribuut</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab kommentaaritähise määratud <replaceable
>atribuudiga</replaceable
> mitmerealise kommentaari lõpu puhul. </para
></listitem>
</varlistentry
></variablelist>



<variablelist
><varlistentry>
<term
><synopsis
>int document.attribute(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
int document.attribute(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab atribuudi määratud kursori asukohas. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.isAttribute(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>, <parameter
>int <replaceable
>atribuut</replaceable
></parameter
>);
bool document.isAttribute(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>, <parameter
>int <replaceable
>atribuut</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui kursori asukohas paiknev atribuut on võrdne <replaceable
>atribuudiga</replaceable
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.attributeName(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
String document.attributeName(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab atribuudi nime inimloetava tekstina. See võrdub nimega <literal
>itemData</literal
> süntaksi esiletõstmise failides. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.isAttributeName(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>, <parameter
>String <replaceable
>nimi</replaceable
></parameter
>);
bool document.isAttributeName(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>, <parameter
>String <replaceable
>nimi</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui kursori asukohas paikneva atribuudi nimi sobib määratud <replaceable
>nimega</replaceable
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>String document.variable(<parameter
>String <replaceable
>võti</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab soovitud dokumendi muutuja <replaceable
>võti</replaceable
> väärtuse. Kui dokumendi muutujat ei ole olemas, tagastatakse tühi string. </para
></listitem>
</varlistentry
></variablelist>



<variablelist
><varlistentry>
<term
><synopsis
>int document.firstVirtualColumn(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab määratud rea esimese mittetühimärgi virtuaalse veeru või <literal
>-1</literal
>, kui rida on tühi või sisaldab ainult tühimärke. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.lastVirtualColumn(<parameter
>int <replaceable
>rida</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab määratud rea viimase mittetühimärgi virtuaalse veeru või <literal
>-1</literal
>, kui rida on tühi või sisaldab ainult tühimärke. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.toVirtualColumn(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
int document.toVirtualColumn(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
Cursor document.toVirtualCursor(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Teisendab määratud <quote
>reaalse</quote
> kursori asukoha virtuaalseks kursori asukohaks, tagastades täisarvu või objekti Cursor. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.fromVirtualColumn(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>virtuaalneVeerg</replaceable
></parameter
>);
int document.fromVirtualColumn(<parameter
>Cursor <replaceable
>virtuaalneKursor</replaceable
></parameter
>);
Cursor document.fromVirtualCursor(<parameter
>Cursor <replaceable
>virtuaalneKursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Teisendab määratud virtuaalse kursori asukoha <quote
>reaalseks</quote
> kursori asukohaks. tagastades täisarvu või objekti Cursor. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Cursor document.anchor(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>, <parameter
>Char <replaceable
>sümbol</replaceable
></parameter
>);
Cursor document.anchor(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>, <parameter
>Char <replaceable
>sümbol</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>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
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>Cursor document.rfind(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>, <parameter
>String <replaceable
>tekst</replaceable
></parameter
>, <parameter
>int <replaceable
>atribuut</replaceable
> = -1</parameter
>);
Cursor document.rfind(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>, <parameter
>String <replaceable
>tekst</replaceable
></parameter
>, <parameter
>int <replaceable
>atribuut</replaceable
> = -1</parameter
>);
</synopsis
></term>
<listitem
><para
>Otsib tagasisuunas määratud teksti sobiva <replaceable
>atribuudiga</replaceable
>. Argumenti <replaceable
>atribuut</replaceable
> eiratakse, kui selle väärtuseks on määratud <literal
>-1</literal
>. Tagastatud kursor on vigane, kui teksti ei leita. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>int document.defStyleNum(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
int document.defStyleNum(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab määratud kursori asukohas kasutatud vaikimisi stiili. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.isCode(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
bool document.isCode(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui määratud kursori asukohas paiknev atribuut ei ole võrdne kõigi järgnevate stiilidega: <literal
>dsComment</literal
>, <literal
>dsString</literal
>, <literal
>dsRegionMarker</literal
>, <literal
>dsChar</literal
>, <literal
>dsOthers</literal
>. </para
></listitem>
</varlistentry
></variablelist>



<variablelist
><varlistentry>
<term
><synopsis
>bool document.isComment(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
bool document.isComment(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui kursori asukohas paikneva sümboli atribuut on <literal
>dsComment</literal
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.isString(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
bool document.isString(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui kursori asukohas paikneva sümboli atribuut on <literal
>dsString</literal
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.isRegionMarker(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
bool document.isRegionMarker(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui kursori asukohas paikneva sümboli atribuut on <literal
>dsRegionMarker</literal
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.isChar(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
bool document.isChar(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui kursori asukohas paikneva sümboli atribuut on <literal
>dsChar</literal
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>


<variablelist
><varlistentry>
<term
><synopsis
>bool document.isOthers(<parameter
>int <replaceable
>rida</replaceable
></parameter
>, <parameter
>int <replaceable
>veerg</replaceable
></parameter
>);
bool document.isOthers(<parameter
>Cursor <replaceable
>kursor</replaceable
></parameter
>);
</synopsis
></term>
<listitem
><para
>Tagastab <literal
>true</literal
>, kui kursori asukohas paikneva sümboli atribuut on <literal
>dsOthers</literal
>, vastasel juhul <literal
>false</literal
>. </para
></listitem>
</varlistentry
></variablelist>
</para>

</sect3>
</sect2>
</sect1>
</chapter>
