# Pluginatööriistad

&kdevelop; sisaldab terve rea väikseid tööriistu, mis aitavad sooritada teatud kindlaid ülesandeid. Enamik neist on loodud pluginatena. See tähendab, et kui sa mingit pluginat ei vaja, võid selle välja lülitada.

See tähendab ka seda, et kui otsid võimalust teha midagi, mida peaks saama teha, aga hetkel ei saa, siis võib asi olla selles, et seda ülesannet võimaldab teha plugin, mis on parajasti välja lülitatud. Näiteks on failimenüüs kiire avamise käsk ainult siis, kui see on sisse lülitatud dialoogis Projekt->Projekti seadistused.

Tehniliselt on pluginate aluseks klass KDevPlugin, mille defineerib lib/interfaces/kdevplugin.h. Järgnev tekst ongi sealt pärit.

KDevPlugin on baasklass kõigile KDevelopi pluginatele. Plugin on komponent, mis laaditakse KDevelopi shelli käivitumisel või nõudmisel. Pluginal on oma skoop ehk toimeala, mis võib olla:

- Tuum

- Globaalne

- Projekt

Tuumpluginad on globaalsed pluginad, mis pakuvad teatud olulisi "tuumfunktsioone", mistõttu kasutaja ei saa neid pluginate seadistustes ise sisse ega välja lülitada.

Globaalsed pluginad on pluginad, mis vajavad ainult shelli laadimist ega tegutse KDevProjecti liideses ega/või kasuta projekti infot. Näiteks kasutajaliidese plugin võimaldab arendajal valida, millist kasutajaliidest tarvitada.

Projektipluginad eeldavad projekti laadimist ja tavaliselt laaditakse nad koos projekt ning koos projektiga ka suletakse. Kui plugin tegutseb projekti info alusel, on tegemist projektipluginaga. Automake'i haldur ei pruugi näiteks olla aktiivne muul ajal, kui ainult Automake'i projekti laadimisel.

Nagu märgitud, ei saa tuumpluginaid välja lülitada. Globaalseid pluginaid saab sisse ja välja lülitada dialoogi Seadistused KDevelopi seadistamine... kaardil Pluginad. Projektipluginaid saab sisse ja välja lülitada dialoogi Projekt Projekti seadistused... kaardil Pluginad. Aktiivsetel pluginatel võib olla KDevelopis mitmesugune toime. Sõltuvalt funktsioonist võivad nad lisada menüüsid, menüükirjeid, tööriistaribade nuppe jne.

Väljalülitatud pluginad ei lisa midagi menüüsse ja neid ei laadita mällu.

Järgnev pluginate nimekiri on loodud väikse skriptiga (listplugins.sh), mille autor on Volker Paul. Kõigil pluginatel on .desktop-fail, kus on kirjas teatud info, näiteks nimi ja kommentaar. Kui järgneva nimekirja kommentaarid pole alati kõige inforikkamad, siis on põhjuseks see, et plugina autor ei ole rohkem infot andnud.

Pluginad on rühmitatud skoobi alusel (tuum, globaalne, projekt).

Skoop: tuum

- ## Rakenduse nõustaja

  Rakenduse nõustaja

- ## Erinevuste näitaja

  Erinevuste näitaja

- ## FileCreate

  FileCreate

- ## Täisekraan

  Täisekraan

- ## Päeva nõuanne

  Päeva nõuanne

- ## Kasutajaliidese valik

  Tagab dialoogi kasutajaliidese režiimi valimiseks.

- ## VCSManager

  Versioonikontrollisüsteemi haldur

Skoop: globaalne

- ## Lühendite laienemine

  Tagab kohandatud lühendite toetuse - need on lühikesed sõnad, mis laiendatakse levinumateks koodistruktuurideks.

- ## Dokumentatsioon

  Dokumentatsiooniplugin võimaldab lehitseda ja otsida nii kohalikus kui võrgudokumentatsioonis paljusid dokumentatsioonisüsteeme kasutades.

- ## FileList

  Näitab kõiki parajasti avatud faile (mugav, kui kaardiriba ei ole piisavalt lai).

- ## Failivalija

  Võimas failide lehitsemise rakendus.

- ## Shellifiltrid ja lisamine

  Võimaldab käsureavahendite abil käsitleda redaktoris olevat teksti. Kättesaadav tööriistade menüüst.

- ## Programmi grep kasutajaliides

  Integreerib KDevelopi programmi "Find|grep", mis lubab mustreid või regulaaravaldisi kasutades kiiresti paljudes failides teksti otsida.

- ## Põimitud Konsool

  See plugin lisab KDevelopile võimaluse põimitult kasutada konsooli käsurea võimaluste kiireks ja hõlpsaks pruukimiseks.

- ## Menüü "Ava kasutades" lisamine

  See plugin lisab KDevelopi erinevatele kontekstimenüüdele täiendavaid faili avamise võimalusi.

- ## Komponentide näitaja

  Graafiline vahend KTraderi-laadsete päringute sooritamiseks registreeritud teenuste kohta

- ## Regulaaravaldiste testija

  Vahend regulaaravaldiste loomiseks ja korrektsuse testimiseks.

