<appendix id="plugin-tools">
<title
>Insticksverktyg</title>

<indexterm zone="plugin-tools">
  <primary
>insticksverktyg</primary
></indexterm>

<para
>&kdevelop; innehåller ett stort antal små verktyg, som hjälper dig att utföra vissa uppgifter. De flesta fungerar som insticksprogram. Det betyder att om du inte behöver ett insticksprogram kan du helt enkelt inaktivera det.</para>
<para
>Det betyder också att om du letar efter funktioner som ska finnas, men inte gör det, kanske de är implementerade i ett insticksprogram och det insticksprogrammet är inaktiverat. Det finns till exempel en funktion för snabböppning i menyn Arkiv, men bara om den är aktiverad i dialogrutan Projekt - Projektinställningar. </para>
 
<para
>Tekniskt är insticksprogram baserade på klassen KDevPlugin definierad i lib/interfaces/kdevplugin.h. Det följande kommer från en kommentar där.</para>

<para
>KDevPlugin är basklassen för alla insticksprogram i KDevelop. Ett insticksprogram är en komponent som laddas i KDevelop-skalet vid start eller på begäran. Ett insticksprogram har en omfattning som antingen kan vara: <itemizedlist>
<listitem
><simpara
>Kärna</simpara
></listitem>
<listitem
><simpara
>Global</simpara
></listitem>
<listitem
><simpara
>Projekt</simpara
></listitem>
</itemizedlist>
</para>

<para
>Kärninsticksprogram är globala insticksprogram som erbjuder någon viktig funktion för "kärnan", och sålunda inte kan väljas av användaren på inställningssidorna för insticksprogram.</para>

<para
>Globala insticksprogram är de som bara kräver att skalet är laddad och inte använder sig av gränssnittet KDevProject och/eller använder information rörande hela projektet. Till exempel tillåter insticksprogrammet grafiskt gränssnittsläge utvecklare att välja vilket användargränssnitt de vill använda. </para>

<para
>Projektinsticksprogram kräver att att projekt är laddad, och laddas eller laddas ur tillsammans med projektet. Om ett insticksprogram använder sig av projektrelaterad information är det ett projektinsticksprogram. Hantering av Automake behöver till exempel bara vara aktivt när ett projekt baserat på Automake för tillfället är laddat. </para>

<para
>Som nämnts ovan kan inte kärninsticksprogram inaktiveras. Globala insticksprogram kan aktiveras eller inaktiveras med <menuchoice
><guimenu
>Inställningar</guimenu
> <guimenuitem
>Anpassa KDevelop...</guimenuitem
></menuchoice
> under <guibutton
>insticksprogram</guibutton
>. Projektinsticksprogram kan aktiveras eller inaktiveras med <menuchoice
><guimenu
>Projekt</guimenu
> <guimenuitem
>Projektinställningar...</guimenuitem
></menuchoice
> under <guibutton
>insticksprogram</guibutton
>. Aktiva insticksprogram kan ge många effekter i KDevelop. Beroende på deras funktion kan de lägga till extra menyer, extra menyalternativ, extra knappar i verktygsraden, etc. </para>

<para
>Insticksprogram som är inaktiverade skräpar inte ner menyerna och laddas inte i minnet. </para>


<para
>Följande lista över insticksprogram skapas av ett litet skript (listplugins.sh) skrivet av Volker Paul. Alla insticksprogram har en .desktop-fil där information som namn och kommentarer skrivs. Om kommentarerna i det följande inte är särskilt användbara, beror det på att insticksprogrammets upphovsmän gjorde dem på detta sätt.</para>
<para
>Insticksprogrammen är grupperade enligt omfattning (Kärna, Global, Projekt).</para>

<para
>Omfattning: Kärna</para>
<itemizedlist>
<listitem
><formalpara id="KDevAppWizard">
<title
>Programguide</title>
<para
>Programguide</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevDiff">
<title
>Visning av skillnader</title>
<para
>Visning av skillnader</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevFileCreate">
<title
>Skapa filer</title>
<para
>Skapa filer</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevFullScreen">
<title
>Fullskärm</title>
<para
>Fullskärm</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevTipOfDay">
<title
>Dagens tips</title>
<para
>Dagens tips</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevUIChooser">
<title
>Val av användargränssnitt</title>
<para
>Tillhandahåller en dialogruta för val av användargränssnittsläge.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevVCSManager">
<title
>Hantering av versionskontrollsystem</title>
<para
>Hantering av versionskontrollsystem </para
></formalpara
></listitem>
</itemizedlist>

