# Arbeta med insticksprogram

Du kan aktivera de individuella insticksprogrammen i inställningsdialogrutan, som också ger tillgång till ytterligare inställningsalternativ för insticksprogram som kräver det.

## Insticksprogram för programmet &kate;

&kate; insticksprogram är ytterligare funktioner för editorn &kate;. De kan lägga till extra menyer och snabbtangenter, och utöka &kate;s funktioner. Du kan installera så många eller så få du vill, inne i &kate;. Öppna &kate;s inställningsdialogruta med Inställningar Anpassa &kate;... Använd Program Insticksprogram för att välja önskade insticksprogram.

De tillgängliga insticksprogrammen är:

- Externa verktyg - Kör externa verktyg och program

- Bläddring i bakåtspårning: Navigeringsverktyg med vy av C/C++ bakåtspårning

- Bygginsticksprogram: Kompilera eller bygg och tolka felmeddelanden

- Stäng förutom/som: Stäng grupp av dokument baserat på en gemensam sökväg eller filändelse

- Färghämtare - Visa förhandsgranskning av kända färgnamn

- Färgade parenteser: Färgade parenteser för läsbarhet

- CTags: Slå upp definitioner och deklarationer med CTags

- Dokumentförhandsgranskning - Förhandsgranska dokumentet i målformatet.

- Dokumentbyte: Snabbt dokumentbyte med beteende likt &Alt;Tabulator.

- Filsystembläddrare: Verktygsvy för filsystembläddring

- Dokumentträdvy: Visar öppna filer i ett filträd

- &gdb; - Tillhandahåller ett enkelt gränssnitt för &gdb;

- Projektinsticksprogram: Integrering med &git; och andra källkontrollsystem

- Replicode: Konstruktivistiskt AI-språk och körprogram

- LSP-klient: LSP-klient som tillhandahåller kodnavigering och kodkomplettering för många språk

- Sök och ersätt: Sök eller ersätt mönster i öppnade dokument eller i filer på disk

- Verktygsvy med textsnuttar: Verktygsvy som inbäddar hantering av textsnuttar

- Tangentbordsmakron: Spela in och återge tangentbordsmakron (dvs. kommandosekvenser med tangentbordet)

- SQL-insticksprogram - Utför en förfrågan i SQL-databaser

- Symbolvisning: Hämta och visa referenssymboler från källkod

- Verktygsvy med terminal: Ha en lätt tillgänglig terminal, genom att använda &kde;:s grafiska &konsole;-komponent

- Textfilter: Behandla text med terminalkommandon

- &XML;-komplettering: Listar XML-element, attribut, attributvärden och objekt som tillåts av DTD

- &XML;-validering: Validerar &XML;-filer med XMLlint

## Externa verktyg

Insticksprogrammet Externa verktyg gör det möjligt att starta externa program med data relaterad till det aktuella dokument, exempelvis dess webbadress, katalog, text eller markering. När det väl är aktiverat, visas en inställningssida, avbildad nedan, som gör att befintliga verktyg kan ändas eller tas bort. På liknande sätt kan nya verktyg läggas till enligt tycke och smak. Verktygen visas därefter i undermenyn Externa verktyg i programmets meny Verktyg.

Inställningssidan gör det möjligt att lägga till nya externa verktyg genom att klicka på knappen Lägg till. När det görs, dyker en sammanhangsberoende meny upp där man antingen kan lägga till ett nytt externt verktyg, lägga till ett befintligt verktyg från en fördefinierad lista, eller lägga till en ny kategori för att organisera de externa verktygen i kategorier. På liknande sätt kan de befintliga verktygen ändras genom att antingen dubbelklicka eller använda Redigera..., och Ta bort tar bort de markerade verktygen.

### Anpassa externa verktyg

Att redigera ett verktyg visar en inställningsdialogruta som tillåter finkornig inställning av verktyget:

Som synes, kan många saker definieras, närmare bestämt:

- `Namn`, verktygets namn, som senare dyker upp i menyn.

  `Ikon`, valfri ikon som syns i menyn.

  `Körbart program`, körbart program som antingen innehåller en fullständig sökväg, eller så måste det körbara programmet finnas i miljövariabeln `PATH`.

  `Väljare`, valfria väljare som skickas till det körbara programmet.

  `Inmatning`, valfri indata som skickas till processen via standardinmatningen.

  `Arbetskatalog`, arbetskatalogen som verktyget startas i. Om den är tom, ställs arbetskatalogen in till det aktuella dokumentets sökväg.

  `Mime-typer`, om inställda är verktyget bara aktivt om de matchar det aktuella dokumentets Mime-typ.

  `Spara`, när det aktiveras, sparas inget, det aktuella dokumentet eller alla dokument.

  `Utlösare`, en utlösare för att köra verktyget. En utlösare påverkar bara dokumentet som för närvarande är aktivt och används bara om Mime-typen för dokumentet som för närvarande är aktivt motsvarar Mime-typen hos det externa verktyget.

  Följande utlösare är tillgängliga:

- `Ingen`, det är förvalt värde, och betyder att verktyget inte har någon utlösare.

  `Innan spara`, utlösaren kör verktyget precis innan dokumentet sparats.

  `Efter spara`, utlösaren kör verktyget efter dokumentet har sparats.

`Läs in aktuellt dokument efter körning`, användbart när den aktuella filen ändras på disk.

`Utmatning`, definierar målet för standardutmatningen. Den kan antingen ställas in till `Ignorera`, `Infoga vid markörposition`, `Ersätt markerad text`, `Ersätt aktuellt dokument`, `Lägg till sist i aktuellt dokument`, `Infoga i nytt dokument`, `Kopiera till klippbordet` eller `Visa i ruta`.

`Redigeringskommando`, valfritt kommando som kan användas för att starta det externa verktyget via den inbyggda kommandoraden.

Knappen Förval är bara synlig för verktyg som levereras med Kate. När den klickas, återgår alla verktygets inställningar till förvalda värden (fabriksinställning).

### Variabelexpansion

Visa redigeringsfält såsom Körbart program, Väljare, Inmatning och Arbetskatalog stöder variabler som expanderas när verktyget används. Det indikeras med ikonen {} som visas när väl ett av dessa textinmatningsfält har fokus (se den röda cirkeln).

Att hålla musen över ett av textinmatningsfälten visar också ett verktygstips med den nuvarande expanderade texten. Dessutom visas en dialogruta som listar alla tillgängliga variabler vid klick på alternativet {}:

Funktionen erbjuder stor flexibilitet när ett externt verktyg definieras, eftersom alla variabler på formen `%{...}` expanderas när verktyget startas. Det finns två sorters variabler som stöds:

- `%{variabelnamn}`

- `%{variabelnamn:<värde>}`

Den första formen `%{variabelnamn}` ersätter helt enkelt variabeln med dess innehåll. Exempelvis ersätts variabeln `%{Document:FileName}` med det aktuella dokumentets filnamn utan sökväg. Den andra formen `%{variabelnamn:≶värde>}` får `<värde>` som innehåll. Det kan exempelvis användas för att expandera en miljövariabel med `%{ENV:HOME}`, eller för att få dagens datum med önskat format, såsom `%{Date:yyyy-MM-dd}`.

Variabler som stöds inkluderar:

- `Document:FileBaseName`: Det aktuella dokumentets filbasnamn utan sökväg och filändelse.

  `Document:FileExtension`: Det aktuella dokumentets filändelse.

  `Document:FileName`: Det aktuella dokumentets filnamn utan sökväg.

  `Document:FilePath`: Det aktuella dokumentets fullständiga sökväg, inklusive filnamnet.

  `Document:Text`: Det aktuella dokumentets innehåll.

  `Document:Path`: Det aktuella dokumentets fullständiga sökväg utan filnamnet.

  `Document:NativeFilePath`: Fullständig dokumentsökväg inklusive filnamnet, med den inneboende sökvägsavgränsaren (bakstreck på Windows).

  `Document:NativePath`: Fullständig dokumentsökväg utan filnamnet, med den inneboende sökvägsavgränsaren (bakstreck på Windows).

  `Document:Cursor:Line`: Radnummer för textmarkören i det aktuella dokumentet (börjar med 0).

  `Document:Cursor:Column`: Kolumnnummer för textmarkören i det aktuella dokumentet (börjar med 0).

  `Document:Cursor:XPos`: X-komponenten i globala skärmkoordinater för markörpositionen.

  `Document:Cursor:YPos`: Y-komponenten i globala skärmkoordinater för markörpositionen.

  `Document:Selection:Text`: Det aktuella dokumentets textmarkering.

  `Document:Selection:StartLine`: Den markerade textens startrad i det aktuella dokumentet.

  `Document:Selection:StartColumn`: Den markerade textens startkolumn i det aktuella dokumentet.

  `Document:Selection:EndLine`: Den markerade textens slutrad i det aktuella dokumentet.

  `Document:Selection:EndColumn`: Den markerade textens slutkolumn i det aktuella dokumentet.

  `Document:RowCount`: Det aktuella dokumentets antal rader.

  `Document:Variable:<variabel>`: Expandera godtyckliga dokumentvariabler.

  `Date:Locale`: Dagens datum med format enligt nuvarande landsinställning.

  `Date:ISO`: Dagens datum (ISO).

  `Date:<värde>`: Dagens datum (QDate formatsträng).

  `Time:Locale`: Aktuell tid med format enligt nuvarande landsinställning.

  `Time:ISO`: Aktuell tid (ISO).

  `Time:<value>`: Aktuell tid (QTime formatsträng).

  `ENV:<värde>`: Åtkomst till miljövariabler.

  `JS:<uttryck>`: Utvärderar enkla satser i JavaScript.

  `PercentEncoded:<text>`: Procentkodad text.

  `UUID`: Skapa nytt UUID.

### Lista över standardverktyg

Flera verktyg levereras som förval. Om du har fler användbara verktyg, bidra gärna med dem via kwrite-devel@kde.org så att vi kan lägga till dem i listan. Alla förvalda verktyg är normalt synliga i listan. Dock kan alla verktyg ändras som du vill, inklusive kategori eller till och med ta bort verktyg. Borttagna verktyg kan läggas till igen genom att klicka på knappen Lägg till på inställningssidan som beskrivs ovan.

### git-cola

git-cola är ett grafiskt git-program som låter dig enkelt skapa och checka in ändringar. Om det är installerat, är det också tillgängligt på kommandoraden genom att skriva `git-cola`.

- `Namn`: git-cola

  `Ikon`: git-cola

  `Körbart program`: git-cola

  `Väljare`: -r %{Document:Path}

  `Redigeringskommando`: git-cola

### gitk

gitk är ett git-program som dessutom gör det möjligt att snyggt åskådliggöra historiken i git.

- `Namn`: gitk

  `Ikon`: git-gui

  `Körbart program`: gitk

  `Arbetskatalog`: %{Document:Path}

  `Redigeringskommando`: gitk

### git blame

Startar git blame för att enkelt följa ändringar av den aktuella filen i git.

- `Namn`: git blame

  `Körbart program`: git

  `Väljare`: gui blame %{Document:FileName}

  `Spara`: Aktuellt dokument

  `Arbetskatalog`: %{Document:Path}

  `Redigeringskommando`: git-blame

### Kör skalskript

Startar en extern terminal där det aktuella dokumentet körs. Skriptet måste ange tolken på första raden via `#!/sökväg/tolk`.

- `Namn`: Kör skalskript

  `Ikon`: system-run

  `Körbart program`: konsole

  `Väljare`: -e sh -c "cd %{Document:Path} && pwd && chmod -vc a+x %{Document:FileName} && ./%{Document:FileName} ; echo Press any key to continue. && read -n 1"

  `Spara`: Aktuellt dokument

  `Arbetskatalog`: %{Document:Path}

  `Redigeringskommando`: run-script

### Google markerad text

Sök efter markerad text på Google.

- `Namn`: Google markerad text

  `Ikon`: globe

  `Körbart program`: xdg-open

  `Väljare`: "https://www.google.com/search?q=%{Document:Selection:Text}"

  `Redigeringskommando`: google

### Infoga UUID

Infoga en ny UUID varje gång åtgärden utförs.