- ## Asendamise komponent

  See plugin on kogu projekti hõlmav interaktiivne "otsi ja asenda" vahend. Otsida saab stringe või regulaaravaldiste sobivusi, asendusi saab valida eelvaatluse abil, enne kui need päriselt teoks teha. Kasutamisel kättesaadav redigeerimismenüüst.

- ## Skriptikeele plugin

  Skriptikeele plugin võimaldab KDevelopis kasutada skriptikeelt KScripti alusel

- ## Koodijupid

  pSee plugin võimaldab salvestada koodijuppe ja neid koodi lisada

- ## Tekstistruktuur

  Näitab HTML- ja TEX-failide struktuuri ning võimaldab neis liikuda

- ## Tööriistade menüü lisamine

  See plugin võimaldab hõlpsasti lisada väliseid rakendusi tööriistade menüüsse ja tööriistaribale.

- ## Valgrindi kasutajaliides

  Valgrind aitab leida programmides mälulekkeid ja muid mäluga seotud asju. http://developer.kde.org/~sewardj/

Skoop: projekt

- ## Annotatsiooniplugin

  Annotatsiooni kirjeldus

- ## Lähtekoodi vormindaja

  Plugin lähtekoodi vormindamiseks vastavalt konkreetsetele reeglitele. Kasutamisel leiab selle tööriistade menüüst.

- ## Järjehoidjad

  Plugin, mis võimaldab näha ja liikuda aktiivse koodi järjehoidjate vahel ning peab need seansside vahel meeles.

- ## Klassivaade

  See plugin näitab graafiliselt kõiki projekti klasse koos meetodite ja atribuutidega ning võimaldab nende vahel kiiresti liikuda.

- ## Kopeeri

  Lihtne failide üleslaadimise plugin. See kopeerib faili mis tahes KIO toetusega protokolli tarvitades.

- ## CTagsi kasutajaliides

  CTags on liikumisvahend paljude keelte toega. Laadimisel pakub see kontekstimenüüd deklaratsioonide/definitsioonide tüübi leidmiseks, samuti päringudialoogi tööriistade menüü vahendusel. Vaata internetis http://ctags.sourceforge.net/

- ## Lõpp-pakendamise toetus

  Abi valmisprojekti ehitamisel ja avaldamisel. Hetkel on toetatud ainult RPM-pakettide vorming.

- ## Doxygeni toetus

  Doxygeni plugin võimaldab määrata ja kontrollida projekti dokumentatsiooni loomist vastavalt lähtekoodi sisule. Selleks peab olema paigaldatud ka programm 'doxygen'. Vaata täpsemalt http://www.doxygen.org

- ## Kiiresti avamine

  Võimaldab hõlpsasti leida/avada faile, klasse ja meetodeid suures projektis. Laadimisel kättesaadav faili- ja tööriistade menüüs.

- ## Turvalisuse kontroll

  Koodi turvalisuse kontroll

Nii palju siis genereeritud pluginate nimekirjast.

## Projektihalduse pluginad &kdevelop;is

antproject | ANT projekti haldur (&Java; rakendused)
autoproject | Automake'i projekti haldur
customproject | Kohandatud projekti haldur
trollproject | QMake'i projekti haldur

Mainitud pluginad on praegu (mai 2005) tühjad. Võib-olla tulevikus teostatakse projektihaldus pluginatena.

## Keelte toetuse pluginad &kdevelop;is

cppsupport | C/C++ toetus
fortransupport | Fortrani toetus
javasupport | &Java; toetus
perlsupport | Perli toetus
phpsupport | PHP toetus
pythonsupport | Pythoni toetus

Järgnevalt vaatleme mõningaid pluginaid veidi üksikasjalikumalt.

- ## Plugin `abbrev`

  See plugin laiendab lühendid levinumateks koodijuppideks. Selle saab aktiveerida klahvikombinatsiooniga Ctrl Tühik. Kui näiteks kirjutad C++ keele korral redaktorisse `"ife"` ja vajutad CtrlTühik, on tulemuseks koodimall `if-else`, mis säästab sulle mõned klahvivajutused. Toetatud lühendite valik sõltub redigeeritava faili programmeerimiskeelest. Näiteks PHP korral oled ju ilmselt huvitatud teistsugustest koodimallidest kui &Java; puhul.

  Koodimallide valikut saab seadistada. Kui plugin on sisse lülitatud, näeb saadaolevaid malle dialoogi Seadistused KDevelopi seadistamine... kaardil Lühendid.