<para
>Omfattning: Global</para>
<itemizedlist>
<listitem
><formalpara id="KDevAbbrev">
<title
>Expansion av förkortningar</title>
<para
>Ger stöd för anpassningsbara förkortningar: korta ord som expanderas till vanligt använda kodstrukturer.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevDocumentation">
<title
>Dokumentation</title>
<para
>Dokumentationsinsticksprogrammet erbjuder bläddring och sökning i lokal dokumentation och dokumentation på nätet, med stöd för flera dokumentationssystem.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevfilelist">
<title
>Fillista</title>
<para
>Tillhandahåller en lista av alla för närvarande öppna filer. (Praktiskt när flikraden inte är riktigt bred nog.)</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevFileSelector">
<title
>Filväljare</title>
<para
>Kraftfullt nätverkstransparent filbläddringsverktyg.</para
></formalpara
></listitem>
<listitem
><formalpara>
<title
>Skalfiltrering och infogning</title>
<para
>Erbjuder ett sätt att behandla editortext med kommandoradsverktyg. Finns i verktygsmenyn.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevGrepView">
<title
>Gränssnitt till grep</title>
<para
>Integrerar "find | grep" med KDevelop - tillåter snabb sökning i flera filer med mönster eller reguljära uttryck.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevKonsoleView">
<title
>Inbäddad terminal</title>
<para
>Insticksprogrammet ger KDevelop en inbyggd terminal för snabb och enkel åtkomst av kommandoraden.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevOpenWith">
<title
>Menytillägg till "Öppna med"</title>
<para
>Insticksprogrammet tillhandahåller ytterligare "öppna" alternativ i diverse sammanhangsberoende menyer i KDevelop.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevPartExplorer">
<title
>Delutforskningsverktyg</title>
<para
>Ett grafiskt verktyg för att utföra KTrader-liknande förfrågningar om registrerade tjänster.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevRegexpTest">
<title
>Test av reguljära uttryck</title>
<para
>Verktyg för att skapa och testa reguljära uttryck mot vanlig syntax för reguljära uttryck.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevReplace">
<title
>Ersättning</title>
<para
>Insticksprogrammet är ett interaktivt verktyg för att "söka och ersätta" i hela projektet. Sök med en sträng eller reguljärt uttryck, och välj ersättningen som ska göras från en förhandsgranskning innan åtgärden slutförs. När det laddats visas det i redigeringsmenyn.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevscripting">
<title
>Skriptanvändning</title>
<para
>Skriptinsticksprogrammet erbjuder KScript-baserad styrning av programmet KDevelop.</para
></formalpara
></listitem>
<listitem
><formalpara id="Code_Snippets">
<title
>Kodsnuttar</title>
<para
>Det här insticksprogrammet gör det möjligt att lagra kodsnuttar och lägga till dem i din kod</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevTextTools">
<title
>Textstruktur</title>
<para
>Tillhandahåller en strukturöversikt och navigering för HTML- och Tex-filer</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevTools">
<title
>Tillägg i verktygsmenyn</title>
<para
>Insticksprogrammet tillhandahåller ett enkelt sätt att lägga till yttre program i verktygsmenyn och verktygsraden.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevvalgrind">
<title
>Valgrind-gränssnitt</title>
<para
>Valgrind är ett verktyg som hjälper dig hitta minneshanteringsproblem i program. http://developer.kde.org/~sewardj/</para
></formalpara
></listitem>
</itemizedlist>