- `Namn`: Infoga UUID

  `Körbart program`: echo

  `Väljare`: %{UUID}

  `Utmatning`: Infoga vid markörposition

  `Redigeringskommando`: uuid

### Clang formatera hela filen

Kör clang-format på aktuell fil på disk. Dokumentet läses in igen efteråt.

- `Namn`: Clang formatera hela filen

  `Körbart program`: clang-format

  `Väljare`: -i %{Document:FileName}

  `Arbetskatalog`: %{Document:Path}

  `Spara`: Aktuellt dokument

  `Läs in igen`: Ja

  `Redigeringskommando`: clang-format-file

### Clang formatera markerad text

Kör clang-format enbart för den markerade texten i aktuellt dokument.

- `Namn`: Clang formatera markerad text

  `Körbart program`: clang-format

  `Väljare`: -assume-fileName: %{Document:FileName}

  `Arbetskatalog`: %{Document:Path}

  `Inmatning`: %{Document:Selection:Text}

  `Utmatning`: Ersätt markerad text

  `Redigeringskommando`: clang-format-selection

### Qt Quick 2 förhandsgranskning (qmlscene)

Förhandsgranskar aktuell QML-fil i qmlscene.

- `Namn`: Qt Quick 2 förhandsgranskning (qmlscene)

  `Körbart program`: qmlscene

  `Väljare`: %{Document:FileName}

  `Spara`: Aktuellt dokument

  `Arbetskatalog`: %{Document:Path}

  `Redigeringskommando`: qml-preview

### JSON formatera hela filen

Formatera hela JSON-filen.

- `Namn`: JSON formatera hela filen

  `Ikon`: application-json

  `Körbart program`: jq

  `Väljare`: %{Document:FileName}

  `Spara`: Aktuellt dokument

  `Arbetskatalog`: %{Document:Path}

  `Utmatning`: Ersätt aktuellt dokument

  `Redigeringskommando`: json-format-file

### XML formatera hela filer

Formatera hela XML-filen.

- `Namn`: JSON formatera hela filen

  `Ikon`: application-xml

  `Körbart program`: xmllint

  `Väljare`: --format %{Document:FileName}

  `Spara`: Aktuellt dokument

  `Arbetskatalog`: %{Document:Path}

  `Utmatning`: Ersätt aktuellt dokument

  `Redigeringskommando`: xml-format-file

## Insticksprogrammet Bläddring i bakåtspårning

### Använda insticksprogrammet Bläddring i bakåtspårning

Insticksprogrammet är avsett för utvecklare och användare har troligtvis begränsad användning av det. Det visar en bakåtspårning levererad av gdb i en listvy i en &kate; verktygsvy. Att klicka på ett objekt öppnar den markerade filen och går till rätt radnummer. Det fungerar för bakåtspårningar skapade på den egna datorn, men fungerar också för bakåtspårningar från andra, t.ex. `/home/exempel/qt-copy/.../qwidget.cpp` hittas också på andra datorer. För att det ska fungera måste katalogerna där källkoden finns indexeras.

Ibland finns det flera filer med samma namn, t.ex.

- `kdegraphics/okular/generators/dvi/config.h`
- `kdepim-runtime/resources/gmail/saslplugin/config.h`

För att välja rätt alternativ, väljer insticksprogrammet webbadressens två sista delarna, som i detta fall skulle vara

- `dvi/config.h`
- `saslplugin/config.h`

Och därefter hittar insticksprogrammet oftast den rätta.

Indexering av master och en gren leder naturligtvis till kollisioner.

### Inställning

Lägg till katalogerna som innehåller källkoden på inställningssidan.

Bläddring i bakåtspårning
Anpassa sökvägar med verktygsvyn i Bläddring i bakåtspårning

Att klicka på Ok påbörjar indexeringen. Öppna verktygsvyn Bläddring i bakåtspårning när indexeringen är klar.

Nu kan en bakåtspårning läsas in från klippbordet (t.ex. om du klickat på Kopiera till klippbordet i &drkonqi;) eller från en fil.

## Bygginsticksprogram

### Inledning

Bygginsticksprogrammet låter dig utföra åtgärder som bygg, rensa och kompilera för ett projekt.

### Använda bygginsticksprogrammet

Bygginsticksprogrammet lägger till verktygsvyn Byggutmatning längst ner och menyn Bygg i menyraden. Verktygsvyn kan användas för att anpassa inställningar av byggmål, medan menyn kan användas för att bygga, rensa och kompilera.

Byggutmatning

Verktygsvyn Byggutmatning har två flikar:

- Målinställningar

- Utmatning

#### Fliken målinställningar

Fliken målinställningar kan användas för att anpassa diverse byggmål och definiera måluppsättningar.

För att ändra namn eller kommandon, dubbelklicka på posterna i tabellen och använd kombinationsrutan för att välja aktiv måluppsättning. Använd kryssrutan framför varje mål för att definiera ett standardvärde.

En ny måluppsättning innehåller flera olika inställningsalternativ:

Arbetskatalog

- Här kan sökvägen till projektet anges. Lämna den tom för att använda katalogen där aktuellt dokument finns.

Bygg

- Alternativen låter dig definiera byggkommandot. Det är normalt inställt till `make`.

Rensa

- Alternativen låter dig definiera rensningskommandot. Det är normalt inställt till `make clean`.

Config

- Alternativet låter dig definiera kommandot config. Det är normalt inställt till `cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local ../`

Längst upp har insticksprogrammet en verktygsrad med följande knappar:

- Bygg markerat mål
- Lägg till nytt mål
- Skapa en ny byggmåluppsättning
- Kopiera kommando eller måluppsättning
- Ta bort nuvarande kommando eller måluppsättning

#### Fliken Utmatning

Fliken Utmatning visar terminalutmatningen som genererades av det senaste kommandot.

Använd skjutreglaget längst upp för att dölja eller visa utmatningskategorier:

Fullständig utmatning, Tolkad utmatning, Fel och varningar eller Bara fel

Varje rad innehåller ett meddelande, filnamnet och radnumret om tillgängligt. Att klicka på felet eller varningen går till lämplig fil och placerar markören på motsvarande radnummer.

För att gå till föregående fel, tryck på &Alt;&Shift;Vänster. För att gå till nästa fel, tryck på &Alt;&Shift;Höger.

### Menystruktur

Bygg Välj mål

- Välj från en lista med mål inställda av användaren.

Bygg Bygg standardmål

- Bygger målet som är definierat som standardmål i den aktiva måluppsättningen.

Bygg Bygg föregående mål

- Byt till föregående mål inställt av användaren.

Bygg Stoppa

- Stoppa byggning av ett mål.

&Ctrl;&Alt;Vänster Bygg Föregående fel

- Flyttar markören till platsen för det föregående felet i dokumentet.

&Ctrl;&Alt;Höger Bygg Nästa fel

- Flyttar markören till platsen för det nästa felet i dokumentet.

### Tack och erkännanden

&kate;s bygginsticksprogram är skrivet av Kåre Särs.

Särskilt tack till deltagaren i Google Code-In 2011, Salma Sultana, för att ha skrivit stora delar av det här avsnittet.

## Stäng förutom/som insticksprogram

### Inledning

Insticksprogrammet låter dig stänga en grupp dokument baserat på deras filändelse och sökväg.

### Använda insticksprogrammet Stäng förutom/som

Antag att följande dokument är öppna i &kate;:

- /tmp/subfolder/test.h
- /tmp/test.cpp
- /tmp/test.txt

Då har du följande alternativ för att stänga dokument, som visas på skärmbilden:

Stäng förutom

Använd kryssrutan för det sista alternativet i listan för att aktivera eller inaktivera en bekräftelsedialogruta. Det valda alternativet gäller båda stängningsalternativen.

### Menystruktur

Arkiv Stäng förutom

- Stäng alla öppna dokument, förutom de som motsvarar sökvägen eller filändelsen som väljes i undermenyn.

Arkiv Stäng som

- Stäng alla öppna dokument som motsvarar sökvägen eller filändelsen som väljes i undermenyn.

## Insticksprogrammet Färghämtare

### Inledning

Insticksprogrammet lägger till en färggranskare/färghämtare på plats i texten (t.ex. `#FFFFFF`, `vit`).

För att ladda insticksprogrammet, öppna först &kate;s inställningsdialogruta under Inställningar Anpassa &kate;... . Markera därefter Färghämtare och stäng dialogrutan.

### Inställning

På färghämtarens inställningssida i &kate;s inställningar kan du ställa in följande alternativ för insticksprogrammets beteende.

Visa förhandsgranskning av kända färgnamn

- Om färghämtaren ska visas för kända färgnamn (t.ex. `skyblue`). Se den här sidan för en lista med färger.

Placera förhandsgranskning efter textfärg

- Om förhandsgranskningen på plats ska placeras efter färgen i texten.

Matchning av hexadecimal färg

- Här kan du välja det bästa matchningsalternativet för färgerna som används i din kod.

## Färgade parenteser

### Inledning

Insticksprogrammet Färgade parenteser färglägger matchande parentespar med olika färger för att förbättra läsbarheten. Dock färgläggs inte alla parenteser, En parentes vars matchande inledande eller avslutande tecken inte är synligt ignoreras. På samma sätt, färgläggs inte ett parentespar som är det enda paret på en rad.

### Inställning

Insticksprogrammet tillhandahåller inte några inställningar.

## CTags-insticksprogram

### Inledning

CTags skapar en indexfil (eller taggfil) av språkobjekt som hittas i källkodsfiler, som gör det möjligt att snabbt och enkelt lokalisera objekten med det här insticksprogrammet i &kate;.

En tagg betecknar ett språkobjekt som har en indexpost tillgänglig (eller alternativt, indexposten skapad för objektet).

Att skapa taggar stöds för de här programspråken.

### Inställning

Insticksprogrammet CTags använder två olika databasfiler för indexet.

På CTags inställningssida i &kate;s inställningar kan kataloger som innehåller källkod läggas till eller tas bort, och den gemensamma CTags databasen kan genereras om.

#### Gemensamt index

Inställningar av CTags
Anpassa CTags globala databas

Längst ner på inställningssidan kan CTags-kommando anpassas.

För mer information om alla tillgängliga väljare, läs CTags manualsida. Manualsidan är tillgänglig i Hjälpcentralen, och det går också att skriva in webbadressen man:/ctags direkt i &konqueror;.

Att klicka på Uppdatera startar indexeringen. Stäng dialogrutan när indexeringen är färdig.

#### Sessionsindex

Öppna vyn CTags för att anpassa sessionsindexet.

Indexeringsmål

- Under den här fliken kan kataloger som innehåller källkoden läggas till och tas bort, och den sessionsspecifika CTags databasen kan manuellt genereras om.

Databas

- Databasinställningar
  Anpassa CTags sessionsdatabas

  Välj en annan CTags databasfil, anpassa CTags-kommandot eller återgå till standardkommandot.

### Använda CTags insticksprogrammet

Placera muspekaren på ett språkobjekt, såsom en funktion, symbol, etc., som du är intresserad av och välj därefter en av åtgärderna i menyn CTags för att gå till raden och filen där objektet är definierat eller deklarerat.

Normalt har alternativen i menyn CTags inga tilldelade genvägar. Använd editorn av snabbtangenter för att ställa in egna genvägar.

Som alternativ, använd sökfältet under fliken Slå upp i CTags vyn.

Att skriva in tecken i sökfältet påbörjar sökningen och visar matchande namn på språkobjekt som funktioner, klasser, symboler, etc., tillsammans med typ och filnamn.

Välj ett objekt i listan för att gå till motsvarande rad i källkodsfilen.

### Menystruktur

CTags Gå tillbaka ett steg

- Navigera bakåt i historiken till den senast besökta taggen.

CTags Slå upp nuvarande text

- Visar fliken Slå upp i CTags vyn och visar alla språkobjekt som motsvarar den nuvarande textmarkeringen i listan.

CTags Gå till deklaration

- Om markören är i ett definitionsobjekt öppnas dokumentet som innehåller motsvarande deklaration om det behövs, dess vy aktiveras och markören placeras i början på deklarationen.

CTags Gå till definition

