# Pluginværktøjer

&kdevelop; indeholder et stort antal små værktøjer, som hjælper dig med at udføre visse opgaver. De fleste fungerer som plugin. Det betyder at hvis du ikke behøver et plugin kan du helt enkelt deaktivere det.

Det betyder også at hvis du leder efter funktioner som skal findes, men ikke gør det, så er de måske implementerede i et plugin og dette plugin er deaktiveret. Der er for eksempel en funktion for hurtigåbning i menuen Fil, men kun hvis den er aktiveret i dialogen Projekt - Projektindstillinger.

Teknisk er plugin baserede på klassen KDevPlugin definered i lib/interfaces/kdevplugin.h. Det følgende kommer fra en kommentar der.

KDevPlugin er basisklassen for alle plugin i KDevelop. Et plugin er en komponent som indlæses i KDevelop-skallen ved start eller efter forespørgsel. Et plugin har en omfattelse som enten kan være:

- Kerne

- Global

- Projekt

Kerneplugin er globale plugin som tilbyder nogle vigtige funktioner for "kernen", og derfor ikke kan vælges af brugeren på indstillingssiderne for plugin.

Globale plugin er dem som kun kræver at skallen er indlæst og ikke benytter sig af grænsefladen KDevProject og/eller bruger information der berører hele projektet. For eksempel tillader pluginnet grafisk grænsefladetilstand udviklere at vælge hvilke brugergrænseflade de vil bruge.

Projektplugin kræver at et projekt er indlæst, og indlæses eller fjernes sammen med projektet. Hvis et plugin benytter sig af projektrelateret information er det et projektplugin. Håndtering af Automake behøver for eksempel kun være aktivt når et projekt baseret på Automake for øjeblikket er indlæst.

Som nævnt ovenfor kan kerneplugin ikke deaktiveres. Globale plugin kan aktiveres eller deaktiveres med Opsætning Indstil KDevelop... under plugin. Projektplugin kan aktiveres eller deaktiveres med Projekt Projektindstillinger... under plugin. Aktive plugin kan give mange effekter i KDevelop. Afhængig af deres funktion kan de tilføje ekstra menuer, ekstra menupunkter, ekstra knapper i værktøjslinjen, osv.

Plugin som er deaktiverede roder ikke menuerne til og indlæses ikke i hukommelsen.

Følgende liste over plugin genereres af et lille script (listplugins.sh) skrevet af Volker Paul. Alle plugin har en .desktop-fil hvor information såsom navn og kommentarer skrives. Hvis kommentarerne i det følgende ikke er særligt nyttige, skyldes det på at pluginnets forfattere lavede dem på den måde.

Pluginnerne er grupperede efter omfattelse (Kerne, Global, Projekt).

Omfattelse: Kerne

- ## Programguide

  Programguide

- ## Visning af forskelle

  Visning af forskelle

- ## Opret filer

  Opret filer

- ## Fuldskærm

  Fuldskærm

- ## Dagens vink

  Dagens vink

- ## Valg af brugergrænseflade

  Sørger for en dialog til valg af brugergrænsefladetilstand.

- ## Håndtering af versionskontrolsystem

  Håndtering af versionskontrolsystem

Omfattelse: Global

- ## Ekspansion af forkortelser

  Giver understøttelse for indstillelige forkortelser: korte ord som ekspanderes til almindeligt brugte kodestrukturer.

- ## Dokumentation

  Dokumentationspluginnet tilbyder at browse og søge i lokal dokumentation og dokumentation på nettet, med understøttelse for flere dokumentationssystemer.

- ## Filliste

  Sørger for en liste af alle for øjeblikket åbne filer. (Praktisk når fanebladslinjen ikke er rigtig bred nok.)

- ## Filvælger

  Kraftfuldt netværkstransparent filbrowserværktøj.

- ## Skalfiltrering og indsætning

  Tilbyder en måde at behandle editortekst med kommandolinjeværktøj. Findes i værktøjsmenuen.

- ## Grænseflade for grep

  Integrerer "find | grep" med KDevelop - tillader hurtig søgning i flere filer med mønster eller regulære udtryk.

- ## Indlejret terminal

  Pluginnet giver KDevelop en indbygget terminal for hurtig og enkel adgang til kommandolinjen.

- ## Menutilføj "Åbn med"

  Pluginnet sørger for yderligere "åbn" alternativer i diverse sammenhængsafhængige menuer i KDevelop.

- ## Part-udforskerværktøj

  Et grafisk værktøj til at udføre KTrader-lignende forespørgsler om registrerede tjenester.

- ## Test af regulære udtryk

  Værktøj til at oprette og teste regulære udtryk mod almindelig syntaks for regulære udtryk.