- ## Plugin `filter`

  See plugin pakub kaks võimalust. Kui valid menüükäsu Tööriistad Käivita käsk, saad sisestada shellikäsu. Käsu väljund lisatakse redaktori puhvrisse, kui klõpsad nuppu Käivita.

  Sellega on seotud käsk Tööriistad Filtreeri valik läbi käsu.... Selleks tuleb redaktoris valida tekst. Kui sisestad nüüd shelli käsu ja klõpsad nupule Käivita, käivitatakse käsk, mis võtab valitud teksti oma sisendiks. Käsu väljund lisatakse seejärel redaktorisse, asendades nii sinu valitud teksti.

  Kui näiteks kirjutad dokumentatsiooni, tuleb sageli viidata menüükäskudele. Et seda korrektselt teha näiteks menüüs Redigeerimine leiduva käsu Kopeeri korral, pead kirjutama:

      <menuchoice><guimenu>Redigeerimine</guimenu><guimenuitem>Kopeeri</guimenuitem></menuchoice>

  See on üsna tülikas, nii et mõistlikum on kirjutada lihtsalt "Redigeerimine - Kopeeri" ja lasta sildid panna arvutil endal. See käib järgmiselt. Sul tuleb kirja panna väike shelliskript nimega mef, mille paigutad näiteks oma kodukataloogi bin-kataloogi:

      sed s/"^\(.*\) - \(.*\)\$"/"<menuchoice><guimenu>\1<\/guimenu><guimenuitem>\2<\/guimenuitem><\/menuchoice>"/

  Ära unusta sellele käivitamisõigust andmast. Ja ongi kõik. Nüüd võid kirjutada oma dokumentatsiooni .docbook-lähtekoodifailis "Redigeerimine - Kopeeri". Vali see tekst, vali menüükäsk Tööriistad Filtreeri valik läbi käsu... ja kutsu välja käsk ~/bin/mef. Otsekohe asendataksegi "Redigeerimine - Kopeeri" tekstiga

      <menuchoice><guimenu>Redigeerimine</guimenu><guimenuitem>Kopeeri</guimenuitem></menuchoice>

- ## &doxygen;i plugin

  See plugin aitab kasutada &doxygen;i API dokumentatsiooni tööriista (). Menüükäsuga Projekt Käivita Doxygen saad luua oma projekti dokumentatsiooni vastavalt konfiguratsioonile, mille määrab sinu projektikataloogis leiduv fail `Doxyfile`.

  Lisaks saab &doxygen;i seadistada dialoogis Projekt Projekti seadistused.... See dialoog on üsna sarnane &doxywizard;iga.

- ## &ctags;i plugin

  Ehkki klassisirvija näitab juba põhjalikult sinu projekti sümboleid ja klasse, võib abiks olla ka CTagsi tööriist. Eriti tasuks tähele panna, et see toetab enam keeli kui klassisirvija.

  Plugina saab aktiveerida menüükäsuga Tööriistad CTags... Kui käivitad selle esimest korda, palutakse sul luua kõigepealt otsingu-andmebaas. Kui oled sellega nõus, käivitub &ctags; ja loob sinu projektikataloogi faili `tags`. See on tekstifail, mis sisaldab sinu lähtekoodifailide kõiki sümboleid.

  Sümbolite andmebaasis saab otsida kahel moel: kui märkida ära kast Regulaaravaldis, tõlgendatakse sisestatud otsinguteksti regulaaravaldisena (POSIX-i mõttes) ja otsitakse selle sobivust. Näiteks `.*Widget` otsib kõiki sümboleid, mille lõpus seisab `Widget`. Kui kast on märkimata, otsitakse täpselt seda, mida otsida lased.

  Otsimisel näidatakse sulle sobivate sümbolite nimekirja, koos reanumbriga, kus nad on defineeritud. Klõpsuga nimekirjas saab kohe vastavasse kohta hüpata.

  Mõne keele puhul eristab &ctags; sümboleid. Näiteks Pythonis on klassid ja funktsioonid. Sa võid näiteks otsida ainult klassides, kui märgid ära vastava kasti.

  Sümbolite andmebaasi ei uuendata, kui muudad oma lähtekoodi. Seepärast ei pruugi mõne aja pärast enam reanumbrid tegelikkusele vastata ning uued klassid ja funktsioonid on puudu. Seepärast tasuks faili `tags` regulaarselt uuendada, klõpsates nupule Genereeri uuesti.

- ## Plugin `astyle`

  Astyle on plugin, mis lubab lähtekoodi vormindada vastavalt kindlatele reeglitele.

- ## Plugin `regexptest`

  Regulaaravaldise loomine võib olla üsna tülikas tegevus. Sageli leiad esialgu liiga palju vasteid oma otsingule. Eriti keerukamate keelte puhul võib regulaaravaldiste paikaajamine olla väga vaevarikas. Plugin regeexptest lubab sul vahetult uurida regulaaravaldises tehtavate muudatuste mõju. Selle saab aktiveerida menüükäsuga Tööriistad Regulaaravaldise silumine...

  Regulaaravaldise tüübi sektsioonis saad valida, millist laadi regulaaravaldise mootorit kasutada. Praegu on toetatud POSIX standard, mida kasutab programm &grep; ja laiendatud POSIX süntaks, mida kasutab programm &egrep;.

  Kui sisestad avaldise, saad kohe teada, kas selles on süntaksivigu. Sisestades teksti kasti Teststring, näed, kas see sobib avaldisega. Eriti juhul, kui regulaaravaldis sisaldab gruppe, näiteks `([a-z])`, näidatakse nimekirjakastis sobivate alamgruppide sisu.