- Om markören är i ett deklarationsobjekt öppnas dokumentet som innehåller motsvarande definitionen om det behövs, dess vy aktiveras och markören placeras i början på definitionen.

## Insticksprogram för dokumentförhandsgranskning

### Inledning

Insticksprogrammet aktiverar en direkt förhandsgranskning av textdokumentet som för närvarande redigeras med det slutliga formatet i sidoraden. Så när t.ex. &Markdown;-text eller en &SVG;-bild redigeras, är resultatet omedelbart synligt intill källtexten.

Insticksprogrammet använder &kparts;-insticksprogrammet som för närvarande är valt som det föredragna för dokumentets &MIME;-typ för visning. Om det inte finns något &kparts;-insticksprogram för typen är inte någon förhandsgranskning möjlig.

För att ändra föredraget insticksprogram öppna modulen Filbindningar i systeminställningarna och redigera Önskad ordning av tjänster under fliken Inbäddning.

### Några tillgängliga &kparts;-insticksprogram

&MIME;-typ | &kparts;-insticksprogram
&Markdown;-text | KMarkdownWebViewPart eller OkularPart
&SVG;-bild | SVGPart
&Qt; UI-filer | KUIViewerPart
&DOT; Graph-filer | KGraphviewerPart

### Menystruktur

Visa Verktygsvyer Visa förhandsgranskning

- Visar eller döljer &kate;s dokumentförhandsgranskning i en sidorad.

### Gränssnitt

Knapparna ovanför förhandsgranskningsfönstret tillhandahåller följande åtgärder:

- Lås förhandsgranskningen till ett givet dokument. Att välja alternativet försäkrar att om fokus ändras till att visa ett annat dokument i samma &kate;-fönster, följer inte förhandsgranskningen det dokumentet, utan fortsätter att förhandsgranska det här dokumentet.

- Aktivera eller inaktivera uppdateringar av förhandsgranskningen av aktuellt dokumentinnehåll

- Uppdatera förhandsgranskningen av aktuellt dokumentinnehåll manuellt

- En kombinationsmeny med åtgärder från &kparts;-insticksprogrammet

## Insticksprogrammet Dokumentbyte

### Menystruktur

&Ctrl;Tabulator Visa Senast använda vyer

&Ctrl;&Shift;Tabulator Visa Senast använda vyer (baklänges)

- Öppnar en lista med senast visade dokument:

  Senast visade dokument

  Håll &Ctrl;-tangenten nertryckt och använd Tabulator för att gå framåt i listan. Håll dessutom nere &Shift;-tangenten för att vända på ordningen.

  Håll nere väljartangenterna &Ctrl;Tabulator och använd tangenterna Uppåtpil, Neråtpil, Home, eller End för att navigera i listan. Att trycka på en teckentangent går igenom alla objekt i listan där det första tecknet matchar i följd. Om väljartangenterna släpps byter vyn till dokumentet som är valt i listan.

## Filsystembläddrare

Filsystembläddraren är en katalogvy, som låter dig öppna filer i en katalog som visas i den nuvarande rutan.

### Menystruktur

Visa Verktygsvyer Visa Filsystembläddrare

- Visar eller döljer &kate;s filsystembläddrare.

### Gränssnitt

Uppifrån och ner, består filsystembläddraren av följande delar:

En verktygsrad

- Den här innehåller vanliga navigationsknappar:

  Tillbaka

- Gör att katalogvyn byter till katalogen som tidigare visades i historiken med kommandot `cd`. Knappen är inaktiv om det inte finns någon tidigare katalog.

Framåt

- Gör att katalogvyn byter till nästa katalog i historiken med kommandot `cd`. Knappen är inaktiv om det inte finns någon nästa katalog.

Bokmärken

- Visar en undermeny för att redigera eller lägga till bokmärken, och för att lägga till en ny bokmärkeskatalog.

Aktuell dokumentkatalog

- Den här knappen gör att katalogvyn byter till katalogen för det nuvarande aktiva dokumentet med kommandot `cd`, om möjligt. Knappen är inaktiv om det nuvarande dokumentet är en ny, osparad fil, eller om katalogen som den finns i inte kan bestämmas.

Alternativ

- Kort format

- Visar bara filnamnen.

Detaljerat format

- Visar filernas Namn, Datum, och Storlek.

Trädformat

- Som Kort format, men kataloger kan expanderas för att se deras innehåll.

Detaljerat trädformat

- Det tillåter också att kataloger expanderas, men visar de ytterligare kolumnerna tillgängliga i Detaljerat format.

Visa dolda filer

- Visar filer som normalt döljs av operativsystemet.

Synkronisera automatiskt med aktuellt dokument

- När alternativet är aktiverat använder filsystembläddraren `cd` för att automatiskt gå till katalogen där dokumentet som för närvarande är öppet i redigeringsområdet finns, varje gång det ändras.

En platsangivelse

- Den visar en länkstig till katalogen som för närvarande är öppen, på liknande sätt som i &dolphin;. Du kan klicka på vilken katalog som helst för att gå till den, eller klicka på någon av pilarna till vänster om en katalog för att välja vilken katalog som helst under den. Du kan också välja i listan med platser genom att klicka på ikonen längst till vänster i länkstigen, där en ikon visas som representerar nuvarande platser.

  Du kan också klicka till höger om länkstigen för att ändra den till en textruta, där du kan skriva in sökvägen till katalogen som ska visas. Inmatningsrutan behåller en lista med de senast inskrivna sökvägarna. För att välja en, använd pilknappen till höger om fältet.

  Inmatningsrutan har automatisk komplettering av kataloger. Kompletteringsmetoden kan anges via menyn som visas genom att klicka med höger musknapp på textfältet.

En katalogvy

- Det här är &kde;:s standardkatalogvy.

Ett filterfält

- Filterfältet låter dig skriva in ett filter för filerna som visas i katalogvyn. Filtret använder vanliga jokertecken, där mönster måste skiljas åt av blanktecken. Till exempel: `*.cpp *.h *.moc`.

  För att visa alla filer, skriv in en ensam asterisk `*`.

  Filterfältet sparar de senaste tio filtren mellan sessioner. För att använda ett, tryck på pilknappen till höger i fältet och välj önskad filtersträng. Filtret kan inaktiveras genom att klicka på knappen Rensa text till vänster om pilknappen för automatisk komplettering.

### Inställning

Insticksprogrammet kan anpassas på sidan Filsystembläddrare i &kate;s inställningsruta.

Verktygsrad

- Anpassa knapparna i filsystembläddrarens verktygsrad genom att flytta de du vill ha aktiverade till listan Markerade åtgärder, och ordna dem med pilknapparna vid sidan om listan.

## Dokumentlistan

### Inledning

Dokumentlistan visar en lista över alla dokument som för närvarande är öppna i &kate;. Ändrade filer har en liten diskettikon till vänster för att ange tillståndet.

Längst upp har dokumentlistan en verktygsrad med följande knappar:

- Skapa nytt dokument
- Öppna ett befintligt dokument
- Föregående dokument
- Nästa dokument
- Spara aktuellt dokument
- Spara aktuellt dokument med ett nytt namn

Normalt visas dokumentlistan i Trädläge, vilket visar katalogstrukturen som omger alla öppna dokument. Listläge är också tillgängligt, som visar en enkel lista över alla öppna dokument. Det går att byta läge genom att högerklicka på listan och välja i menyn Visningsläge.

Om två eller flera filer med samma namn (placerade i olika kataloger) är öppna i Listläge, namnet på den andra inleds med (2) och så vidare. Filens verktygstips visar det fullständiga namnet inklusive sökvägen, vilket gör det möjligt att välja den önskade.

Klicka på dokumentnamnet i listan för att visa ett dokument i fönstret som för närvarande är aktivt.

Den sammanhangsberoende menyn har några vanliga alternativ från menyn Arkiv.

Dessutom finns filhanteringsalternativ för att byta namn på eller ta bort filen. Med Kopiera plats kan dokumentets fullständiga sökväg kopieras till klippbordet.

Det går att sortera listan på några olika sätt genom att högerklicka på listan och välja i menyn Sortera enligt. Alternativen är:

Dokumentnamn

- Listar dokumenten alfabetiskt enligt deras namn.

Dokumentsökväg

- Listar dokumenten alfabetiskt enligt sökvägen till dem.

Öppningsordning

- Listar dokumenten i den ordning de öppnades.

Dokumentlistan visar normalt historiken genom att skugga posterna för de senaste dokumenten med en bakgrundsfärg. Om dokumentet har redigerats, tonas extra färg in. Det senaste dokumentet har starkast färg, så att du lätt hittar dokumenten du arbetar med. Funktionen kan stängas av på sidan Dokument i inställningsdialogrutan.

Den normala platsen för dokumentlistan i &kate;s fönster är till vänster om redigeringsområdet.

### Menystruktur

&Alt;Uppåtpil Visa Föregående dokument

- Öppnar dokumentet som visas ovanför dokumentet som för närvarande är öppet i dokumentlistan.

&Alt;Neråtpil Visa Nästa dokument

- Öppnar dokumentet som visas nedanför dokumentet som för närvarande är öppet i dokumentlistan.

Visa Visa aktivt

- Visar dokumentet som för närvarande är öppet i dokumentlistan.

### Inställning

Bakgrundsskuggning

- Den här delen låter dig aktivera eller inaktivera visualiseringen med bakgrundsskuggning av senaste aktiviteter, och välja vilka färger att använda om den är aktiverad.

Sortera enligt

- Ställ in hur du vill att dokumentlistan ska sorteras. Det kan också ställas in från menyn som visas med höger musknapp i dokumentlistan.

Visningsläge

- Det här tillhandahåller två alternativ som påverkar visningen i verktygsvyn Dokument. Alternativet Trädvy visar dokumenten i ett träd under katalogerna de befinner sig i, medan Listvy visar en enkelt lista med dokument.

Visa fullständig sökväg

- När trädvyn och detta alternativ är aktiverat, visas den fullständiga sökvägen i filsystemet till katalogen för de katalogposter som visas i verktygsvyn Dokument, förutom själva katalogens namn. Det har ingen effekt i listvyn.

Visa verktygsrad

- När trädvyn och det här alternativet är aktiverade, visas en verktygsrad med åtgärder som Spara ovanför dokumentlistan. Avmarkera alternativet om verktygsraden ska vara dold.

Visa stängningsknapp

- När alternativet är aktiverat, visar &kate; en stängningsknapp för öppnade dokument när musen hålls över.

## Insticksprogram för &gdb;

### Inledning

Insticksprogrammet för &gdb; i &kate; tillhandahåller ett enkelt gränssnitt för den populära avlusaren från &GNU;-projektet.

Tidigare erfarenhet av &gdb; rekommenderas starkt. För mer information om att använda &gdb;, besök &gdb;:s hemsida.

Insticksprogrammet för &gdb; kan aktiveras på sidan med insticksprogram i &kate;s inställningar.

För att insticksprogrammet ska fungerar riktigt, måste du ha en källkodsfil (av vilken typ som helst som stöds av &gdb;) och ett körbart program.

Om du kompilerar med &gcc;/`g++` bör du kanske använda kommandoradsväljaren ``-ggdb``.

Efter dessa förberedelser har gjorts, öppna källkodsfilen i &kate;, skriv in sökvägen till det körbara programmet under fliken Inställningar i verktygsvyn Avlusningsvy, och välj Avlusa Starta avlusning i menyn för att komma igång.

### Meny- och verktygsradstruktur

Alla dessa alternativ är tillgängliga i &kate;s menyer, och många är också tillgängliga från avlusningsverktygsraden.

Visa Verktygsvyer Visa avlusningsvy

- Visar en verktygsvy som innehåller utmatning från &gdb;, kommandoraden för &gdb; som använts, och andra inställningar.

Visa Verktygsvy Visa lokala objekt och stack

- Visar en lista med alla variabler som för närvarande är inlästa och deras värden, samt en &gdb; bakåtspårning.

Avlusa Mål

- En undermeny som innehåller en lista med mål (körbara program).

Avlusa Starta avlusning

- Startar &gdb; med ett mål.

Avlusa Döda eller stoppa avlusning