- ## Erstatningspart

  Pluginnet er et interaktivt værktøj til at "søge og erstatte" i hele projektet. Søg med en streng eller et regulært udtryk, og vælg erstatningen som skal gøres ud fra en forhåndsvisning inden handlingen udføres. Når det er indlæst vises det i redigeringsmenuen.

- ## Scripter

  Skriptpluginnet tilbyder KScript-baseret styring af programmet KDevelop.

- ## Kodestumper

  Dette plugin gør det muligt at opbevare kodestumper og tilføje dem til din kode

- ## Tekststruktur

  Sørger for en strukturoversigt og navigering for HTML- og TeX-filer

- ## Tilføjelse i værktøjsmenuen

  Pluginnet sørger for en nem måde at tilføje eksterne programmer i værktøjsmenuen og værktøjslinjen.

- ## Valgrind-grænseflade

  Valgrind er et værktøj som hjælper dig med at finde hukommelseshåndteringsproblemer i programmer. http://developer.kde.org/~sewardj/

Omfattelse: Projekt

- ## noteringsplugin

  Noteringsbeskrivelse

- ## Kildekodeformatering

  Et plugin til at formatere kildekode ifølge et givet sæt regler. Når det er indlæst findes det i værktøjsmenuen.

- ## Bogmærker

  Plugin som sørger for navigering og oversigt over aktive kildekodebogmærker og gør dem vedvarende mellem sessioner.

- ## Klassevisning

  Pluginnet viser et grafisk billede af alle klasser i et projekt, sammen med metoder og egenskaber, og giver mulighed for direkte navigering i kildekoden.

- ## Kopiér til

  Enkelt plugin til overførsel af filer. Det udfører en filkopiering med alle protokoller som understøttes af KIO.

- ## Ctags-grænseflade

  Ctags er et værktøj for kildekodenavigering med understøttelse for mange sprog. Når det er indlæst sørger det for en sammenhængsafhængig menu til at finde typedeklarationer eller definitioner, og desuden en spørgsmålsdialog. http://ctags.sourceforge.net/

- ## Støtte for endelig pakning

  Hjælper til med at bygge og publicere det færdige projekt. Kun RPM-pakkeformatet understøttes for øjeblikket.

- ## Doxygen-understøttelse

  Doxygen-pluginnet sørger for en måde at angive og styre hvordan dokumenter skabes for et projekt, baseret på kildekodens indhold. Du skal have installeret Doxygen for at kunne bruge det. For mere information besøg http://www.doxygen.org.

- ## Hurtigåbn

  Tilbyder en effektiv måde at finde og åbne filer, klasser og metoder i et stort projekt. Findes i menuen Fil og Værktøjer når det er indlæst.

- ## Sikkerhedskontrol

  Kodesikkerhedskontrol

Indtil videre den genererede liste over plugin.

## Plugin for projekthåndtering i &kdevelop;

antproject | ANT-projekthåndtering (&Java;-programmer)
autoprojekt | Automake projekthåndtering
customproject | Egen projekthåndtering
trollproject | Qmake-baseret projekthåndtering

Ovenstående plugin er for øjeblikket (maj 2005) tomme. Måske vil projekthåndteringsunderstøttelse blive implementeret som plugin i fremtiden.

## Plugin for sprogunderstøttelse i &kdevelop;

cppsupport | Støtte for C/C++
fortransupport | Støtte for Fortran
javasupport | Støtte for &Java;
perlsupport | Støtte for Perl
phpsupport | Støtte for PHP
pythonsupport | Støtte for Python

Visse plugin beskrives i detalje i det følgende.

- ## Pluginprogrammet `abbrev`

  Dette pluginprogram udfylder forkortelser af ofte brugte kodefragmenter. Det aktiveres ved at trykke på CtrlMellemrum. Hvis du for eksempel skriver `"ife"` i C++ editoren, og trykker på CtrlMellemrum, får du en `if-else` kodeskabelon og sparer nogle tastetryk. Opsætningen med forkortelser som understøttes afhænger af den redigerede fils programmeringssprog. For eksempel til PHP er du naturligvis interesseret i andre kodeskabeloner end for &Java;.

  Sættet af kodeskabeloner kan indstilles. Hvis pluginnet er aktiveret, kan du se hvilke der er tilgængelige med dialogen Opsætning Indstil KDevelop... under Forkortelseer.