<para
>Omfattning: Projekt</para>
<itemizedlist>
<listitem
><formalpara id="KDevannotation">
<title
>Noteringsinsticksprogram</title>
<para
>Noteringsbeskrivning</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevAStyle">
<title
>Källkodsformatering</title>
<para
>Ett insticksprogram för att formatera källkod enligt en given uppsättning regler. När det laddats finns det i verktygsmenyn.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevBookmarks">
<title
>Bokmärken</title>
<para
>Insticksprogram som tillhandahåller navigering och översikt över aktiva källkodsbokmärken och gör dem bestående mellan sessioner.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevClassView">
<title
>Klassvisning</title>
<para
>Insticksprogrammet visar en grafisk bild av alla klasser i ett projekt, tillsammans med metoder och egenskaper, och ger möjlighet till direkt navigering i källkoden.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevcopyto">
<title
>Kopiera till</title>
<para
>Enkelt insticksprogram för uppladdning av filer. Det utför en filkopiering med alla protokoll som stöds av KIO.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevCTags2">
<title
>Ctags-gränssnitt</title>
<para
>Ctags är ett verktyg för källkodsnavigering med stöd för många språk. När det laddats tillhandahåller det en sammanhangsberoende meny för att hitta typdeklarationer eller definitioner, och dessutom en frågedialogruta. http://ctags.sourceforge.net/</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevdistpart">
<title
>Stöd för slutpaketering</title>
<para
>Hjälper till att bygga och publicera det färdiga projektet. Endast RPM-paketformatet stöds för närvarande.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevDoxygen">
<title
>Doxygen-stöd</title>
<para
>Doxygen-insticksprogrammet tillhandahåller ett sätt att ange och styra hur dokument skapas för ett projekt, baserat på källkodens innehåll. Du måste ha installerat Doxygen för att kunna använda det. För mer information besök http://www.doxygen.org.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevQuickOpen">
<title
>Snabböppna</title>
<para
>Erbjuder ett effektivt sätt att hitta och öppna filer, klasser och metoder i ett stort projekt. Finns i menyn Arkiv och Verktyg när det laddats.</para
></formalpara
></listitem>
<listitem
><formalpara id="KDevSecurity">
<title
>Säkerhetskontroll</title>
<para
>Kodsäkerhetskontroll</para
></formalpara
></listitem>
</itemizedlist>
<para
>Så långt den skapade listan över insticksprogram.</para>


<table id="table-project-parts">
<title
>Insticksprogram för projekthantering i &kdevelop;</title>
<tgroup cols="2"
><tbody>
<row>
  <entry
>antproject</entry>
  <entry
>ANT-projekthantering (&Java;-program)</entry>
</row>
<row>
  <entry
>autoprojekt</entry>
  <entry
>Automake projekthantering</entry>
</row>
<row>
  <entry
>customproject</entry>
  <entry
>Egen projekthantering</entry>
</row>
<row>
  <entry
>trollproject</entry>
  <entry
>Qmake-baserad projekthantering</entry>
</row>
</tbody
></tgroup>
</table>
<para
>Ovanstående insticksprogram är för närvarande (maj 2005) tomma. Kanske projekthanteringsstöd kommer att implementeras som insticksprogram i framtiden.</para>


<table>
<title
>Insticksprogram för språkstöd i &kdevelop;</title>
<tgroup cols="2">
<tbody>
<row
><entry
>cppsupport</entry
><entry
>Stöd för C/C++</entry
></row>
<row
><entry
>fortransupport</entry
><entry
>Stöd för Fortran</entry
></row>
<row
><entry
>javasupport</entry
><entry
>Stöd för &Java;</entry
></row>
<row
><entry
>perlsupport</entry
><entry
>Stöd för Perl</entry
></row>
<row
><entry
>phpsupport</entry
><entry
>Stöd för PHP</entry
></row>
<row
><entry
>pythonsupport</entry
><entry
>Stöd för Python</entry
></row>
</tbody
></tgroup>
</table>


<para
>Vissa av insticksprogrammen beskrivs i detalj i det följande.</para>

<itemizedlist>
<listitem>
<formalpara>
<title
>Insticksprogrammet <command
>Förkortningar</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>Förkortningar</command
></primary
></indexterm>

<para
>Det här insticksprogrammet fyller i förkortningar av ofta använda kodfragment. Det aktiveras genom att trycka på <keycombo
><keycap
>Ctrl</keycap
><keycap
>Mellanslag</keycap
></keycombo
>. Om du till exempel skriver in <literal
>"ife"</literal
> i C++ editorn, och trycker på <keycombo
><keycap
>Ctrl</keycap
><keycap
>Mellanslag</keycap
></keycombo
>, får du en <literal
>if-else</literal
> kodmall och sparar några tangentnertryckningar. Uppsättningen med förkortningar som stöds beror på den redigerade filens programspråk. För till exempel PHP är du naturligtvis intresserad av andra kodmallar än för &Java;. </para>
</formalpara>