- Stoppar &gdb;.

Avlusa Starta om avlusning

- Startar om &gdb;.

Avlusa Växla brytpunkt

- Sätt en brytpunkt på markörens nuvarande position.

Avlusa Stega in i

- Kör aktuell sats (funktionsanrop avlusas).

Avlusa Stega förbi

- Kör aktuell sats (funktionsanrop avlusas inte)

Avlusa Stega ut ur

- Återupptar körning till programmet som kör avslutas.

Avlusa Flytta programräknare

- Flyttar programräknaren (nästa körning).

Avlusa Kör till markören

- Kör programmet till det når nuvarande markörposition.

Avlusa Fortsätt

- Ignorerar eventuella brytpunkter och kör programmet till det avslutas (med lyckat resultat eller inte).

Avlusa Skriv ut värde

- Skriver ut värdet på variabeln som markören för närvarande pekar på.

Inställningar Visade verktygsrader Insticksprogram för &gdb;

- Visar avlusningsverktygsraden.

### Avlusningsvy

Verktygsvyn Avlusningsvy består av flera flikar:

Utmatning från &gdb;

- Innehåller utmatning från &gdb; och en &gdb; kommandorad.

  Fliken Utmatning Fliken Utmatning.

  Fliken Utmatning visar utmatningen från en avlusningssession.

Inställningar

- Körbart program

- Sökväg till mål (körbart program) att avlusa.

Arbetskatalog

- Nuvarande arbetskatalog som tillhandahålls till målet.

Väljare

- Väljare som skickas till programmet.

Behåll fokus

- Behåller fokus på &gdb;:s kommandorad.

Omdirigera in- och utmatning

- Visar en ny flik för I/O i Avlusningsvyn där du kan se utmatning från och ge inmatning till programmet som kör.

Inställningsdialogrutan Inställningsdialogrutan

Dialogrutan Inställningar visar inställningen för en avlusningssession.

I/O

- Innehåller ett område som visar utmatning från programmet som kör och en kommandorad där du kan ange inmatning till det.

  Fliken I/O Fliken I/O.

  Fliken I/O som visar utmatning från ett enkelt testprogram.

### Anropsstack och lokala objekt

Verktygsvyn Anropsstack innehåller en lista av formaterad bakåtspårning som returneras från &gdb;.

Verktygsvyn Anropsstack i &gdb; Verktygsvyn Anropsstack.

Verktygsvyn Anropsstack i insticksprogrammet för &gdb;.

Verktygsvyn Lokala objekt innehåller en lista över alla variabler som för närvarande är laddade från programmet, och deras motsvarande värden.

Verktygsvyn Lokala objekt i &gdb; Verktygsvyn Lokala objekt

Verktygsvyn Lokala objekt i insticksprogrammet för &gdb;.

### Tack och erkännanden

Särskilt tack till deltagaren i Google Code-In 2011, Martin Gergov, för att ha skrivit stora delar av det här avsnittet.

## Projektinsticksprogram

### Inledning

Grundidén med projektinsticksprogrammet är att ha en strukturerad fillista som hör till projektet med följande egenskaper:

1. Tillhandahålla en strukturerad vy av filerna

2. Göra det lätt och mycket snabbt att öppna och byta projekt

3. Stödja sök och ersätt i ett projekt

4. Tillhandahålla enkel automatisk komplettering

5. Göra det lätt att snabbt öppna filer i projektet

6. Stöd för att bygga projektet

### Strukturerad vy av filerna

När projektinsticksprogrammet väl har laddats från &kate;s inställningssida, öppna en fil i ett projekt så visas en sidorad där alla projekt samt projektfilerna listas på följande sätt:

Projektvy

Som synes är projektet som för närvarande är aktivt Kate, och dess innehåll listas i trädvyn. Genom att klicka på filer i trädvyn öppnas de i editorn. Dessutom tillhandahålls en sammanhangsberoende meny som gör att filer kan öppnas med andra program, såsom en `.ui`-fil med Qt Designer.

Det går att filtrera objekt genom att skriva in en del av filnamnet som du söker efter på sökraden längst ner i listan.

### Byta projekt

Idén är att man aldrig ska behöva öppna ett projekt manuellt, det stöds överhuvudtaget inte. Vad som sålunda sker om en fil öppnas är att projektinsticksprogrammet snabbt söker igenom katalogen och dess överliggande kataloger för att hitta filen `.kateproject`. Om den hittas, läses projektet automatiskt in.

Dessutom om ett annat dokument öppnas i &kate; som hör till ett annat projekt, byter projektinsticksprogrammet automatiskt aktuellt projekt. Alltså är intuitivt alltid rätt projekt aktivt. Man kan naturligtvis också byta projekt som för närvarande är aktivt genom att använda kombinationsrutan.

### Sök och ersätt i projekt

&kate; har insticksprogrammet Sök och ersätt som dyker upp i den nedre sidoraden. Om ett projekt är inläst, öppna sidoraden Sök och ersätt, och byt till läget för att söka och ersätta i det aktuella projektet:

Sök i projekt

### Enkel automatisk komplettering

Med kunskap om alla filer som hör till ett projekt, tillhandahåller projektinsticksprogrammet enkel automatisk komplettering baserat på CTags. Om ett projekt just har öppnats, tolkar CTags alla projektfiler i en bakgrundstråd och sparar CTags-information i `/tmp`. Filen används sedan för att fylla i rutan med automatisk komplettering i &kate;.

I motsats, utan automatisk komplettering klarar &kate; bara av att visa objekt för automatisk komplettering baserat på ord i den nuvarande filen. Alltså är den automatiska kompletteringen som tillhandahålls av projektinsticksprogrammet mycket kraftfullare.

Komplettering i projekt

Om CTags saknas, varnas du om problemet av en passiv meddelanderuta. Det är också värt att notera att CTags-filen i `/tmp` städas bort när &kate; avslutas, så insticksprogrammet förorenar inte någon katalog med oönskade filer.

### Stöd för att bygga projektet

En annan funktion är att ha stöd för insticksprogrammet Bygg så att det automatiskt ställs in på ett riktigt sätt.

### Skapa projekt

#### Läsa in projekt automatiskt

Projektinsticksprogrammet har en funktion för automatisk inläsning. Du kan läsa fillistan från versionskontrollsystemet. För att åstadkomma det, måste automatisk inläsning vara aktiverat i inställningarna för respektive versionskontrollsystem (normalt är den det):

Inställning av projektinsticksprogrammet

#### Skapa projekt manuellt

Du behöver bara skapa filen `.kateproject` i projektets rotkatalog. Exempelvis ser `.kateproject`-filen för Kate ut så här:

    {
      "name": "Kate",
      "files": [
        {
          "git": 1
        }
      ]
    }

Filens innehåll skrivs med &JSON;-syntax. Projektnamnet är Kate, och filerna som finns i det ska läsas från &git;.

Istället för `git` stöds också Subversion via `svn` och Mercurial via `hg`. Om du inte vill läsa från ett versionskontrollsystem, kan du bara starta kate från kommandoraden som:

    kate /sökväg/till/katalogr

eller tala om att filer ska läsas in rekursivt från kataloger enligt följande:

    {
      "name": "Kate",
      "files": [
        {
          "directory": "kate",
          "filters": [
            "*.cpp",
            "*.h",
            "*.ui",
            "CMakeLists.txt",
            "Find*.cmake"
          ],
          "recursive": 1,
          "hidden": 1
        }
      ],
      "exclude_patterns" : [
        "^build/.*"
      ]
    }

Här definierar underkataloger och filter vad som ingår i projektet. Du kan också blanda versionskontroll och filer baserat på filter. Dolda filer hämtas inte om alternativet `"dolda"` är 0. `"exclude_patterns"` är en lista över reguljära uttrycksmönster som kan användas för att utesluta kataloger och filer från projektträdet. I det här exemplet exkluderas alla filer och kataloger i katalogen `build` från roten.

Om du vill lägga till stöd för att bygg, kan du skriva `.kateproject` så här:

    {
      "name": "Kate",
      "files": [
        {
          "git": 1
        }
      ],
      "build": {
        "directory": "build",
        "build": "make all",
        "clean": "make clean",
        "install": "make install",
        "targets": [
          {
            "name": "all",
            "build_cmd": "ninja"
            "run_cmd": "./bin/kate"
          },
          {
            "name": "kate",
            "build_cmd": "ninja kate-bin"
          }
        ]
      }
    }

Målen som anges ovan visas sedan i bygginsticksprogrammet under "Mål projektinsticksprogram". Om fältet `"targets"` är specificerat ignoreras `"build"`, `"clean"` och `"install"` . Varje element i fältet anger ett mål. `"name"` är namnet på målet, `"build_cmd"` används för att bygga målet, `"run_cmd"` används för att köra målet. Viktigast av allt är `"katalog"`, det är här kommandona kommer att köras.

Ifall du har filen `.kateproject` hanterad av ett versionshanteringssystem, men behöver finjustera inställningen för en viss arbetsrymd, kan du spara ändringarna i en separat fil vid namn `.kateproject.local`. Innehållet i den filen får företräde framför `.kateproject`.

### Aktuellt projekt

Genom att använda &Alt;1 Projekt Gå till kan vyn Aktuellt projekt öppnas längst ner i editorns fönster med fyra flikar:

Aktuellt projekt

Terminalpanel

- En Terminalemulator som börjar i projektets rotkatalog.

Kodindex

- Att skriva in tecken i sökraden påbörjar sökningen och visar matchande namn på funktioner, klasser, symboler, etc., tillsammans med typ, filnamn och radnummer.

  Välj ett objekt i listan för att gå till motsvarande rad i källkodsfilen.

Kodanalys

- Klicka på Starta analys för att utföra en statisk kodanalys av C och C++ genom att använda `cppcheck` och skapa en rapport som visar filnamn, radnummer, svårighetsgrad (stil, varning, etc.) och problemet som hittades.

  Välj ett objekt i listan för att gå till motsvarande rad i källkodsfilen.

Anteckningar

- Text som matas in under den här fliken sparas i filen `.kateproject.notes`.

### Menyn Projekt

Menyn Projekt låter dig byta mellan projekt som för närvarande är öppna. Den visas av insticksprogrammet Projekt.

&Ctrl;&Alt;Vänsterpil Projekt Bakåt

- Byt till föregående projekt.

&Ctrl;&Alt;Högerpil Projekt Framåt

- Byt till nästa projekt.

&Alt;1 Projekt Gå till

- Öppna vyn Aktuellt projekt längst ner i editorns fönster.

## LSP-klientinsticksprogram

LSP-klientinsticksprogram tillhandahåller många språkfunktioner som kodkomplettering, kodnavigering eller hitta referenser baserade på Language Server Protocol.

När LSP-klienten väl har aktiverats på insticksprogramsidan, visas en ny sida i &kate;s inställningsdialogruta som kallas LSP-klient.

### Menystruktur

Om det passar, nämns ett motsvarande LSP-kommando också i förklaringen nedan, och dokumentationen av det kan då ge ytterligare bakgrund och tolkning, även om det kan bero på själva språket. Uttrycket 'aktuell symbol' gäller symbolen som motsvarar markörens aktuella position, och sålunda bestämd av språket och serverimplementeringen.

LSP-klient Gå till definition

- [textDocument/definition] Gå till aktuell symboldefinition.

LSP-klient Gå till deklaration

- [textDocument/declaration] Gå till aktuell symboldeklaration.

LSP-klient Gå till typdefinition

- [textDocument/typeDefinition] Gå till typdefinition för aktuell symbol.

LSP-klient Sök efter referenser

- [textDocument/references] Sök efter referenser till aktuell symbol.

LSP-klient Sök efter implementeringar

- [textDocument/implementation] Sök efter implementeringar av aktuell symbol.

LSP-klient Färglägg

- [textDocument/documentHighlight] Färglägg referenser till aktuell symbol i aktuellt dokument.

LSP-klient Håll över

- [textDocument/hover] Håll musen över för information om aktuell symbol.

LSP-klient Format

- [textDocument/formatting] [textDocument/rangeFormatting] Formatera aktuellt dokument eller aktuell markering.

LSP-klient Byt namn