- ## Pluginprogrammet `filter`

  Dette tilbyder to funktioner. Hvis du vælger Værktøjer Kør kommando kan du indtaste en skalkommando. Udskriften fra kommandoen indsættes i editorens buffer når du trykker på knappen Start.

  En lignende funktion er tilgængelig med Værktøjer Filtrér markering ved kommando.... For at bruge den skal du markere et tekstområde i editoren. Hvis du nu skriver en skalkommando og klikker på knappen Start, startes kommandoen og markeringen bruges som standardindtastning til det. Standarduddata fra kommandoen indsættes derefter i editoren, og erstatter markeringen.

  Hvis du for eksempel skriver dokumentation, behøver du ofte at henvise til menupunkter. For at gøre dette på den rette måde for f.eks. kopieringskommandoen i menuen Redigér, skal du skrive

      <menuchoice><guimenu>Redigér</guimenu><guimenuitem>Kopiér</guimenuitem></menuchoice>

  Det er omstændeligt, altså skriver du hellere kun "Redigér" - "Kopiér" og lader maskinen udføre mærkningen. Du kan gøre dette sådan her: Du skriver et lille skalscript som hedder mef, som du for eksempel placerer i undermappen bin i din hjemmemappe:

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

  Glem ikke at gøre det kørbart. Det er alt. Nu skriver du "Redigér" - "Kopiér" i dokumentationens .dokbook-kildekode. Du markerer teksten du netop har indskrevet, vælger Værktøjer Filtrér markering ved kommando... og kalder ~/bin/mef. Så erstattes med det samme "Redigér" - "Kopiér" med

      <menuchoice><guimenu>Redigér</guimenu><guimenuitem>Kopiér</guimenuitem></menuchoice>

- ## Pluginprogrammet &doxygen;

  Dette hjælper dig med at bruge API-dokumentationsværktøjet &doxygen; (). Du kan vælge Projekt Kør Doxygen for at oprette API-dokumentation for det nuværende projekt baseret på konfigurationen som angives af filen `Doxyfile` i projektmappen.

  Desuden kan du indstille &doxygen; med dialogen Projekt Projektindstillinger.... Dialogen er meget lig værktøjet &doxywizard;.

- ## Pluginprogrammet &ctags;

  Selv om klassesøgeren giver dig et udførligt overblik over symboler og klasser i projektet, kan du også ville bruge ctags-værktøjet. Det understøtter i særdelshed mange flere sprog end klassesøgeren.

  Du aktiverer pluginprogrammet under Værktøj CTags.... Når du starter det for første gang, bliver du bedt om først at oprette en søgedatabase. Når du accepterer dette, startes &ctags;-programmet og laver en fil som hedder `tags` i projektmappen. Dette er en tekstfil som indeholder alle symboler i kildekodefilerne.

  Du kan søge på to måder i symboldatabasen: når feltet Matchning med regulært udtryk er markeret, tolkes teksten som du skriver som et regulært udtryk (POSIX-varianten) og matches med eksisterende symboler. Teksten `.*Widget` søger for eksempel efter alle symboler som slutter med `Widget`. Hvis feltet ikke er markeret, er søgningen verbatim.

  Under søgningen vises en liste med matchende symboler, sammen med linjenummeret hvor de defineres. Du springer til respektive steder ved at klikke i listen.

  For visse sprog skelner &ctags; mellem forskellige typer af symboler. Python har for eksempel klasser og funktioner. Du kan søge kun efter klasser ved at afkrydse den tilsvarende type i dialogen.

  Symboldatabasen opdateres normalt ikke når kildekoden ændres. På grund af dette kommer linjenumrene ikke til at være rigtige længe efter et stykke tid, og nytilføjede klasser og funktioner vil mangles. Derfor bør du opdatere filen `tags` med regelmæssige intervaller, ved at trykke på knappen Genopret.

- ## Pluginprogrammet `astyle`

  A-stil er et plugin til at formatere kildekoden ifølge et specifikt sæt regler.

- ## Pluginprogrammet `regexptest`

  At konstruere regulære udtryk kan være et hårdt arbejde. Ofte matcher det første forsøg med et udtryk for mange strenge. I særdeleshed ved arbejde med et kompileret sprog kan cykeltiden ved fejlsøgning af et regulært udtryk være besværlig. Pluginprogrammet regexptest lader dig udforske ændringer i et regulært udtryk direkte. Det aktiveres ved at vælge Værktøj Fejlsøg regulært udtryk....

  I variantdropned-feltet kan du vælge hvilken variant af regulære udtryk der skal bruges. For øjeblikket understøttes varianten som defineres af POSIX-standarden, som bruges af programmet &grep;, og den udvidede POSIX-syntaks som bruges af programmet &egrep;.

  Når du indtaster et udtryk, får du umiddelbart tilbagemelding om eventuelle syntaksfejl i det. Ved at indtaste en tekst under Teststreng, kan du se om udtrykket matcher strengen. I særdeleshed om det regulære udtryk indeholder grupper, såsom `"([a-z])"`, vises indholdet af de matchede delgrupper i et listefelt.