<para
>Uppsättningen med kodmallar kan anpassas. Om insticksprogrammet är aktiverat, kan du se vilka som är tillgängliga med dialogrutan <menuchoice
><guimenu
>Inställningar</guimenu
> <guimenuitem
>Anpassa KDevelop...</guimenuitem
></menuchoice
> under <guibutton
>Förkortningar</guibutton
>. </para>
</listitem>

<listitem>
<formalpara id="KDevFilter">
<title
>Insticksprogrammet <command
>filter</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>filter</command
></primary
></indexterm>

<para
>Detta erbjuder två funktioner. Om du väljer <menuchoice
><guimenu
>Verktyg</guimenu
><guimenuitem
>Kör kommando</guimenuitem
></menuchoice
> kan du skriva in ett skalkommando. Utmatningen från kommandot infogas i editorns buffer när du trycker på knappen <guibutton
>Starta</guibutton
>. </para>
</formalpara>

<para
>En liknande funktion är tillgänglig med <menuchoice
><guimenu
>Verktyg</guimenu
> <guimenuitem
>Filtrera markering genom kommando...</guimenuitem
></menuchoice
>. För att använda den måste du markera ett textområde i editorn. Om du nu skriver in ett skalkommando och klickar på knappen <guibutton
>Starta</guibutton
>, startas kommandot och markeringen används som standardinmatning till det. Standardutmatningen från kommandot infogas därefter i editorn, och ersätter markeringen. </para>

<para
>Om du till exempel skriver dokumentation, behöver du ofta hänvisa till menyalternativ. För att gör det på rätt sätt för t.ex. kopieringskommandot i menyn Redigera, måste du skriva <programlisting
>&lt;menuchoice&gt;&lt;guimenu&gt;Redigera&lt;/guimenu&gt;&lt;guimenuitem&gt;Kopiera&lt;/guimenuitem&gt;&lt;/menuchoice&gt;</programlisting
> Det är omständigt, alltså skriver du hellre bara "Redigera" - "Kopera" och låter datorn utföra taggningen. Du kan göra det så här: Du skriver ett litet skalskript som heter mef, som du till exempel placerar i underkatalogen bin i din hemkatalog: <programlisting
>sed s/"^\(.*\) - \(.*\)\$"/"&lt;menuchoice&gt;&lt;guimenu&gt;\1&lt;\/guimenu&gt;&lt;guimenuitem&gt;\2&lt;\/guimenuitem&gt;&lt;\/menuchoice&gt;"/</programlisting
> Glöm inte att göra det körbart. Det är allt. Nu skriver du "Redigera" - "Kopiera" i dokumentationens .dokbook-källkod. Du markerar texten du just skrivit in, väljer <menuchoice
><guimenu
>Verktyg</guimenu
><guimenuitem
>Filtrera markering genom kommando...</guimenuitem
></menuchoice
> och anropar ~/bin/mef. Omedelbart ersätts "Redigera" - "Kopiera" med <programlisting
>&lt;menuchoice&gt;&lt;guimenu&gt;Redigera&lt;/guimenu&gt;&lt;guimenuitem&gt;Kopiera&lt;/guimenuitem&gt;&lt;/menuchoice&gt;</programlisting>
</para>


</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet &doxygen;</title>
<indexterm zone="plugin-tools"
><primary
>&doxygen;</primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>dokumentationsverktyg</primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>API-dokumentation</primary
></indexterm>

<para
>Detta hjälper dig att använda API-dokumentationsverktyget &doxygen; (<ulink url="http://www.doxygen.org"
></ulink
>). Du kan välja <menuchoice
><guimenu
>Projekt</guimenu
><guimenuitem
>Kör Doxygen</guimenuitem
></menuchoice
> för att skapa API-dokumentation för det nuvarande projektet baserat på konfigurationen som anges av filen <filename
>Doxyfile</filename
> i projektkatalogen. </para>
</formalpara>

<para
>Dessutom kan du anpassa &doxygen; med dialogrutan <menuchoice
><guimenu
>Projekt</guimenu
><guimenuitem
>Projektinställningar...</guimenuitem
></menuchoice
>. Dialogrutan är mycket lik verktyget &doxywizard;. </para>
</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet &ctags;</title>
<indexterm zone="plugin-tools"
><primary
>&ctags;</primary
></indexterm>