- [textDocument/rename] Byt namn på aktuell symbol.

LSP-klient Snabbrättning

- [textDocument/codeAction, workspace/executeCommand] Beräknar och utför en snabbrättning för diagnostik på aktuell position (eller rad).

LSP-klient Visa vald kompletteringsdokumentation

- Visa dokumentation för ett markerat objekt i kompletteringslistan.

LSP-klient Aktivera signaturhjälp med automatisk komplettering

- Visa också signaturhjälp i kompletteringslistan.

LSP-klient Inkludera deklaration i referenser

- Begäran om att inkludera en symbols deklaration när referenser efterfrågas.

LSP-klient Lägg till parenteser vid funktionskomplettering

- Lägg automatiskt till ett par parenteser efter att en funktion har kompletterats.

LSP-klient Visa information för muspekaren

- Visa information för muspekaren när den hålls över någonting. Oberoende av inställningen, kan en begäran alltid initieras manuellt.

LSP-klient Formatera vid inskrivning

- [document/onTypeFormatting] Formatera delar av dokumentet när vissa utlösande tecken skrivs in. Det kan exempelvis utföra indentering vid nyrad, eller när det annars bestäms av LSP-servern. Observera att indenteringsskript i editorn kan försöka göra samma sak (beroende på läge), och därför kanske det inte är lämpligt att ha båda aktiverade samtidigt.

LSP-klient Inkrementell dokumentsynkronisering

- Skicka partiella dokumentredigeringar för att uppdatera servern istället för hela dokumentets text (om det stöds).

LSP-klient Markera plats att gå till

- Tillhandahåll en tillfällig visuell antydan efter att ha gått till en plats (för en definition, deklaration, etc.).

LSP-klient Visa diagnostikunderrättelser

- [textDocument/publishDiagnostics] Behandla och visa diagnostikunderrättelser som skickas av servern.

LSP-klient Visa diagnostikfärgläggning

- Lägg till textfärgläggning för intervall som indikeras i diagnostiken.

LSP-klient Visa diagnostikmarkörer

- Lägg till dokumentmarkörer för rader som indikeras i diagnostiken.

LSP-klient Byt till diagnostikflik

- Byt till diagnostikfliken i insticksprogrammets verktygsvy.

LSP-klient Stäng alla utom diagnostikflikar

- Stäng alla utom diagnostikflikar (t.ex. referensflikar) i insticksprogrammets verktygsvy.

LSP-klient Starta om LSP-server

- Starta om det aktuella dokumentets LSP-server.

LSP-klient Starta om alla LSP-servrar

- Stoppa alla LSP-servrar, som sedan startas (om) efter behov.

### Stöd för gå till symbol

LSP-klienten kan hjälpa till att gå till vilken symbol som helst i projektet eller den aktuella filen. För att gå till vilken symbol som helst i filen, använda verktygsvyn "LSP-klienten symbolöversikt" vid Kates högra kant. Verktygsvyn listar alla symbolers som servern hittat i det aktuella dokumentet.

#### Anpassa LSP-klientens symbolöversikt

Normalt sorteras symbolerna enligt sin förekomst i dokumentet men det går att ändra sorteringen till alfabetisk. Högerklicka i verktygsvyn och markera "Sortera alfabetiskt" för att göra det.

Verktygsvyn visar normalt symbolerna i trädform, men det går dock att ändra till en lista med den sammanhangsberoende menyn.

#### Globalt stöd för gå till symbol

För att gå till vilken symbol i projektet, kan du öppna att dialogrutan för att gå till symbol genom att använda &Ctrl;&Alt;p. Dialogrutan är tom när den öppnas men så fort du skriver någonting börjar dialogrutan visa motsvarande symboler. Kvaliteten på träffarna liksom filtreringsmöjligheterna beror på servern som används. Exempelvis stöder clangd inexakt filtrering men vissa andra servrar kanske inte gör det.

### Övriga funktioner

Kommandot för att byta källkodsdeklaration i Clangd stöds. För att byta källkodsdeklaration i ett C eller C++ projekt, använda antingen alternativet "Byt källkodsdeklaration" i den sammanhangsberoende menyn eller genvägen F12.

Du kan snabbt gå till en symbol genom att placera musen över symbolen och sedan trycka på &Ctrl; + vänster musknapp.

### Inställning

Insticksprogrammets inställningssida tillåter i huvudsak en bestående inställning av vissa av menyalternativen ovan. Dock finns det en ytterligare post för att ange serverns inställningsfil. Det är en &JSON;-fil som kan användas för att ange LSP-servern som ska startas (och sedan kommuniceras med via standardinmatning och standardutmatning). Av bekvämlighetsskäl inkluderas en standardinställning, som kan granskas på insticksprogrammets inställningssida. Som hjälp i förklaringen nedan, ges ett utdrag ur inställningen här:

    {
        "servers": {
            "bibtex": {
                "use": "latex",
                "highlightingModeRegex": "^BibTeX$"
            },
            "c": {
                "command": ["clangd", "-log=error", "--background-index"],
                "commandDebug": ["clangd", "-log=verbose", "--background-index"],
                "url": "https://clang.llvm.org/extra/clangd/",
                "highlightingModeRegex": "^(C|ANSI C89|Objective-C)$"
            },
            "cpp": {
                "use": "c",
                "highlightingModeRegex": "^(C\\+\\+|ISO C\\+\\+|Objective-C\\+\\+)$"
            },
            "d": {
                "command": ["dls", "--stdio"],
                "url": "https://github.com/d-language-server/dls",
                "highlightingModeRegex": "^D$"
            },
            "fortran": {
                "command": ["fortls"],
                "rootIndicationFileNames": [".fortls"],
                "url": "https://github.com/hansec/fortran-language-server",
                "highlightingModeRegex": "^Fortran.*$"
            },
            "javascript": {
                "command": ["typescript-language-server", "--stdio"],
                "rootIndicationFileNames": ["package.json", "package-lock.json"],
                "url": "https://github.com/theia-ide/typescript-language-server",
                "highlightingModeRegex": "^JavaScript.*$",
                "documentLanguageId": false
            },
            "latex": {
                "command": ["texlab"],
                "url": "https://texlab.netlify.com/",
                "highlightingModeRegex": "^LaTeX$"
            },
            "go": {
                "command": ["go-langserver"],
                "commandDebug": ["go-langserver", "-trace"],
                "url": "https://github.com/sourcegraph/go-langserver",
                "highlightingModeRegex": "^Go$"
            },
            "python": {
                "command": ["python3", "-m", "pyls", "--check-parent-process"],
                "url": "https://github.com/palantir/python-language-server",
                "highlightingModeRegex": "^Python$"
            },
            "rust": {
                "command": ["rls"],
                "path": ["%{ENV:HOME}/.cargo/bin", "%{ENV:USERPROFILE}/.cargo/bin"],
                "rootIndicationFileNames": ["Cargo.lock", "Cargo.toml"],
                "url": "https://github.com/rust-lang/rls",
                "highlightingModeRegex": "^Rust$"
            },
            "ocaml": {
                "command": ["ocamlmerlin-lsp"],
                "url": "https://github.com/ocaml/merlin",
                "highlightingModeRegex": "^Objective Caml.*$"
            }
        }
    }

Observera att varje "kommando" kan vara ett fält eller en sträng (som delas till ett fält i detta fall). Dessutom tas också hänsyn till en toppnivå "global" post (intill "server"): se nedan. Den angivna binärfilen eftersöks på vanligt sätt, t.ex. genom att använda `PATH`. Om den är installerad på en egen plats, måste den senare utökas. Eller, som alternativ, kan en (symbolisk) länk eller omgivande skript användas på en plats som finns inom den vanliga `PATH`. Som åskådliggörs ovan, kan man också ange en "sökväg" som söks igenom efter de vanliga platserna.

Alla posterna i "command", "root" och "path" är föremål för variabelexpansion.

Posten "highlightingModeRegex" används för att konvertera färgläggningsläget som det används av &kate; till serverns språkidentifikation. Om inget reguljärt uttryck anges, används själva språkidentifikationen. Om posten "documentLanguageId" är false, tillhandahålls ingen språkidentifikation till servern när dokumentet öppnas. Det kan ge bättre resultat på vissa servrar som är mer noggranna med att avgöra dokumenttypen än att bara göra det baserat på en inställning i Kate.

Kärnan är förmodligen klar från ovanstående exempel. Dessutom kan varje serverobjekt också ha posten "initializationOptions", som skickas med till servern som en del av metoden 'initialize'. Om den finns, skickas posten "settings" till servern via underrättelsen 'workspace/didChangeConfiguration'. Var och en av "completionTriggerCharacters" eller "signatureTriggerCharacters" kan anges som ett JSON-objekt med strängmedlemmarna "exclude" och/eller "include". De används för att undanta eller lägga till vissa tecken i respektive utlösaruppsättning som servern tillhandahåller.

Diverse steg av överskridning och sammanfogning utförs:

- användarinställningen (inläst från fil) överskrider (den interna) standardinställningen

- posten "lspclient" i projektinställningen `.kateproject` överskrider ovanstående

- den resulterande "globala" posten används för att fylla i (inte överskrida) en eventuell serverpost

En serverinstans används per kombinationen (root, servertype). Om "root" anges som en absolut sökväg används den som den är, annars är den relativ till projectBase (som bestämd av projektinsticksprogrammet), om tillämpligt, eller annars relativt till dokumentets katalog. Om "root" inte anges och "rootIndicationFileNames" är ett fält av filnamn, väljes en överliggande katalog till den aktuella dokumentet som innehåller en sådan fil. Som en sista reserv, väljes hemkatalogen som "root". För alla dokument bestämmer resulterande "root" sedan om en separat instans behövs eller ej. Om det är fallet, skickas "root" över som rootUri/rootPath.

I allmänhet rekommenderas att roten lämnas ospecificerad, eftersom den inte är så viktig för en server (ditt resultat kan dock avvika). Färre serverinstanser är uppenbarligen effektivare, och de har också en 'bredare' vy än många separata instanser.

Som nämndes ovan, utförs variabelexpansion för flera poster. Ett passade tillämpning av det kombinerat med "omgivningsskript" tillåter anpassning till ett stort antal omständigheter. Antag exempelvis ett utvecklingsscenario för Python som består av flera projekt (t.ex. git-arkiv), vart och ett med sin egen inställda virtuella miljö. Med standardinställningen, är inte språkservern för Python medveten om den virtuella miljön. Det kan dock avhjälpas med följande tillvägagångssätt. Först kan följande fragment matas in under insticksprogrammets för LSP-klienten "Användarserverinställningar":

    {
            "servers":
            {
                    "python":
                    {
                            "command": ["pylsp_in_env"], ["%{Project:NativePath}"],
                            "root": "."
                    }
            }
    }

Rotposten ovan är relativ till projektkatalogen och säkerställer att en separat språkserver startas för varje projekt, vilket är nödvändigt i det här fallet eftersom vart och ett har en separat virtuell miljö.

`pylsp_in_env` är ett litet "omgivningsskript" som måste placeras i `PATH` med följande (anpassade) innehåll:

    #!/bin/bash
    cd $1
    # kör servern (python-lsp-server) inne i virtualenv
    # (dvs. med variabeltilldelningar från virtualenv)
    # så gör alltså source på virtualenv
    source XYZ
    # serverns prestanda eller argument kan variera
    exec myserver

#### LSP-serverinställning

Varje särskild LSP-server har sitt eget sätt att anpassas och kan använda språk- eller verktygsspecifika sätt för inställning, t.ex. `tox.ini` (a.o. för python), `.clang-format` för format med C++ stil. Sådana inställningar kan då också användas av andra (icke-LSP) verktyg (såsom tox eller clang-format). Förutom det, läser också vissa LSP-servrar in inställningar från egna filer (t.ex. `.ccls`). Dessutom kan egna serverinställningar också skickas via LSP (protokollet). Se ovannämnda posterna "initializationOptions" och "settings" i serverinställningen.

Eftersom diverse nivåer av överskridning eller sammanfogning används, justerar följande exempel på en användarspecificerad klientinställning några serverinställningar för språket Python.

    {
        "servers": {
            "python": {
                "settings": {
                    "pyls": {
                        "plugins": {
                            "pylint": {
                                "enable": true
                            }
                        }
                    }
                }
            }
        }
    }

Tyvärr är inställningen och anpassningen av LSP-server ofta inte så bra dokumenterad, på ett sådant sätt att bara granskning av källkoden visar inställningstillvägagångssätten och mängden tillgängliga inställningsalternativ. I synnerhet stöder servern i ovanstående exempel många fler alternativ under "settings". Se dokumentationen över en annan LSP klient för diverse andra exempel på språkservrar och motsvarande inställningar, vilka lätt och enkelt kan omvandlas till &JSON;-inställningen som används här och beskrivs ovan.

#### LSP-server formatera vid spara

Du kan aktivera "formatera vid spara" från LSP-inställningar i inställningsdialogrutan.

#### LSP-server diagnostikundertryckning

Det kan inträffa att diagnostik rapporteras som inte är riktigt användbar. Det kan vara rätt omständligt, i synnerhet om det finns många (ofta av samma sort). I vissa fall kan det finjusteras med språk (server) specifika sätt. Exempelvis tillåter inställningsmekanismen i clangd finjustering av vissa diagnostikaspekter. I allmänhet är det dock inte alltid uppenbart hur det görs, eller kanske inte alls möjligt på önskat sätt på grund av serverbegränsningar eller fel.

Som sådant, stöder insticksprogrammet diagnostikundertryckning som t.ex. liknar undertryckning i valgrind. Den mest finkorniga inställning kan tillhandahållas med nyckeln "suppressions" i den (sammanfogade) &JSON;-inställningen.

    {
        "servers": {
            "c": {
                "suppressions": {
                    "rulename": ["filnamn", "exempel"],
                    "clang_pointer": ["", "clang-tidy", "clear_pointer"],
                }
            }
        }
    }

Varje (giltig) regel har ett godtyckligt namn och definieras av ett fält av längd 2 eller 3, som tillhandahåller ett reguljärt uttryck för att matcha det (fullständiga) filnamnet, ett reguljärt uttryck för att matcha diagnostiken (texten), och ett valfritt reguljärt uttryck som matchar (källkodens intervall av) text som diagnostiken gäller.

Förutom den ovanstående finkorniga inställningen, stöder också den sammanhangsberoende menyn under diagnostikfliken att lägga till eller ta bort undertryckningar som exakt motsvarar en viss diagnostik (text), antingen globalt (i vilken fil som helst) eller lokalt (den specifika filen i fråga). Undertryckningarna lagras i och läses in från sessionsinställningen.

#### Felsökning av LSP-server

Det är en sak att beskriva hur en (egen) LSP-server ska ställas in för vilket specifikt språk som helst, och en annan sak att få en server som kör utan problem. Oftast är det senare lyckligtvis fallet. Ibland kan dock problem uppstå, antingen på grund av någon "dum" felinställning eller ett mer fundamentalt problem med själva servern. Det senare kan typiskt visa sig som ett antal försök att starta servern, som rapporteras under &kate;s utdataflik. Det senare är dock bara avsett att framföra högnivåmeddelanden eller förlopp istället för att ge detaljerad diagnostik, och det gäller i ännu högre grad för vad som i själva verket är en annan process (LSP-servern).

Det vanliga sättet att diagnostisera det är att lägga till några väljare i startkommandot (av språkservern) som aktiverar (ytterligare) loggning (i någon fil eller på standardfelutmatningen), i den utsträckning som det inte görs normalt. Om &kate; sedan startas på kommandoraden, kan man får mer insikt i vad som kan ha gått fel.

Det kan också vara informativt att undersöka protokollutbytet mellan &kate;s LSP-klient och LSP-servern. Återigen har den senare oftast sätt att följa det. LSP-klienten tillhandahåller också ytterligare felsökningsspårning (till standardfelutmatningen) när &kate; startas med följande `QT_LOGGING_RULES=katelspclientplugin=true` lämpligt exporterat med `export`.

## Sök och ersätt

### Inledning

&kate;s insticksprogram Sök och ersätt låter dig söka efter text eller reguljära uttryck i många olika filer på en gång. Du kan söka i alla öppna filer, alla filer i en katalog och valfritt i dess underkataloger, eller i den aktiva filen. Du kan till och med filtrera enligt filnamn, exempelvis för att bara söka i filer som slutar med en viss filändelse.

### Gränssnitt

#### Sökbegrepp

Följande alternativ visas alltid längst upp i verktygsvyn Sök i filer:

- Du kan ha så många sökningar som du vill igång samtidigt. Klicka helt enkelt på knappen Ny flik längst upp till vänster i sökverktygets vy, så öppnas en ny resultatflik som låter dig utföra en ny sökning.

- Knappen i övre högra hörnet av verkygsvyn Sök i filer växlar nedre halvan av verktygsvyn mellan att visa ytterligare alternativ för katalogsökläget och resultatet av sökningarna.

Sök

- Här skriver du in vad du vill söka efter. Du kan skriva in vanlig text, eller ett reguljärt uttryck om det är aktiverat.

Ersätt (textruta)

- Ersättningstext som läggs till i filen eller filerna istället för texten i textrutan Sök.

Sök

- När du är klar med att ställa in allting, klicka bara på knappen Sök för att utföra sökningen. Du kan också trycka på returtangenten i textruta Sök för att åstadkomma samma sak.

Ersätt

- När du är klar med att ställa in allting, klicka bara på knappen Ersätt för att ersätta texten som matades in i textrutan Sök med den i textrutan Ersätt. Du kan också trycka på returtangenten i textrutan Ersätt för att göra samma sak.

Nästa

- Gå till nästa träff i sökningen, byter filer om det behövs.

Ersätt markerade

- Samma som Ersätt men utför bara ersättningar i filer som är markerade i rutan nedanför.

#### Alternativ för sök i katalog

Alternativen visas under de tidigare nämnda sökalternativen. Om sökresultaten visas istället, klicka på knappen för att visa dem.

Sök i

- Det har tre alternativ. Välj Öppna filer för att söka i alla filer som för närvarande är öppna i &kate;. Välj Katalog för att söka inne i en katalog och valfritt i dess underkataloger. Välj Aktuell fil för att bara söka i den aktiva filen.

  Om insticksprogrammet Projekt är laddat kan du också söka i Aktuellt projekt eller i Alla öppna projekt.

Matcha skiftläge

- Begränsar sökresultaten till bara de som har exakt samma kombination av stora och små bokstäver som sökbegreppet.

Reguljära uttryck

- Låter dig använda reguljära uttryck istället för enkel text som sökbegrepp.

Expandera resultat

- Visar alla resultat som hittas i varje fil, istället för bara en lista med filer som innehåller sökbegreppet.

Katalog

- Du kan skriva in sökvägen för katalogen som du vill söka i. Du kan exempelvis skriva in `~/utveckling/kde/kate/` om du skulle vilja söka i &kate;s källkod. Alternativet är bara tillgängligt när I katalog används.

Öppna fildialogruta

- Tryck på knappen för att bestämma katalogen med skrivbordets katalogbläddrare. Knappen är bara tillgänglig när alternativet Katalog används.

- Klicka på knappen för att ändra Katalog till den överliggande katalogen till katalogen som för närvarande är vald. Knappen fungerar bara när alternativet Katalog används.

- Den här knappen ändrar Katalog till den katalog där dokumentet som för närvarande är öppet finns. Knappen fungerar bara när alternativet Katalog används.

Filter

- Det här låter dig enbart söka efter filnamn som motsvarar ett visst mönster. För att exempelvis bara söka efter filer som är skrivna i C++, ändra det till `*.cpp`. För att söka efter filer som börjar med `kate`, ändra det till `kate*`. Du kan skriva in flera filter åtskilda med kommatecken (`,`). Alternativet är inte tillgängligt när Öppna filer används.

Undanta

- Motsatsen till Filter, och förhindrar &kate; från att söka i filer som motsvarar de angivna mönstren. Som med Filter kan du ange flera mönster åtskilda med kommatecken (`,`). Alternativet är inte tillgängligt när Öppna filer används.

Rekursiv

- Om alternativet är aktiverat, söker &kate; också i alla underkataloger till den valda katalogen. Alternativet är bara tillgängligt när Katalog används.

inkludera dolda

- Om alternativet är aktiverat, söker &kate; också i filer eller kataloger som normalt är dolda av operativsystemet. Alternativet är bara tillgängligt när Katalog används.

Följ symboliska länkar

- Insticksprogrammet Sök i filer, följer normalt inte symboliska länkar. När det här alternativet är aktiverat, följer insticksprogrammet dem och söker i filerna eller katalogerna de refererar till. Alternativet är bara tillgängligt när Katalog används.

  Det är möjligt för symboliska länkar att referera till en katalog som är överliggande katalog till den katalog som för närvarande söks igenom, eller andra kataloger som innehåller symboliska länkar till sina överliggande kataloger. Om en sådan länk finns i en katalog som söks igenom och det här alternativet är aktiverat, kommer &kate; följa länken upprepade gånger och söka igenom katalogen, och sökningen kommer aldrig att avslutas.

Sök även i binärfiler

- Om aktiverat, söker &kate; också i filer som inte verkar vara textfiler.

#### Sökresultat

Sökresultaten visas under sökalternativen. Om alternativen för Sök i katalog visas, klicka helt enkelt på knappen för att visa dem. De visas också automatiskt så fort en sökning utförs.

Sökresultatet visar en lista med filer som innehåller text som motsvarar sökbegreppet, följt av antal träffar i den filen.

För att se en lista med träffar i filen, klicka helt enkelt på expansionspilen till vänster om filnamnet (om du valde alternativet Expandera resultat, är det redan gjort åt dig). Radnumret där varje träff hittades visas, följt av innehållet på raden, med sökbegreppet angivet med fetstil.

För att öppna filen som resultatet hittades i, dubbelklicka helt enkelt på den. &kate; öppnar filen om det behövs. Du kan också flytta markören till platsen för en viss träff genom att dubbelklicka där den listas istället för filnamnet.

### Menystruktur

&Ctrl;&Alt;F Redigera Sök i filer

- Startar verktygsvyn Sök och ersätt

Redigera Gå till nästa träff

- Gå till nästa träff i en sökning utförd av insticksprogrammet Sök och ersätt.

Redigera Gå till föregående träff

- Gå till föregående träff i en sökning utförd av insticksprogrammet Sök och ersätt.

Visa Verktygsvyer Visa Sök och ersätt

- Visar eller döljer &kate;s verktyg Sök och ersätt.

## Textsnuttar för &kate;

### Inledning

Textsnuttar för &kate; är ett insticksprogram som används för att spara tid åt dig genom att lägga till stöd för så kallade textsnuttar (återanvändbar källkod, maskinkod eller text). Insticksprogrammet har också stöd för kodkomplettering och &javascript;.

### Menystruktur

Visa Verktygsvyer Visa Textsnuttar

- Visar en panel som innehåller alla textsnuttar i ditt arkiv som gäller för den aktuella filtypen.

Verktyg Skapa textsnutt

- Skapa en ny textsnutt, vilket är ett återanvändbart textstycke som du kan infoga varsomhelst i vilket dokument som helst.

### Textsnuttpanel

Textsnuttpanel för &kate; Textsnuttpanel för &kate;.

Panelen för &kate; textsnuttar.

Panelen ska visa en lista över textsnuttarkiv, tillsammans med alternativ för att skapa dina egna, hämta dem från internet, eller ladda dem från en lokal fil. Varje arkiv har en kryssruta som kan användas för att aktivera eller inaktivera det. Det finns också knappar för att redigera eller ta bort befintliga arkiv.

#### Ladda textsnuttarkivfiler

Du kan ladda ner textsnuttarkiv från internet. Klicka bara på Hämta nya textsnuttar, så visas ett fönster med en lista över textsnuttarkiv. När du har laddat ner den textsnutt du önskar, försäkra dig om att du har aktiverat den.

#### Skapa och redigera arkiv

För att skapa ett nytt textsnuttarkiv, klicka på Lägg till arkiv. Nu ska en dialogruta visas som frågar efter namnet på den nya textsnuttfilen, licens och upphovsman. Efter att du har gjort dina val, klicka på Ok.