<para
>Även om klassbläddraren ger dig utförlig överblick över symboler och klasser i projektet, kan du också vilja använda ctags-verktyget. Det stöder i synnerhet många fler språk än klassbläddraren. </para>
</formalpara>

<para
>Du aktiverar insticksprogrammet under <menuchoice
><guimenu
>Verktyg</guimenu
><guimenuitem
>CTags...</guimenuitem
></menuchoice
>. När du startar det för första gången, blir du tillfrågad om att först skapa en sökdatabas. När du accepterar detta, startas &ctags;-programmet och skapar en fil som heter <filename
>tags</filename
> i projektkatalogen. Detta är en textfil som innehåller alla symboler i källkodsfilerna. </para>

<para
>Du kan söka på två sätt i symboldatabasen: när rutan <guilabel
>Matcha med reguljärt uttryck</guilabel
> är markerad, tolkas texten som du skriver in som ett reguljärt uttryck (POSIX-varianten) och matchas med befintliga symboler. Texten <literal
>.*Widget</literal
> söker till exempel efter alla symboler som slutar med <literal
>Widget</literal
>. Om rutan inte är markerad, är sökningen verbatim. </para>

<para
>Under sökningen visas en lista med matchade symboler, tillsammans med radnummer där de definieras. Du hoppar till respektive ställe genom att klicka i listan. </para>

<para
>För vissa språk skiljer &ctags; mellan olika typer av symboler. Python har till exempel klasser och funktioner. Du kan söka enbart efter klasser genom att kryssa in motsvarande typ i dialogrutan. </para>

<para
>Symboldatabasen uppdateras normalt inte när källkoden ändras. På grund av detta kommer inte radnumren vara riktiga längre efter ett tag, och nytillagda klasser och funktioner kommer att saknas. Därför bör du uppdatera filen <filename
>tags</filename
> med regelbundna intervall, genom att trycka på knappen <guibutton
>Skapa om</guibutton
>. </para>
</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet <command
>A-stil</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>a-stil</command
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
><application
>Artistisk stil</application
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>indrag</primary
></indexterm>

<para
>A-stil är ett insticksprogram för att formatera källkoden enligt en specificerad uppsättning regler. </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet <command
>regexptest</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>regexptest</command
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>avlusning</primary
><secondary
>reguljära uttryck</secondary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>reguljära uttryck</primary
><secondary
>avlusning</secondary
></indexterm>

<para
>Att konstruera reguljära uttryck kan vara ett hårt arbete. Ofta matchar det första försöket med ett uttryck för många strängar. I synnerhet vid arbete med ett kompilerat språk kan cykeltiden vid avlusning av ett reguljärt uttryck vara besvärlig. Insticksprogrammet regexptest låter dig direkt utforska ändringar i ett reguljärt uttryck. Det aktiveras genom att välja <menuchoice
><guimenu
>Verktyg</guimenu
> <guimenuitem
>Avlusa reguljärt uttryck...</guimenuitem
></menuchoice
>. </para>
</formalpara>

<para
>I variantkombinationsrutan kan du välja vilken variant av reguljära uttryck som ska användas. För närvarande stöds varianten som definieras av POSIX-standarden, som används av programmet &grep;, och den utökade POSIX-syntaxen som används av programmet &egrep;. </para>

<para
>När du skriver in ett uttryck, får du omedelbart återmatning om eventuella syntaxfel i det. Genom att skriva in en text under <guilabel
>Teststräng</guilabel
>, kan du se om uttrycket matchar strängen. I synnerhet om det reguljära uttrycket innehåller grupper, som <literal
>"([a-z])"</literal
>, visas innehållet av de matchade delgrupperna i en listruta. </para>
</listitem>

<!--
<listitem>
<formalpara>
<title
>The <command
>konsole</command
> Plugin</title>
<indexterm zone="plugin-tools"
><primary
><command
>konsole</command
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>terminal</primary
><secondary
>embedded</secondary
></indexterm>
<para
></para>
</formalpara>
</listitem>
-->

</itemizedlist>

</appendix
> <!-- plugin-tools -->

<!-- ====================================================================== -->