Textsnutteditor Arkiveditorn.

Arkiveditorns gränssnitt.

Arkiveditorn för textsnuttar innehåller följande alternativ:

Name

- Visas i listan över textsnuttar i verktygsvyn och söks också igenom när funktionen för textkomplettering används.

Namnrymd

- Prefix använt medan kodkomplettering används.

Licens

- Välj licens för arkivet med textsnuttar.

Upphovsmän

- Ange namnen på upphovsmännen till textsnuttfilen.

Filtyper

- Välj filtypen eller filtyperna som du vill att textsnuttarkivet ska gälla. Det är normalt inställt till * så att arkivet gäller alla filer. Det kan exempelvis ändras till något som `C++`, eller väljas från en lista genom att klicka på objekten. Du kan ange mer än en filtyp genom att klicka på &Shift; när typer läggs till.

#### Skapa och redigera textsnuttar

Textsnutteditor Textsnutteditorn.

Redigeringsgränssnittet för textsnuttar.

Name

- Namnet visas i kompletteringslistan.

Genväg

- Att trycka på genvägen infogar textsnutten i dokumentet.

Textsnuttar

- Texten som textsnutten infogar i dokumentet.

  En textsnutt kan innehålla redigerbara fält. Man kan gå mellan dem genom att trycka på tabulatortangenten. Följande uttryck kan användas i malltexten för att skapa fält:

  `${`fältnamn`}` skapar ett enkelt redigerbart fält. Alla följande förekomster av samma `fältnamn` skapar fält som speglar innehållet i det första under redigering.

  `${`fältnamn=förval`}` kan användas för att ange ett förvalt värde för fältet. `förval` kan vara vilket &javascript;-uttryck som helst.

  Använd `${`fältnamn`=`text`}` för att ange en konstant sträng som förvalt värde.

  `${func(`annat_fält_1`, `annat_fält_1`, ...)}` kan användas för att skapa ett fält som utvärderar en &javascript;-funktion vid varje redigering och innehåller dess innehåll. Se fliken Skript för mer information.

  `${cursor}` kan användas för att markera slutposition för markören efter allt annat har fyllts i.

Skript

- &javascript;-hjälpfunktioner att använda i textsnuttar.

  Alla &javascript;-funktioner ska returnera innehållet som du vill placera i ett mallfält som en sträng.

  Funktioner anropas i en omgivning som innehåller alla redigerbara mallfälts innehåll som lokala variabler. I en textsnutt som exempelvis innehåller `${`field`}`, finns en variabel vid namn `field` som innehåller mallfältets aktuella värde. Variablerna kan antingen användas statiskt i funktionen eller skickas som väljare genom att använda syntaxen `${func(field)}` eller `${`field2=func(field)`}` i textsnuttens sträng.

  Det går att använda &kate;s skriptprogrammeringsgränssnitt för att hämta markerad text, hela texten, filnamnet med mera genom att använda lämpliga metoder i objekten `document` och `view`. Se dokumentationen över skriptprogrammeringsgränssnittet för mer information..

  För mer komplexa skript kan det vara viktigt att förstå att den obehandlade textsnutten först infogas i dokumentet och därefter utvärderas funktionerna. Om en funktion t.ex. hämtar texten på raden där textsnutten infogas, innehåller texten också `${functionCall()}`.

  Som ett exempel på att arbeta med markeringar när skriptprogrammeringsgränssnittet används, är ett enkelt sätt att omge markerad text inne i taggar att använda textsnutten: `<strong>${view.selectedText()}</strong>`

  Följande exempel anropar ett skript som infogar en standardtext ifall det inte finns någon markering. Textsnutt:

  `${rangeCommand("<strong>%%1</strong>", "Bold")}`

  Skript:

      function rangeCommand(command, def) {
          if (view.selectedText().length
      > 0) {
              return command.replace("%%1", view.selectedText());
          } else {
              return command.replace("%%1", def);
          }
      }

### Använda textsnuttar

Textsnuttar för &kate; under användning Åtkomst av textsnuttar för &kate; från en verktygsvy och kombinationsruta.

Välj i en lista med textsnuttar.

Textsnuttar kan anropas på två sätt:

- Genom att välja textsnutten i verktygsvyn.

- Under tiden du skriver, kan du trycka på &Ctrl;Mellanslag, som visar alla textsnuttar i ett bekvämt fönster där du kan välja en. Tangentkombinationen tillhandahåller en funktion som liknar kodkomplettering.

Om textsnutten innehåller variabler (förutom `${cursor}`) flyttas markören automatiskt till den första förekomsten av en variabel och väntar på att något ska skrivas in. När du är klar kan du trycka på tabulatortangenten för att gå till nästa variabel, och så vidare.

### Tack och erkännanden

&kate; textsnuttar är skrivet av Joseph Wenninger.

Särskilt tack till deltagaren i Google Code-In 2011, Martin Gergov, för att ha skrivit stora delar av det här avsnittet.

## Insticksprogram för tangentbordsmakron

### Inledning

Spela in och återge tangentbordsmakron (dvs. kommandosekvenser med tangentbordet).

### Grundläggande användning

#### För att börja spela in ett tangentbordsmakro:

Verktyg Tangentbordsmakron Spela in makro... (&Ctrl;&Shift;K).

Insticksprogrammet spelar in varje tangentnedtryckning till du avslutar inspelningen.

#### För att avsluta inspelning:

Verktyg Tangentbordsmakron Avsluta makroinspelning (&Ctrl;&Shift;K).

Insticksprogrammet stoppar lagring av tangentnedtryckning och sparar sekvensen som aktuellt makro.

#### För att avbryta inspelning:

Verktyg Tangentbordsmakron Avbryt makroinspelning (&Ctrl;&Alt;&Shift;K).

Insticksprogrammet stoppar lagring av tangentnedtryckning men det nuvarande makrot ändras inte.

#### För att återge det nuvarande makrot:

Verktyg Tangentbordsmakron Spela upp makro (&Ctrl;&Alt;K).

Insticksprogrammet spelar upp det nuvarande makrot.

Nuvarande `kmplay` kommando utan några argument spelar också upp det nuvarande makrot.

### Namngivna makron

Det går att spara tangentbordsmakron genom att ge dem ett namn.

Namngivna makron bevaras mellan Kates sessioner. De sparas i filen `keyboardmacros.json` i Kates användardatakatalog (oftast `~/.local/share/kate/`).

#### För att spara nuvarande makro:

Verktyg Tangentbordsmakron Spara nuvarande makro (&Alt;&Shift;K).

Insticksprogrammet frågar dig om ett namn och sparar makrot med det.

Kommandot `kmsave `namn`` sparar nuvarande makro med namnet ``namn``.

#### För att läsa in ett sparat makro som det nuvarande:

Verktyg Tangentbordsmakron Läs in namngivet makro....

Insticksprogramlistan sparar makron som objekt i undermenyn, och aktiveras ett alternativ läses motsvarande makro in som det aktuella.

Kommandot `kmload `namn`` läser in makrot som sparats med namnet ``namn`` som det nuvarande.

#### För att spela upp ett namngivet makro utan att läsa in det:

Verktyg Tangentbordsmakron Spela upp namngivet makro....

Insticksprogramlistan sparar makron som objekt i undermenyn, och aktiveras ett alternativ spelas motsvarande makro upp utan att läsa in det.

Observera att varje sparat makro är en åtgärd som är en del av den aktuella åtgärdssamlingen så att en egen genväg kan tilldelas den med gränssnittet Inställningar Anpassa snabbtangenter....

Kommandot `kmplay`namn`` spelar upp makrot sparat med namnet ``namn`` utan att läsa in det.

#### För att sudda (dvs. ta bort) ett sparat makro:

Verktyg Tangentbordsmakron Sudda namngivet makro....

Insticksprogramlistan sparar makron som objekt i undermenyn, och aktiveras ett alternativ så suddas motsvarande makro (dvs. tas bort).

Kommandot `kmwipe `namn`` suddar makrot sparat med namnet ``namn``.

#### Tips om kommandon:

Observera att efter prefixet `km`, använder alla kommandon en annorlunda bokstav så att du snabbt anropa det med tabulatorkomplettering.

### Begränsningar

För närvarande, misslyckas tangentbordsmakron med att spelas upp om vissa typer komponenter i det grafiska användargränssnitt används, exempelvis QMenu, QuickOpenLineEdit eller TabSwitcherTreeView. Jag är inte säker på varför men min första gissning skulle vara att komponenterna fungerar på ett icke-standardiserat sätt när det gäller tangentbordshändelser.

## SQL-insticksprogram

### Inledning

Structured Query Language (SQL) är ett specialiserat språk för att uppdatera, ta bort och efterfråga information i databaser.

&kate;s SQL-insticksprogram låter dig:

- Skapa en databas

- Ansluta till befintliga databaser

- Infoga och ta bort data i databasen

- Utföra en förfrågan

- Visa resultat i en tabell

### Ansluta till en databas

Använd Lägg till anslutning i menyn SQL eller i verktygsraden, och välj därefter den &Qt;-databasdrivrutin du vill använda (inklusive QSQLITE, QMYSQL3, QMYSQL, QODBC3, QODBC, QPSQL7 och QPSQL). Om du inte kan se en önskad drivrutin, måste den installeras. Klicka därefter på Nästa.

Om databasen du valde använder en fil, ange helt enkelt databasens plats och klicka på knappen Nästa. Om den kräver anslutning till en server, måste du skriva in serverns värddatornamn, ditt användarnamn och lösenord, och eventuell ytterligare information som just den drivrutinen kräver. Klicka därefter på Nästa.

Ge till sist anslutningen ett namn, och klicka på Slutför.

### Starta en förfrågan

#### INSERT/DELETE/UPDATE

Du kan infoga, ta bort och uppdatera data med SQL-insticksprogrammet, precis som du skulle göra på kommandoraden eller inne i ett program. Skriv helt enkelt in en förfrågan och klicka på knappen Utför förfrågan på verktygsraden eller använd SQL Utför fråga (&Ctrl;E).

##### Några exempel på en förfrågan

`INSERT`

-     INSERT INTO tabellnamn ("nyckel-1", "nyckel-2", "nyckel-3", "nyckel-4", "nyckel-5")
      VALUES ("värde-1", "värde-2", "värde-3", "värde-4", "värde-5" )

`DELETE`

-     DELETE FROM tabellnamn WHERE name = "text"

`UPDATE`

-     UPDATE tabellnamn SET "nyckel-1" = "text", "nyckel-2" = "text", "nyckel-3" = "text", "nyckel-4" = "text", "nyckel-5" = "text"

#### SELECT

Efter att ha utfört förfrågan `SELECT`, kan resultatet ses som en tabell som dyker upp i verktygsvyn SQL-datautmatning längst ner i &kate;, eller som text under SQL-textutmatning. Om ett fel uppstår visas det i textutmatningen.

##### Exempel på `SELECT`-förfrågan

    SELECT * FROM tabellnamn

I verktygsvyn SQL-datautmatning finns flera knappar:

Ändra storlek på kolumner till innehållet

- Ändra storlek på kolumner så att de passar till innehållet.

Ändra storlek på rader till innehållet

- Ändra storlek på rader så att de passar till innehållet.

Kopiera

- Markerar hela tabellens innehåll och kopierar det till klippbordet.

Exportera

- Exporterar hela tabellens innehåll till en fil, eller det nuvarande dokumentet med formatet kommaseparerade värden (CSV).

Rensa

- Tar bort allt från tabellvyn.

Nu kan du ändra färgerna som visas i tabellen på sidan SQL i Inställningar Anpassa &kate;... .

### Bläddring

Du kan bläddra i databasen genom att använda bläddringsverktygsvyn Databasschema till vänster. Informationen som visas beror på vilken databasdrivrutin som används.

Högerklicka var som helst i verktygsvyn och välj Uppdatera för att uppdatera listan. För att skapa en förfrågan för någon post i listan, högerklicka på en post, välj Skapa och välj frågetyp (SELECT, UPDATE, INSERT eller DELETE) i undermenyn som visas.

### Menystruktur

SQL Lägg till anslutning...

- Lägger till en ny anslutning med användning av vilken databasdrivrutin som helst.

SQL Ta bort anslutning

- Tar bort den markerade anslutningen.

SQL Redigera anslutning...

- Redigerar den nuvarande anslutningens inställningar.

Anslutningar

- Alla databasanslutningar som du har skapat listas mellan menyalternativen Redigera anslutning och Utför förfrågan. Välj en för att utföra en förfrågan eller göra ändringar i den.

&Ctrl;E SQL Utför förfrågan

- Utför din förfrågan.

### Tack och erkännanden

SQL-insticksprogrammet är skrivet av Marco Mentasti.

Särskilt tack till deltagaren i Google Code-In 2011, Ömer Faruk Oruç, för att ha skrivit stora delar av det här avsnittet.

## Insticksprogrammet Symbolvisning

### Använda insticksprogrammet Stäng förutom/som

Det gör det möjligt för utvecklare att visa symboler (funktioner, makron och strukturer) i källkod.

Genom att klicka på den tolkade informationen kan man enkelt bläddra i koden.

För närvarande stöds följande språk:

C/C++, &Java;, Perl, PHP, Python, Ruby, XSLT, Tcl/Tk, Fortran

Lista över funktioner:

- List- och trädläge
- Aktivera eller inaktivera sortering
- Dölj eller visa funktionsparametrar
- Expandera eller dra ihop i trädläge
- Automatisk uppdatering vid dokumentändring
- Tolkning av kod är baserad på ramverket för syntaxfärgläggning från KDE Ramverk

### Menystruktur

&Ctrl;\ Visa Verktygsvyer Visa symbollista

- Visa eller dölj &kate;s symbollista, som visar källkodens funktioner, makron och strukturer i det aktiva dokumentet.

### Inställning

Symbolvisning

Välj standardalternativ för tolken

## Vyinsticksprogrammet Terminalverktyg

Den inbyggda terminalemulatorn är en kopia av &kde;:s &konsole; terminalprogram, för bekväm användning. Den är tillgänglig via menyalternativet Visa Verktygsvyer Visa terminalpanel, och får fokus så fort den visas. Dessutom, om alternativet Synkronisera automatiskt terminalen med nuvarande dokument om möjligt är aktiverat, så byter den till det nuvarande dokumentets katalog om möjligt när den visas, eller när nuvarande dokument ändras.

Den normala platsen i &kate;:s fönster är längst ner, under redigeringsområdet.

Du kan anpassa terminalen, med menyn som visas med höger musknapp. För mer information, se handboken för Terminal.

Den inbyggda terminalemulatorn tillhandahålls av vyinsticksprogrammet Terminalverktyg.

### Menystruktur

Visa Verktygsvyer Visa Terminalpanel

- Visar eller döljer den inbyggda terminalemulatorn.

  När det aktiveras för första gången, skapas terminalen.

  När terminalemulatorn visas, så får den fokus, så att du kan börja skriva in kommandon omedelbart. Om alternativet Synkronisera automatiskt terminalen med nuvarande dokument om möjligt är aktiverat på sidan Terminal i den huvudsakliga inställningsdialogrutan, så byter skalsessionen arbetskatalog till katalogen för det aktiva dokumentet, om det är en lokal fil.

Verktyg Skicka till terminal

- Skicka texten som för närvarande är markerad till den inbyggda terminalemulatorn. Någon nyrad läggs inte till efter texten.

Verktyg Synkronisera terminalen med nuvarande dokument

- Detta gör att den inbyggda terminalen byter arbetskatalog med `cd` till det aktiva dokumentets katalog.

  Som ett alternativ kan du ställa in &kate; att alltid hålla terminalen synkroniserad med aktuellt dokument. Se konsole-config för mer information.

Verktyg Kör aktuellt dokument

- Kör det nuvarande dokumentet i Terminal. Bara lokala dokument kan köras. &kate; visar en varning innan dokument körs, eftersom åtgärden kan vara ett allvarligt säkerhetshot.

Verktyg Ge fokus till/Ta bort fokus från ' terminalpanel

- Byt fokus från aktuellt dokument till terminalen och vice versa.

### Inställning

Du kan ställa in vyinsticksprogrammet Terminalverktyg på sidan Terminal i inställningsdialogrutan.

Följande alternativ är tillgängliga:

Synkronisera automatiskt terminalen med aktuellt dokument om möjligt

- Det gör att den inbyggda terminalen att byta katalog med `cd` till katalogen för det aktiva dokumentet, när den startas, och när ett nytt dokument får fokus. Om det inte aktiveras, måste du flytta dig i terminalen själv.

Ställ in miljövariabeln EDITOR till 'kate -b'

- Detta ställer in miljövariabeln `EDITOR` så att program som kör i den inbyggda terminalen som automatiskt öppnar en fil i editorn, öppnar dem i &kate; istället för standardeditorn som är inställd i skalet. Du kommer inte att kunna fortsätta använda terminalen innan du har stängt filen i &kate;, så att det anropande programmet är medvetet om att du är klar med redigeringen av filen.

Dölj terminal vid tryck på 'Esc'

- Gör det möjligt att stänga den inbyggda terminalen genom att trycka på tangenten &Esc;. Kan orsaka problem med terminalprogram som använder tangenten Esc, t.ex. för vim. Lägg till sådana program i textinmatningsrutan nedan. Objekten i listan ska åtskiljas av kommatecken.

## Insticksprogrammet Textfilter

### Använda insticksprogrammet Textfilter

Insticksprogrammet kan användas för att utföra behandla markerad text med användning av terminalkommandon. Markeringen används som indata till kommandot, och utdata ersätter antingen markeringen eller kopieras till klippbordet, beroende på vad användaren föredrar.

### Exempel:

- `less /etc/fstab`: Klistra in filens innehåll eller kopiera det till klippbordet

- `wc`: Räkna markeringens rader, ord och tecken, och klistra in resultatet i dokumentet eller kopiera det till klippbordet

- `sort`: Sortera markeringens rader, och klistra in resultatet i dokumentet eller kopiera det till klippbordet

### Menystruktur

&Ctrl;\ Verktyg Filtrera text

- Visar dialogrutan Textfilter:

  Dialogrutan Textfilter

  Mata in skalkommandot i kombinationsrutan eller välj ett tidigare kommando i historiken.

  Kopiera resultatet istället för att klistra in det

- Kopiera resultatet till klippbordet och lämna dokumentet oförändrat.

Sammanfoga standardutmatning och felutmatning

- Om markerad, sammanfogas data från standardutmatning och felutmatning och inga fel rapporteras. Annars visas felutmatning som ett passivt meddelande.

## &XML;-validering

Det här insticksprogrammet kontrollerar att &XML;-filer är giltiga och välformade.

Det här insticksprogrammet kontrollerar aktuell fil. En lista med varningar och fel visas längst ner i &kate;s huvudfönster. Du kan klicka på ett felmeddelande för att hoppa till motsvarande plats i filen. Om filen har en DOCTYPE, så används den DTD som anges av DOCTYPE för att kontrollera filens giltighet. Denna DTD förväntas finnas på en plats relativt den nuvarande filen, t.ex. om DOCTYPE refererar till DTD/xhtml1-transitional.dtd och filen heter `/home/peter/test.xml`, så förväntas denna DTD finnas under `/home/peter/DTD/xhtml1-transitional.dtd`. Dock så stöds också DTD:er som anges med HTTP.

Om filen inte har någon doctype, så kontrolleras att den är välformad.

För att ta reda på mer om &XML;, titta på de officiella W3C &XML;-sidorna.

Internt anropar insticksprogrammet det externa kommandot `xmllint`, som är en del av libxml2. Om det här programmet inte är riktigt installerat på systemet, fungerar inte insticksprogrammet.

För att ladda insticksprogrammet, öppna först &kate;s inställningsdialogruta under Inställningar Anpassa &kate;... . Markera därefter &XML;-validering, som visas under Program Insticksprogram och stäng dialogrutan.

### Menystruktur

&XML; Validera &XML;

- Det här startar kontrollen, som beskrivs ovan.

### Tack och erkännanden

&kate;s insticksprogram &XML;-validering copyright 2002 &Daniel.Naber; &Daniel.Naber.mail;.

Dokumentation copyright 2002 &Daniel.Naber;

## &XML;-komplettering

Det här insticksprogrammet ger tips om vad som är tillåtet på vissa ställen i en &XML;-fil, i enlighet med filens DTD. Det listar möjliga element, egenskaper, egenskapsvärden eller objekt, beroende på markörens plats (t.ex. så listas alla objekt om tecknet till vänster om markören är &). Det är också möjligt att avsluta den närmaste taggen till vänster som ännu ej avslutats.

En DTD på &XML;-format, som skapas av Perl-programmet `dtdparse` måste finnas. Den här sortens DTD:er kallas för meta-DTD:er. Vissa meta-DTD:er medföljer. De är installerade i `katexmltools/` i ``qtpaths` `--paths GenericDataLocation`` , som också är den förvalda katalogen när du väljer Tilldela meta-DTD.... För att skapa dina egna meta-DTD:er, hämta `dtdparse` från http://dtdparse.sourceforge.net.

### Användning

Starta &kate; och öppna inställningsdialogrutan med Inställningar Anpassa &kate;.... Markera därefter &XML;-komplettering, som visas på sidan Program Insticksprogram och stäng dialogrutan. Välj därefter &XML; Tilldela meta-DTD.... Om dokumentet inte innehåller någon DOCTYPE eller en okänd doctype, måste du välja en meta-DTD i filsystemet. Annars så laddas automatiskt den meta-DTD som hör ihop med det nuvarande dokumentets doctype.

Nu kan du använda insticksprogrammet medan du skriver in text:

< (mindre än tecken)

- Det här visar en lista med möjliga element om inte markören redan är inne i en tagg. Observera att du för närvarande inte kan använda det här för att infoga toppnivåelementet (t.ex. <html>).

</ (mindre än tecken + snedstreck)

- Att skriva in de här tecknen erbjuder att avsluta det aktuella elementet (det närmaste oavslutade till vänster om markören). Tryck på returtangenten för att acceptera förslaget. I motsats till menyalternativet Avsluta element, fungerar det här bara när en DTD har tilldelats.

" (citationstecken)

- Ett citationstecken visar en lista med möjliga attributvärden (om det finns några) när du är inne i en tagg.

(mellanslag)

- Den här tangenten visar en lista med möjliga egenskaper för det nuvarande elementet om du är inne i en tagg.

& (och-tecken)

- Den här tangenten visar en lista med namngivna objekt.

### Funktioner och begränsningar

Du kan prova alla funktioner och begränsningar genom att ladda `katexmltools/testcases.xml` i ``qtpaths` `--paths GenericDataLocation`` med &kate; och följa instruktionerna.

### Menystruktur

&Ctrl;Retur &XML; Infoga element...

- Det här visar en dialogrutan som låter dig infoga &XML;-element. Tecknen <, > och avslutande tagg infogas automatiskt. Om du har markerat text när menyalternativet utförs, omges den markerade texten av inledande och avslutande tagg. Dialogrutan erbjuder också komplettering av alla element som kan ha infogats på aktuell markörposition, om du har tilldelat en meta-DTD genom att använda Tilldela meta-DTD....

&Ctrl;< &XML; Avsluta element

- Det här söker i texten efter en tagg som ännu inte avslutats och avslutar den genom att sätta in motsvarande avslutningstagg. Sökningen börjar på markörens plats och går åt vänster. Om ingen tagg som inte har avslutats hittas, händer ingenting.

&XML; Tilldela meta-DTD...

- Det här talar om för insticksprogrammet vilken meta-DTD som ska användas för det nuvarande dokumentet. Observera att den här tilldelningen inte sparas. Du måste upprepa den när du startar &kate; nästa gång.

### Tack och erkännanden

&kate;s insticksprogram &XML;-validering copyright 2001, 2002 &Daniel.Naber; &Daniel.Naber.mail;.

&kde; programvarusamling 4 version copyright 2010 Tomáš Trnka

Dokumentation copyright 2001,2002 &Daniel.Naber;