# Lavorare con le estensioni

&kate; ha molte estensioni, ma essenzialmente di due tipi: alcune sono scritte in C++ nativo, altre invece nel linguaggio di programmazione Python. Esistono delle sottili differenze tra questi, come descritto qui sotto.

Puoi abilitare qualsiasi tipo di estensione nella finestra di configurazione, che dà anche accesso ad opzioni di configurazione aggiuntive, se richieste dalle estensioni.

## Estensioni dell'applicazione &kate;

Le estensioni di &kate; sono funzioni aggiuntive per l'editor &kate;. Possono aggiungere nuovi menu e nuove scorciatoie, ed estendere le funzionalità di &kate;. Puoi installarne quante ne vuoi, e dall'interno di &kate;: apri la finestra di configurazione di &kate; con Impostazioni Configura Kate..., seleziona Applicazione Estensioni e scegli quelle che vuoi.

Le estensioni per l'applicazione disponibili sono:

- Navigatore backtrace - vista dello strumento di navigazione dei backtrace C/C++

- Estensione di compilazione - compila o esegue il `make` ed elabora i messaggi d'errore

- Chiudi escludendo/includendo - chiude un gruppo di documenti basati su un percorso comune, o su un'estensione di file

- CTags - cerca definizioni e dichiarazioni con CTags

- Anteprima del documento - anteprima del documento nel formato di destinazione

- Scambiatore di documenti - sfoglia rapidamente i documenti per mezzo della combinazione &Alt;

- Selettore dei file - vista dello strumento Selettore dei file

- Vista Albero dei documenti - visualizza i file aperti in un albero di file

- &gdb; - fornisce una semplice interfaccia a &gdb;

- Apri intestazioni - Apre il corrispondente file .h/[.cpp|.c]

- Estensione di progetto - integrazione con Git e con altri sistemi di controllo del sorgente

- Replicode - linguaggio costruttivista per IA ed l'esecuzione

- Client LSP - il client LSP fornisce navigazione e completamento del codice per molti linguaggi

- Cerca e sostituisci - cerca e sostituisci nei documenti, nelle cartelle o nei progetti

- Vista strumento per i frammenti di testo - Vista dello strumento che incorpora la gestione dei frammenti

- Estensione SQL: interroga le banche dati SQL

- Visore di simboli - estrae e visualizza i simboli di riferimento dal sorgente

- Vista strumento Terminale - hai un terminale pronto all'uso, usando l'oggetto Konsole di KDE

- Filtro di testo - elabora il testo usando comandi da terminale

- Completamento &XML; - elenca gli elementi, gli attributi, i valori di attributi e le entità &XML; permesse da DTD.

- Validazione &XML; - valida i file &XML; con xmllint

## Estensione per il Navigatore backtrace

### Usare l'estensione Navigatore backtrace

Questa estensione è destinata più agli sviluppatori che agli utenti: mostra in uno strumento visivo di &kate; il backtrace consegnato da gdb in una vista a elenco: facendo clic su di un elemento si apre il file selezionato al numero di riga corretto. Funziona solo per i backtrace generati sulla tua macchina, ma funzionerà anche sui backtrace di altre, &ie; verrà trovato `/home/dummy/qt-copy/…/qwidget.cpp` anche su altre macchine. Affinché questo funzioni devi indirizzare le cartelle in cui è localizzato il codice sorgente.

A volte ci sono più file con lo stesso nome, ⪚

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

Per selezionare quello giusto l'estensione prende le ultime due parti dell'url, che in questo caso sarebbero

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

E quindi di solito l'estensione trova quello giusto.

L'indicizzazione di master e di altri rami porterà ovviamente ad un conflitto.

### Configurazione

Aggiungi le cartelle che contengono il codice sorgente nella pagina di configurazione.

Navigatore backtrace
Configura i percorsi nella vista dello strumento di navigazione Backtrace

Un clic su OK fa iniziare l'indicizzazione; apri lo strumento visivo Navigatore Backtrace quando questa finisce.

Ora puoi caricare un backtrace dagli appunti (⪚, quando fai clic su Copia negli appunti in DrKonqi), o da un file.

## Estensione di generazione

### Introduzione

L'estensione di generazione ti permette di eseguire azioni come la generazione, la pulizia e la compilazione di un progetto.

### Usare l'estensione di generazione

L'estensione di generazione aggiunge la vista dello strumento Output compilazione in basso, ed un menu Compila nella barra dei menu. La vista dello strumento può essere usata per configurare le impostazioni degli obiettivi della compilazione, mentre il menu può essere usato per effettuare le azioni di generazione, di pulizia e di compilazione.

Output della compilazione

La vista dello strumento Output compilazione ha due schede:

- Impostazioni obiettivo

- Output

#### Scheda delle impostazioni degli obiettivi

La scheda delle impostazioni dell'obiettivo può essere usata per configurare i vari obiettivi della compilazione e per definire gli insiemi degli obiettivi.

Per cambiare i nomi o i comandi fai doppio clic sulle voci nella tabella e usa la casella a tendina per selezionare l'insieme degli obiettivi attivi; se invece spunti la casella davanti ad un obiettivo, allora lo definisci come predefinito.

Un nuovo insieme di obiettivi contiene molte opzioni di configurazione:

Cartella di lavoro

- Qui puoi impostare il percorso del progetto; lascialo vuoto se vuoi usare la cartella in cui si trova il documento corrente.

Compila

- Questa opzione ti permette di definire il comando di compilazione; l'impostazione predefinita è `make`.

Pulisci

- Questa opzione ti permette di definire il comando di pulizia; l'impostazione predefinita è `make clean`.

Configurazione

- Questa opzione permette di definire il comando di configurazione; l'impostazione predefinita è `cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local ../`.

In alto questa estensione ha una barra degli strumenti, con i seguenti pulsanti:

- Compila l'obiettivo selezionato
- Aggiungi un nuovo obiettivo di compilazione
- Crea un nuovo insieme di obiettivi
- Copia un comando o un insieme di obiettivi
- Elimina il comando o l'insieme degli obiettivi attuali

#### Scheda dell'output

La scheda Output mostra l'output della console generato dall'ultimo comando.

Usa il cursore presente nella parte superiore per mostrare o nascondere alcune categorie di output:

Output compilazione completo, Output compilazione ottimizzato, Errori ed avvisi oppure Solo errori

Ogni riga contiene un messaggio e, se disponibili, il nome del file e il numero di riga. Facendo clic sull'errore o sull'avviso vieni portato al file appropriato, e il cursore si trova già sulla riga corrispondente.

Per andare all'errore precedente premi &Alt;&Shift;&Left;, mentre per andare al successivo premi &Alt;&Shift;&Right;.

### Struttura del menu

Compila Seleziona obiettivo...

- Seleziona da un elenco di obiettivi configurato dall'utente.

Compila Compila l'obiettivo predefinito

- Compila l'obiettivo definito come predefinito nell'insieme degli obiettivi attivi.

Compila Compila l'obiettivo precedente

- Passa al precedente obiettivo configurato dall'utente.

Compila Ferma

- Ferma la compilazione di un obiettivo.

&Ctrl;&Alt;← Compila Errore precedente

- Sposta il cursore sull'errore precedente nel documento.

&Ctrl;&Alt;→ Compila Errore successivo

- Sposta il cursore sull'errore successivo nel documento.

### Ringraziamenti e riconoscimenti

L'estensione di compilazione di &kate; è stata scritta da Kåre Särs.

Ringraziamenti speciali vanno alla partecipante del Google Code-In 2011, Salma Sultana, per aver scritto la gran parte di questa sezione.

## Estensione di chiusura per gruppo

### Introduzione

Questa estensione ti permette di chiudere un gruppo di documenti in base alla loro estensione e al loro percorso.

### Usare l'estensione di chiusura per gruppo

Assumendo che tu abbia questi documenti aperti in &kate;:

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

Allora hai le seguenti opzioni per chiudere i documenti, come visualizzato nella schermata successiva:

Chiudi tranne

Usa la casella nell'ultima voce della lista per abilitare o disabilitare una finestra di conferma. Le opzioni selezionate saranno applicate ad entrambe le azioni di chiusura.

### Struttura del menu

File Chiudi tranne

- Chiude tutti i documenti tranne quelli con il percorso o l'estensione selezionati dal sotto-menu.

File Chiudi simili

- Chiude tutti i documenti con il percorso o l'estensione selezionati nel sotto-menu.

## Estensione CTags

### Introduzione

CTags genera un file indice (o tag) di oggetti del linguaggio trovati nei file sorgente, che permette a queste voci di essere velocemente e facilmente localizzate da &kate; per mezzo di questa estensione.

Un tag è un oggetto del linguaggio per il quale è disponibile una voce indice (o in alternativa la voce indice creata per quell'oggetto).

La generazione di tag è supportata per questi linguaggi di programmazione.

### Configurazione

L'estensione CTags usa due diversi file di banca dati per l'indice.

Nella pagina delle impostazioni di CTags nella configurazione di &kate; puoi aggiungere o rimuovere le cartelle contenenti il codice sorgente e rigenerare la banca dati comune di CTags.

#### Indice comune

Impostazioni di CTags
Configurare la banca dati globale di CTags

In basso alla pagina delle impostazioni puoi adattare il comando CTags.

Per ulteriori informazioni su tutte le opzioni disponibili leggi le pagine man di CTags, che sono presenti nel &khelpcenter;; puoi anche digitare l'&URL; man/:ctags direttamente in &konqueror;

L'indicizzazione inizia facendo clic su Aggiorna; quando finisce chiudi la finestra.

#### Sessione di indicizzazione

Per configurare la sessione di indicizzazione apri la vista CTags.

Fonti indicizzazione

- In questa scheda puoi aggiungere o rimuovere le cartelle contenenti il codice sorgente e rigenerare manualmente la banca dati specifica per la sessione di CTags.

Banca dati

- Impostazioni della banca dati
  Configurare la banca dati per la sessione di CTags

  Seleziona un altro file di banca dati di CTags, configura i comandi di CTags oppure ripristina quelli predefiniti.

### Utilizzare l'estensione CTags

Metti il puntatore del mouse sugli oggetti del linguaggio come le funzioni, i simboli &etc; a cui sei interessato e seleziona una delle azioni dal menu CTags: salterai alla riga del file dove l'oggetto è stato definito o dichiarato.

Le azioni del menu CTags non hanno nessuna scorciatoia predefinita; per configurarle usa l'editor di scorciatoie da tastiera.

In alternativa puoi usare il campo di ricerca nella scheda Ricerca della vista CTags.

Digitando dei caratteri nel campo di ricerca, questa inizierà: saranno visualizzati i nomi corrispondenti degli oggetti del linguaggio, come funzioni, classi, simboli &etc;, insieme al tipo ed al nome del file.

Seleziona una voce nella lista per saltare nel file sorgente alla riga corrispondente.

### Struttura del menu

CTags Torna indietro di un passo

- Torna indietro all'ultimo tag visitato nella cronologia.

CTags Cerca testo corrente

- Apre la scheda Ricerca della vista CTags e visualizza tutti gli oggetti del linguaggio corrispondenti all'attuale selezione di testo nella lista.

CTags Vai alla dichiarazione

- Se il cursore è su una definizione di oggetto allora il documento contenente la dichiarazione dello stesso si aprirà, se necessario, e sarà attivata la sua vista, con il cursore posizionato all'inizio della dichiarazione.

CTags Vai alla definizione

- Se il cursore è su una dichiarazione di oggetto, questa aprirà il documento contenente la dichiarazione dello stesso, se necessario, e attiverà la sua vista, con il cursore all'inizio della definizione.

## Estensione per l'anteprima del documento

### Introduzione

Questa estensione abilita un'anteprima in diretta del documento di testo attualmente modificato; questo avviene nella barra laterale nel suo formato finale. Quindi il risultato sarà immediatamente visibile vicino al testo sorgente quando, ad esempio, modifichi un testo Markdown o un'immagine SVG.

Per la visualizzazione viene utilizzata l'estensione KParts che è attualmente selezionata come preferita per il tipo &MIME; del documento. L'anteprima non è quindi possibile se non c'è nessuna estensione KParts per quel tipo.

Per cambiare l'estensione preferita apri il modulo Associazioni dei file nelle &systemsettings; e modifica l'Ordine di preferenza dei servizi nella scheda Integrazione.

### Alcune estensioni KParts disponibili

Tipo &MIME; | Estensione KParts
Testo Markdown | KMarkdownWebViewPart oppure OkularPart
Immagine SVG | SVGPart
File UI di &Qt; | KUIViewerPart
File grafi DOT | KGraphviewerPart

### Struttura del menu

Visualizza Viste degli strumenti Mostra anteprima

- Mostra o nasconde in una barra laterale l'anteprima del documento di &kate;.

### Interfaccia

I pulsanti nella parte alta della finestra dell'anteprima forniscono queste azioni:

- Blocca l'anteprima su un certo documento. Selezionando questa opzione ti assicuri che, se il fuoco passa ad un altro documento nella stessa finestra di &kate;, l'anteprima non seguirà quel documento ma rimarrà invece sul precedente.

- Abilita o disabilita l'aggiornamento del contenuto dell'anteprima del documento corrente

- Aggiorna manualmente il contenuto dell'anteprima del documento corrente

- Un menu a discesa con delle azioni dall'estensione KParts

## Estensione per lo scambio dei documenti

### Struttura del menu

&Ctrl; Visualizza Ultime viste usate

&Ctrl;&Shift; Visualizza Ultime viste usate (Opposto)

- Apre una lista con i documenti visualizzati di recente:

  Documenti visualizzati di recente

  Tieni il tasto &Ctrl; premuto ed usa per scorrere avanti nell'elenco; premi anche il tasto &Shift; per invertire la direzione.

  Tieni premuta la scorciatoia &Ctrl; e potrai usare i tasti &Up;, &Down;, &Home; o &End; per spostarti nella lista. Se invece premi più volte un carattere, allora passerai su tutte le voci della lista che cominciano con quella lettera; rilasciando la scorciatoia andrai al documento che hai selezionato.

## Selettore dei file

Il selettore dei file è un visore di cartelle, che ti permette di aprire i file da una cartella visualizzata nel riquadro attuale.

### Struttura del menu

Visualizza Viste degli strumenti Mostra il selettore dei file

- Mostra o nasconde il selettore dei file di &kate;.

### Interfaccia

Dall'alto al basso, il selettore dei file è composto dai seguenti elementi:

Una barra degli strumenti

- Questa contiene i pulsanti standard per la selezione:

  Indietro

- Provoca l'esecuzione del comando `cd` nella cartella precedente nella cronologia. Questo pulsante è disabilitato se la cartella in questione non esiste.

Avanti

- Provoca l'esecuzione del comando `cd` nella cartella successiva nella cronologia. Questo pulsante è disabilitato se la cartella in questione non esiste.

Segnalibri

- Apre un sotto-menu da cui puoi modificare o aggiungere i segnalibri, e anche aggiungere una nuova cartella di segnalibri.

Cartella del documento attuale

- Questo pulsante fa eseguire alla vista delle cartelle il comando `cd` nella posizione in cui è contenuto il documento attualmente attivo, se possibile. Questo pulsante è disabilitato se il documento attivo è un nuovo file che non è ancora stato salvato, oppure se la cartella in cui risiede non è individuabile.

Opzioni

- Vista breve

- Mostra solo i nomi dei file.

Vista dettagliata

- Visualizza il Nome, la Data e la Dimensione dei file.

Vista ad albero

- Come la vista breve, ma le cartelle possono essere espanse per visualizzarne i contenuti.

Vista ad albero dettagliata

- Anche questa permette di espandere le cartelle, ma mostra le colonne aggiuntive disponibili nella vista dettagliata.

Mostra i file nascosti

- Mostra i file che sono normalmente nascosti dal &OS;.

Sincronizza automaticamente con il documento attuale

- Quando questa opzione è abilitata il selettore dei file eseguirà automaticamente il comando `cd` nella cartella del documento attualmente aperto nell'area di modifica ogni volta che cambia.

Una voce per la posizione

- Questo mostra il percorso di navigazione della cartella attualmente aperta, come in &dolphin;: puoi fare clic su qualsiasi cartella per sfogliarla, o fare clic su una delle frecce alla sinistra di una cartella per selezionare qualsiasi cartella sottostante. Puoi anche effettuare selezioni dall'elenco delle tue Risorse facendo clic sull'icona in fondo a sinistra nel percorso di navigazione, che mostra un'icona rappresentante la Risorsa attuale.

  Puoi anche fare clic alla destra del percorso di navigazione per trasformarlo in una casella di testo; qui puoi digitare il percorso di una cartella da sfogliare. La voce &URL; mantiene una lista di tutti i percorsi precedentemente inseriti: per sceglierne uno usa il pulsante con la freccia alla sua destra.

  Il campo &URL; ha il completamento automatico dei nomi delle cartelle, che può essere impostato utilizzando il &RMB; sul campo di inserimento.

Una vista delle cartelle

- Questa è una vista standard delle cartelle di &kde;.

Una voce di filtro

- La voce di filtro ti permette di definire un filtro per i file visualizzati nella vista delle cartelle. Il filtro usa gli schemi standard; questi devono essere separati da spazi, per esempio: `*.cpp *.h *.moc`.

  Inserisci un asterisco singolo `*` per visualizzare tutti i file.

  La voce di filtro salva gli ultimi dieci filtri inseriti durante la sessione: per usarne uno fai clic sul pulsante con la freccia a destra del campo di inserimento, e seleziona quello che desideri. Puoi disattivare il filtro premendo il pulsante Pulisci il testo, che si trova alla sinistra del pulsante di auto-completamento a freccia.

### Configurazione

Questa estensione può essere configurata nella pagina del Selettore dei file della configurazione di &kate;.

Barra degli strumenti

- Configura i pulsanti della barra del selettore dei file spostando quelli che desideri nell'elenco Azioni selezionate, e ordinali con i pulsanti a freccia di fianco all'elenco.

## L'elenco dei documenti

### Introduzione

L'elenco dei documenti mostra la lista di tutti i documenti attualmente aperti in &kate;. Per indicarne lo stato, i file modificati avranno una piccola icona a forma di dischetto alla loro sinistra.

In alto all'elenco dei documenti c'è una barra degli strumenti, che ha i seguenti pulsanti:

- Crea un nuovo documento
- Apre un documento esistente
- Il documento precedente
- Il documento successivo
- Salva il documento attuale
- Salva il documento attuale con un nuovo nome

L'elenco dei documenti compare come impostazione predefinita nella Modalità ad albero, che mostra la struttura delle cartelle attorno a tutti i documenti aperti. È disponibile anche la Modalità a lista, che mostra invece un semplice elenco dei documenti aperti. Puoi cambiare la modalità facendo clic destro sull'elenco e selezionando la Modalità di visualizzazione dal menu.

Se due o più file (che si trovano in cartelle diverse) hanno lo stesso nome e sono aperti nella Modalità elenco, al nome del secondo file e dei successivi verrà anteposto un (2), e così via. Il suggerimento del file ti mostrerà comunque il suo nome con il percorso completo, permettendoti così di scegliere quello che desideri.

Fai clic sul nome del documento nella lista per visualizzare un documento nel riquadro attivo.

Il menu contestuale ha alcune azioni in comune con il menu File.

Ci sono anche le azioni proprie di un gestore di file, che servono per rinominare o per eliminare i file; con Copia percorso del file potrai copiare negli appunti l'intero percorso del documento.

Facendo clic con il tasto destro sulla lista, e selezionando una voce dal menu Ordina per, potrai ordinare l'elenco in diversi modi. Le opzioni sono:

Nome documento

- Elenca i documenti alfabeticamente per nome.

Percorso documenti

- Elenca i documenti alfabeticamente in base al loro percorso.

Ordine di apertura

- Elenca i documenti in base all'ordine di apertura.

L'elenco dei documenti visualizza, come impostazione predefinita, la cronologia, ombreggiando il colore dello sfondo dei documenti più recenti: se il documento viene modificato gli viene miscelato un altro colore. I documenti più recenti hanno colori più vivi, quindi potrai trovare facilmente quelli su cui stai lavorando. Questa funzionalità può essere disabilitata dalla pagina Documenti del pannello di configurazione.

La posizione predefinita dell'elenco dei documenti nella finestra di &kate; è alla sinistra dell'area dell'editor.

### Struttura del menu

&Alt;&Up; Visualizza Documento precedente

- Apre il documento visualizzato sopra il documento attualmente aperto nell'elenco dei documenti.

&Alt;&Down; Visualizza Documento successivo

- Apre il documento visualizzato sotto il documento attualmente aperto nell'elenco dei documenti.

Visualizza Mostra attivo

- Mostra il documento attualmente aperto nell'elenco dei documenti.

### Configurazione

Sfumature di sfondo

- Questa sezione ti permette di abilitare o disabilitare la visualizzazione delle sfumature dello sfondo nelle tue attività recenti, e, se abilitata, di scegliere quali colori usare.

Ordina per

- Imposta il tipo di ordinamento da dare ai documenti; può anche essere impostato con il menu che appare facendo clic con il &RMB; nell'elenco dei documenti.

Modalità di visualizzazione

- Ci sono due opzioni che influenzano la visualizzazione della vista dei documenti: l'opzione Vista ad albero li visualizzerà in un albero, sotto le cartelle in cui si trovano, mentre l'opzione Vista a elenco li visualizzerà come un semplice elenco.

Mostra il percorso completo

- Quando la vista ad albero e questa opzione sono abilitate, le voci delle cartelle visualizzate nella vista dei documenti mostreranno il percorso completo della cartella, oltre al nome. Non ha effetto nella vista a elenco.

## Estensione per &gdb;

### Introduzione

L'estensione per &gdb; di &kate; fornisce una semplice interfaccia al popolare debugger del progetto &GNU;.

Una precedente esperienza con &gdb; è caldamente raccomandata; visita il sito Web di &gdb; per maggiori informazioni sul suo uso.

Puoi abilitare l'estensione per &gdb; nella sezione delle estensioni della configurazione di &kate;.

Affinché l'estensione funzioni correttamente devi avere un file sorgente (di un qualsiasi tipo supportato da &gdb;), ed un eseguibile.

Se compili usando &gcc; o `g++`, potresti aver bisogno di usare l'argomento da riga di comando ``-ggdb``.

Fatte queste preparazioni apri il file sorgente in &kate;, inserisci il percorso all'eseguibile nella scheda Impostazioni della vista dello strumento Vista di debug e seleziona dal menu Debug Avvia il debug per cominciare.

### Menu e struttura della barra degli strumenti

Tutte queste opzioni sono disponibili nei menu di &kate;, e molte sono disponibili anche nella barra degli strumenti di debug.

Visualizza Viste degli strumenti Mostra Vista di debug

- Mostra una vista contenente l'output di &gdb;, la riga di comando di &gdb; usata, ed altre impostazioni.

Visualizza Viste degli strumenti Mostra locali e pila

- Mostra un elenco di tutte le variabili attualmente in memoria, i loro valori ed un backtrace di &gdb;.

Debug Obiettivi

- Un sotto-menu contenente un elenco di obiettivi (eseguibili).

Debug Avvia il debug

- Avvia &gdb; con un obiettivo.

Debug Termina / interrompi il debug

- Interrompe &gdb;.

Debug Riavvia il debug

- Riavvia &gdb;.

Debug Commuta punto di interruzione / interrompi

- Imposta un punto di interruzione alla posizione attuale del cursore.

Debug Entra

- Esegui l'istruzione attuale (sarà effettuato il debug della chiamata a funzione).

Debug Passa oltre

- Esegui l'istruzione attuale (non sarà effettuato il debug della chiamata a funzione).

Debug Esci

- Riprende l'esecuzione fino alla conclusione del programma in esecuzione.

Debug Sposta contatore dei programmi

- Sposta contatore dei programmi (prossima esecuzione).

Debug Esegui fino al cursore

- Esegue il programma fino a raggiungere l'attuale posizione del cursore.

Debug Continua

- Ignora qualsiasi punto di interruzione ed esegue il programma fino alla sua conclusione (corretta o meno).

Debug Stampa valore

- Stampa il valore della variabile attualmente indicata dal cursore.

Impostazioni Barre mostrate Estensione &gdb;

- Mostra la barra degli strumenti di debug.

### Vista di debug

La vista dello strumento Vista di debug è composta da diverse schede:

Uscita di &gdb;

- Contiene l'uscita di &gdb; ed una riga di comando per &gdb;.

  La scheda Uscita La scheda Uscita.

  La scheda Uscita mostra il risultato generato sulla console da una sessione di debug.

Impostazioni

- Eseguibile

- Percorso dell'obiettivo (l'eseguibile) su cui eseguire il debug.

Cartella di lavoro

- La cartella di lavoro attuale fornita all'obiettivo.

Argomenti

- Argomenti passati al programma.

Mantieni attivazione

- Mantiene attiva la riga di comando di &gdb;.

Ridireziona I/O

- Apre una nuova scheda I/O nella Vista di debug, dove puoi vedere l'uscita ed inserire gli ingressi al programma in esecuzione.

La finestra delle impostazioni La finestra delle impostazioni

La finestra Impostazioni, che mostra la configurazione di una sessione di debug.

I/O

- Contiene un'area che mostra l'uscita del programma attuale, ed una riga di comando dalla quale puoi passare degli ingressi.

  La scheda I/O La scheda I/O.

  La scheda I/O, che mostra l'uscita di un semplice programma di prova.

### Pila di chiamate e Locali

La vista dello strumento Pila delle chiamate contiene un elenco di backtrace formattati restituiti da &gdb;.

La vista dello strumento Pila delle chiamate di &gdb; La vista dello strumento Pila delle chiamate.

La vista dello strumento Pila delle chiamate dell'estensione &gdb;.

La vista dello strumento Locali mostra un elenco di tutte le variabili attualmente in memoria del programma, ed i loro valori corrispondenti.

La vista dello strumento Locali di &gdb; La vista dello strumento Locali.

La vista dello strumento Locali dell'estensione &gdb;.

### Ringraziamenti e riconoscimenti

Ringraziamenti speciali vanno al partecipante del Google Code-In 2011, Martin Gergov, per aver scritto la maggior parte di questa sezione.

## L'estensione Apri intestazioni

### Usare l'estensione Apri intestazioni

Durante la scrittura di codice C o C++ questo comando passerà dal file di intestazione al corrispondente file C/C++ o viceversa.

Per esempio, se stai editando `myclass.cpp` questa azione visualizzerà, se disponibile nella stessa cartella, il file `myclass.h`.

Funziona con coppie che hanno le seguenti estensioni:

- File di intestazioni: h, H, hh, hpp
- File sorgenti: c, cpp, cc, cp, cxx

### Struttura del menu

F12 File Apri .h/.cpp/.c

- Apri il corrispondente file sorgente o di intestazione per il documento attivo.

## Estensione di progetto

### Introduzione

L'idea di base dell'estensione di progetto è quella di avere una lista strutturata di file che appartengono al progetto, con le seguenti proprietà:

1. Fornire una vista strutturata dei file

2. Rendere semplice e molto veloce l'apertura ed il passaggio tra i vari progetti

3. Supportare la ricerca e la sostituzione nel progetto

4. Fornire un semplice completamento automatico

5. Rendere semplice l'apertura rapida dei file del progetto

6. Supportare la compilazione dei progetti

### Mostrare una vista strutturata dei file

Apri un file di un progetto una volta che l'estensione di progetto è caricata nella pagina di configurazione di &kate;: ti apparirà una barra laterale elencante tutti i progetti, così come i loro file, in questo modo:

Vista di progetto

Come puoi vedere, Kate è il progetto attualmente attivo, ed il suo contenuto è elencato nella vista ad albero; facendo clic sui file nella vista, questi si apriranno nell'editor. Viene inoltre fornito un menu contestuale con il quale puoi aprire i file con altre applicazioni, ad esempio i file `.ui` con Qt Designer.

Puoi filtrare le voci: digita una parte del nome del file che stai cercando nella barra di ricerca che è in fondo alla lista.

### Passaggio ad un altro progetto

L'idea è che non devi mai aprire un progetto manualmente, questo non è affatto supportato. Quindi, quello che succede quando apri un file è che l'estensione di progetto scansiona la sua cartella e quelle superiori alla ricerca di un file `.kateproject`: se lo trova, il progetto viene caricato automaticamente.

Inoltre l'estensione di progetto cambierà automaticamente l'attuale progetto se apri con &kate; un documento che appartiene ad un altro progetto: in questo modo il progetto pertinente sarà attivo sempre. Naturalmente puoi anche cambiare il progetto attualmente attivo usando la casella combinata.

### Ricerca e sostituzione nei progetti

&kate; dispone di un'estensione di ricerca e sostituzione, che si trova nella barra laterale in basso: se c'è un progetto caricato apri la barra laterale Cerca e Sostituisci e passa alla modalità di ricerca e sostituzione nel progetto attuale:

Ricerca nei progetti

### Completamento automatico semplice

Grazie alla conoscenza di tutti i file che appartengono ad un progetto, l'estensione di progetto fornisce un semplice servizio di auto-completamento basato su CTags: se c'è un progetto aperto, CTags analizza in un processo in background tutti i file del progetto, e salva le informazioni CTags in `/tmp`; questo file viene poi utilizzato per popolare la finestra a comparsa del completamento automatico di &kate;.

Di contro, senza questo auto-completamento &kate; è capace solo di mostrare le voci di auto-completamento basandosi solo sulle parole del file attuale. In questo modo l'auto-completamento fornito dall'estensione di progetto è molto più potente.

Completamento nei progetti

Una finestrella passiva ti avviserà sull'eventuale mancanza di CTag. Degno di nota è il fatto che il file di CTags in `/tmp` viene cancellato alla chiusura di &kate;: così l'estensione non inquinerà nessuna cartella con dei file indesiderati.

### Apertura rapida dei file

Dato che fare clic su un file in una vista ad albero non è il modo più rapido per aprirlo, &kate; fornisce un veloce meccanismo integrato; lo puoi attivare con &Ctrl;&Alt;O. Ottieni un elenco come questo:

Apertura rapida

Puoi filtrare digitando parte del nome del file che stai cercando, e puoi anche spostarti nella lista sia con i tasti freccia sia con Pagina su/giù.; con &Enter; attiverai invece il file selezionato, mentre con &Esc; nasconderai la vista di apertura rapida.

Inoltre l'apertura rapida si ricorda del file precedente, che viene selezionato quando passi alla vista di apertura rapida; così tu non devi far altro che premere &Enter;, cosa generalmente molto comoda.

### Supporto alla compilazione del progetto

Un'altra caratteristica è quella di offrire supporto all'Estensione di compilazione, che così viene configurata correttamente.

### Creare i progetti

#### Caricare i progetti automaticamente

L'estensione di progetto ha una funzionalità di auto-caricamento, che ti consente di leggere la lista dei file dal sistema di controllo della versione. Questa funzionalità deve essere abilitata nelle impostazioni (lo è in maniera predefinita):

Configurazione dell'estensione dei progetti

#### Creare i progetti manualmente

Devi solo creare un file `.kateproject` nella cartella principale del progetto. Ad esempio, il file `.kateproject` di Kate apparirà così:

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

Il contenuto del file è scritto con la sintassi JSON: il nome del progetto è Kate, ed i file in esso contenuti dovrebbero essere letti da git.

Al posto di `git` sono supportati anche subversion, attraverso `svn`, e mercurial con `hg`. Se non vuoi leggere da un sistema di controllo di versione puoi caricare ricorsivamente i file dalle cartelle, come segue:

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

Qui le sottocartelle ed i filtri definiscono ciò che fa parte del progetto; puoi anche mescolare il controllo della versione con dei file basati sui filtri.

Se vuoi aggiungere il supporto all'estensione di compilazione, allora puoi scrivere il file `.kateproject` così:

    {
      "name": "Kate"
    , "files": [ { "git": 1 } ]
    , "build": {
        "directory": "build"
      , "build": "make all"
      , "clean": "make clean"
      , "install": "make install"
      }
    }

### Progetto attuale

Usando &Alt;1 Progetti Vai a potrai aprire il Progetto attuale, che è visualizzato in basso nella finestra dell'editor ed ha quattro schede:

Progetto attuale

Terminale

- Un Emulatore di terminale che parte dalla cartella principale del progetto.

Indice del codice

- La digitazione di caratteri nella barra di ricerca inizierà la ricerca, e visualizzerà i corrispondenti nomi delle funzioni, delle classi, dei simboli &etc;, insieme al tipo, al nome del file e al numero di riga.

  Seleziona una voce nella lista per saltare nel file sorgente alla riga corrispondente.

Analisi del codice

- Fai clic su Inizia analisi per iniziare un'analisi statica del codice C e C++ usando `cppcheck`, e per generare un rapporto mostrante il nome del file, il numero delle righe, la gravità (stile, avvisi &etc;) e il problema trovato.

  Seleziona una voce nella lista per saltare nel file sorgente alla riga corrispondente.

Note

- Il testo inserito in questa scheda sarà salvato nel file ``nomeprogetto`.kateproject.notes`.

### Il menu Progetti

Il menu Progetti ti permette di passare tra i progetti attualmente aperti. Viene visualizzato dall'estensione dei progetti.

&Ctrl;&Alt;&Left; Progetti Indietro

- Passa al progetto precedente.

&Ctrl;&Alt;&Right; Progetti Avanti

- Passa al progetto successivo

&Alt;1 Progetti Vai a

- Apre la vista del Progetto attuale nella parte bassa della finestra di modifica.

## Estensione client LSP

L'estensione client LSP fornisce molte funzionalità per i linguaggi, quali il completamento e la navigazione del codice o la ricerca di riferimenti basata sul Language Server Protocol.

Una volta che hai abilitato il client LSP, nella pagina delle estensioni della finestra di configurazione di &kate; te ne apparirà un'altra, chiamata Client LSP.

### Struttura del menu

Se appropriato, nella spiegazione seguente viene menzionato anche un comando LSP corrispondente, la cui documentazione può quindi fornire informazioni e interpretazioni aggiuntive, sebbene possa variare a seconda del linguaggio effettivo. L'espressione "simbolo corrente" si riferisce al simbolo corrispondente alla posizione corrente del cursore, come determinato dal linguaggio e dall'implementazione del server.

Client LSP Vai alla definizione

- [textDocument/definition] Vai alla definizione attuale del simbolo.

Client LSP Vai alla dichiarazione

- [textDocument/declaration] Vai alla dichiarazione attuale del simbolo.

Client LSP Trova riferimenti

- [textDocument/references] Trova i riferimenti al simbolo attuale.

Client LSP Evidenzia

- [textDocument/documentHighlight] Evidenzia i riferimenti ai simboli correnti nel documento attuale.

Client LSP Finestrella informativa

- [textDocument/hover] Finestrella informativa del simbolo attuale.

Client LSP Formatta

- [textDocument/formatting] [textDocument/rangeFormatting] Formatta l'attuale documento o l'attuale selezione.

Client LSP Rinomina

- [textDocument/rename] Rinomina il simbolo attuale.

Client LSP Mostra la documentazione di completamento selezionata

- Mostra la documentazione dell'elemento selezionato nell'elenco di completamento.

Client LSP Includi la dichiarazione nei riferimenti

- Richiede di includere la dichiarazione del simbolo quando ne vengono richiesti i riferimenti.

Client LSP Mostra la finestrella informativa

- Mostra la finestrella informativa sul cursore al passaggio del mouse. Indipendentemente da questa impostazione la richiesta può sempre essere inizializzata manualmente.

Client LSP Formattazione durante la digitazione

- [document/onTypeFormatting] Formatta parti del documento alla digitazione di alcuni caratteri di attivazione. Ad esempio questo si potrebbe applicare ai rientri nelle nuove righe, oppure a qualsiasi altra cosa stabilita dal server LSP. Nota che gli script dell'editor per il rientro potrebbero cercare di fare la stessa cosa (a seconda della modalità), perciò non è raccomandabile aver abilitato entrambi allo stesso tempo.

Client LSP Sincronizzazione incrementale del documento

- Invia delle modifiche parziali del documento per aggiornare il server piuttosto che l'intero documento di testo (se supportato).

Client LSP Mostra le notifiche di diagnostica

- [textDocument/publishDiagnostics] Elabora e mostra le notifiche di diagnostica inviate dal server.

Client LSP Mostra i punti salienti della diagnostica

- Aggiungi i punti salienti del testo per gli intervalli indicati nella diagnostica.

Client LSP Mostra i segni di diagnostica

- Aggiungi segni di documento nelle righe indicate dalla diagnostica.

Client LSP Passa alla scheda di diagnostica

- Passa alla scheda diagnostica nell'estensione dello strumento visivo.

Client LSP Chiudi tutte le schede non di diagnostica

- Chiude tutte le schede non diagnostiche (ad esempio i riferimenti) nell'estensione dello strumento visivo.

Client LSP Riavvia server LSP

- Riavvia il server LSP del documento corrente.

Client LSP Riavvia tutti i server LSP

- Ferma tutti i server LSP che saranno quindi (ri)avviati se necessario.

### Configurazione

La pagina di configurazione dell'estensione permette principalmente la configurazione persistente di alcune delle voci di menu di cui sopra. Tuttavia esiste una voce aggiuntiva per specificare il file di configurazione del server: è un file JSON che può essere utilizzato per specificare il server LSP da avviare (e quindi con cui comunicare tramite stdin e stdout). Per comodità è inclusa la seguente configurazione predefinita (sebbene implementazione alternative del server siano ugualmente valide e possibili):

    {
        "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.*$"
            },
            "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"],
                "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.*$"
            }
        }
    }

Nota che ciascun elemento «command» può essere un vettore o una stringa (nel qual caso viene suddiviso in un vettore). Inoltre viene considerata anche una voce «global» di livello superiore (vicina a «server») (vedi più avanti).

«HighlightingModeRegex» viene usato per associare la modalità di evidenziazione usata da Kate sull'ID del linguaggio del server. Se non viene fornita alcuna espressione regolare, viene utilizzato l'id del linguaggio stesso.

Dall'esempio qui sopra, il principio è probabilmente chiaro. Inoltre, ciascun oggetto di voce del server può avere anche una voce «initializationOptions», che viene passata al server come parte del metodo «initialize». Se presente, viene passata al server una voce «settings» per mezzo della notifica «workspace/didChangeConfiguration».

Vengono applicate varie fasi di sovrapposizione/unione;

- la configurazione utente (caricata dal file) ha la precedenza sulla configurazione predefinita (interna)

- La voce `.kateproject` nella configurazione del progetto ha la precedenza su quella qui sopra

- La voce «global» risultante viene utilizzata per integrare (non per sovrascrivere) ogni voce del server

Un'istanza del server viene utilizzata per ogni combinazione (root, servertype). Se «root» viene specificata come un percorso assoluto viene utilizzato così com'è, diversamente è relativo a projectBase (come determinato dall'estensione di progetto). Se non è stato specificato e se «rootIndicationFileNames» è un vettore, allora viene selezionata una cartella genitore del documento corrente che contiene quel file. Come ultimo ripiego viene selezionata come «root» la cartella home. Per qualsiasi documento la cartella «root» risultante determina se è necessaria o meno un'istanza separata. Se sì, «root» viene passata come rootUri/rootPath.

In generale viene raccomandato di lasciare root non specificata poiché non è così importante per un server (ma dipende dalle tue esigenze). Un numero minore di istanze del server è ovviamente più efficiente e ha anche una visione "più ampia" rispetto a molte istanze separate.

#### Configurazione del server LSP

Ogni specifico server LSP ha il suo modo di gestire le personalizzazioni e può utilizzare mezzi specifici per linguaggio/strumento per la configurazione, ad esempio `tox.ini` (per python), `.clang-format` per lo stile di formattazione C++. Queste configurazioni possono quindi essere anche usate da altri strumenti non LSP, ad esempio da tox o da clang-format. Inoltre, alcuni server LSP caricano la configurazione anche da file personalizzati, ad esempio da `.ccls`. Infine, la configurazione personalizzata del server può anche venir passata con LSP (protocollo), vedi le voci «initializationOptions» e «settings» sopra menzionate nella configurazione del server.

Dal momento che vengono applicati molti livelli di sovrapposizione/unione, il seguente esempio di configurazione client specificata dall'utente modifica una configurazione di un server per linguaggio Python.

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

Sfortunatamente la configurazione/personalizzazione del server LSP spesso non è così ben documentata, e spesso solo esaminando il codice sorgente si capiscono gli approcci di configurazione e l'insieme delle opzioni di configurazione disponibili. In particolare, il server di esempio qui sopra supporta molte altre opzioni in «settings». Consulta la documentazione di un altro client LSP per molti altri esempi di server di linguaggi e per le impostazioni corrispondenti, che possono essere facilmente e prontamente trasformate nella configurazione JSON utilizzata qui e descritta sopra.

## Ricerca e sostituzione

### Introduzione

L'estensione di ricerca e sostituzione di &kate; ti consente di cercare del testo o delle espressioni regolari in molti file contemporaneamente. Puoi cercare in tutti i file aperti, in tutti i file di una cartella e, se vuoi, nelle sue sottocartelle, oppure nei file attivi. Puoi filtrare anche in base al nome del file, ad esempio cercando solo nei file che hanno un'estensione particolare.

### Interfaccia

#### Interrogazione di ricerca

Le opzioni seguenti sono sempre visualizzate in cima alla vista dello strumento di ricerca nei file:

- Puoi avere tante ricerche aperte quante vuoi allo stesso tempo: basta fare clic sul pulsante nuova scheda nell'angolo in alto a sinistra nella vista dello strumento di ricerca. Apparirà una nuova scheda di risultati, che ti permette di effettuare una nuova ricerca.

- Il pulsante nell'angolo in alto a destra dello strumento di ricerca nei file visualizzerà alternativamente nella metà inferiore della vista dello strumento le opzioni aggiuntive per la modalità di ricerca nelle cartelle e i risultati della tua ricerca.

Trova

- Qui è dove scrivi quello che vuoi cercare. Puoi inserire del testo normale oppure un'espressione regolare, se queste sono abilitate.

Sostituisci (casella di testo)

- Il testo di sostituzione che verrà aggiunto ai file al posto del testo nella casella Trova.

Cerca

- Quando hai finito di configurare tutto premi il pulsante Cerca per effettuare la ricerca. Per fare la stessa cosa puoi anche premere &Enter; nella casella di testo Trova.

Sostituisci

- Quando hai finito di configurare tutto premi il pulsante Sostituisci per sostituire il testo inserito nella casella Trova con quello della casella Sostituisci. Per fare la stessa cosa puoi anche premere &Enter; nella casella di testo Sostituisci.

Successivo

- Vai alla corrispondenza successiva della ricerca, cambiando file se necessario.

Sostituisci spuntati

- Come per Sostituisci, ma la sostituzione sarà effettuata solo nei file che sono spuntati nel pannello sottostante.

#### Opzioni di ricerca nelle cartelle

Queste opzioni sono mostrate sotto le opzioni di interrogazione di cui sopra. Se sono invece visualizzati i risultati della ricerca premi il pulsante per mostrarle.

Cerca in

- Qui ci sono tre opzioni: seleziona File aperti per cercare in tutti i file attualmente aperti in &kate;, Cartella per cercare in una cartella e, a scelta, nelle sue sottocartelle, oppure File attuale per cercare solo nel file attivo.

  Se l'estensione dei Progetti è caricata, puoi cercare sia nel Progetto attuale che in Tutti i progetti aperti.

Distingui le maiuscole

- Limita i risultati a quelli che hanno le stesse maiuscole e minuscole specificate nella ricerca.

Espressioni regolari

- Ti permette di usare le espressioni regolari invece che del semplice testo come stringa di ricerca.

Espandi i risultati

- Visualizza tutti i risultati trovati in ogni file, invece che solo un elenco di file che contengono la stringa cercata.

Cartella

- Puoi inserire il percorso della cartella in cui vuoi cercare; ad esempio, potresti inserire `~/sviluppo/kde/kate/` se volessi cercare nel codice sorgente di &kate;. Questa opzione è disponibile solo se utilizzi la modalità nella cartella.

Apri finestra di selezione dei file

- Premi questo pulsante per localizzare la cartella nel navigatore delle cartelle del tuo sistema. Questo pulsante funziona solo se si utilizza la modalità Cartella.

- Premi questo pulsante per sostituire la Cartella con la cartella superiore a quella attualmente selezionata. Questo pulsante funziona solo se utilizzi la modalità Cartella.

- Questo pulsante imposterà la voce della Cartella a quella in cui si trova il documento attuale. Il pulsante funziona solo se utilizzi la modalità Cartella.

Filtro

- Questa opzione ti permette di cercare solo i nomi di file che corrispondano ad un certo schema. Cambialo ad esempio in `*.cpp` per cercare solo file scritti in C++, e in `kate*` per quelli che cominciano per `kate`. Puoi inserire più filtri separandoli con delle virgole (`,`); quest'opzione non è però disponibile nella modalità file aperti.

Escludi

- Il contrario di Filtro: impedisce a &kate; di cercare dei file che corrispondono a modelli precisi. Come per il Filtro puoi digitare più modelli separandoli con delle virgole (`.`); quest'opzione non è però disponibile nella modalità File aperti.

Ricorsivo

- Se questa opzione è abilitata, &kate; cercherà anche in tutte le sottocartelle della cartella selezionata. Questa opzione è disponibile solo se si utilizza la modalità cartella.

Includi i file nascosti

- Se questa opzione è abilitata, &kate; cercherà anche nei file o nelle cartelle che sono normalmente nascosti dal &OS;. Questa opzione è disponibile solo se si utilizza la modalità Cartella.

Segui i collegamenti simbolici

- L'estensione di ricerca nei file normalmente non segue i collegamenti simbolici. Se questa opzione è abilitata l'estensione invece li seguirà, e cercherà nei file e nelle cartelle a cui riferiscono. Questa opzione è disponibile solo utilizzando la modalità Cartella.

  È possibile che i collegamenti simbolici puntino alla cartella genitore di quella attualmente cercata, o che altre cartelle contenenti collegamenti simbolici puntino ad essa. Se è presente un simile collegamento e l'opzione è abilitata, &kate; seguirà ripetutamente il collegamento, e la ricerca non si concluderà mai.

Includi i file binari

- Se questa opzione è abilitata, &kate; cercherà anche nei file che non sembrano essere file di testo.

#### Risultati della ricerca

I risultati della ricerca sono visualizzati sotto le opzioni dell'interrogazione. Se sono mostrate le opzioni per la modalità di ricerca nelle cartelle basta premere il pulsante per mostrarli. Saranno inoltre automaticamente visualizzati non appena verrà effettuata una ricerca.

I risultati di ricerca visualizzano un elenco di file che contengono il testo che corrisponde alla ricerca effettuata, seguito dal numero di occorrenze trovate in quei file.

Per vedere un elenco di corrispondenze in quel file basta fare clic sulla freccia di espansione a sinistra del nome del file. (Se è stata selezionata l'opzione Espandi i risultati, ciò avverrà automaticamente). Sarà visualizzato il numero di riga di ogni corrispondenza seguito dal contenuto di tale riga, con i termini di ricerca indicati in grassetto.

Per aprire il file in cui è stato trovato il risultato basta fare doppio clic su di esso: se necessario &kate; lo aprirà. Puoi inoltre spostare il cursore nella posizione di una corrispondenza particolare facendo doppio clic sulla voce in elenco anziché sul nome del file.

### Struttura del menu

&Ctrl;&Alt;F Modifica Cerca nei file

- Avvia la vista dello strumento Ricerca e sostituisci

Modifica Vai alla corrispondenza successiva

- Vai alla corrispondenza successiva in una ricerca eseguita dall'estensione Cerca e sostituisci.

Modifica Vai alla corrispondenza precedente

- Vai alla corrispondenza precedente in una ricerca eseguita dall'estensione Cerca e sostituisci.

Visualizza Viste degli strumenti Mostra cerca e sostituisci

- Attiva o disattiva la visualizzazione dello strumento Cerca e sostituisci di &kate;.

## Frammenti di Kate

### Introduzione

I frammenti di Kate sono un'estensione usata per risparmiare tempo con il supporto dei cosiddetti frammenti (codice sorgente, codice macchina o testo riutilizzabile). L'estensione supporta anche il completamento del codice e JavaScript.

### Struttura del menu

Visualizza Viste degli strumenti Mostra frammenti

- Mostra il pannello contenente tutti i frammenti del tuo deposito che sono disponibili per il tipo di file attualmente aperto.

Strumenti Crea frammento

- Crea un nuovo frammento, cioè un pezzo di testo riutilizzabile che puoi inserire in qualsiasi parte di qualsiasi documento.

### Pannello dei frammenti

Pannello dei frammenti di Kate Il pannello dei frammenti di &kate;.

Il pannello per i frammenti di &kate;.

Nel pannello dovresti vedere un elenco di depositi di frammenti, insieme alle opzioni per crearne di tuoi, di recuperarli da Internet o di caricarli da un file locale. Ogni deposito ha una casella con cui puoi attivarlo o disattivarlo; ci sono anche dei pulsanti per modificare ed eliminare i depositi esistenti.

#### Caricare i file dei depositi di frammenti

Puoi scaricare i depositi di frammenti da Internet: basta che fai clic su Ottieni nuovi frammenti e ti apparirà una finestra con un elenco di depositi di frammenti. Dopo aver scaricato il frammento desiderato assicurati di attivarlo.

#### Creare e modificare i depositi

Per creare un nuovo deposito di frammenti fai clic su Aggiungi deposito. Ora dovresti vedere una finestrella che chiede il nome, la licenza e l'autore del file di frammenti: dopo aver scelto le opzioni desiderate fai clic su Ok.

Editor di frammenti L'editor di depositi.

L'interfaccia dell'editor di depositi.

L'editor dei depositi di frammenti contiene le seguenti opzioni:

Nome

- Appare nell'elenco dei frammenti nella vista degli strumenti, e viene usato per la funzionalità di completamento del codice.

Spazio dei nomi

- Prefisso usato nel completamento del codice.

Licenza

- Seleziona la licenza per il tuo deposito di frammenti.

Autori

- Inserisci i nomi degli autori del file di frammenti.

Tipi di file

- Seleziona i tipi di file a cui vuoi che si applichi il deposito: l'impostazione predefinita è , in modo che il deposito si applichi a tutti i file. Puoi cambiarla, per esempio in qualcosa come `C++`, oppure selezionare da un elenco mediante un clic sulle voci, e puoi specificare anche più di un tipo di file: basta che premi &Shift; mentre aggiungi i tipi.

#### Creare e modificare i frammenti

Editor di frammenti L'editor di frammenti.

L'interfaccia dell'editor di frammenti.

Nome

- Il nome che sarà mostrato nell'elenco di completamento.

Scorciatoia

- Premendo questa scorciatoia il frammento sarà inserito nel documento.

Frammenti

- Il testo che il tuo frammento inserirà nel documento.

  Un frammento può contenere campi modificabili, su cui puoi spostarti premendo . Per creare i campi nel testo del modello si possono usare le seguenti espressioni:

  `${`field_name`}` crea un semplice campo modificabile. Tutte le successive occorrenze dello stesso `field_name`creano campi che rispecchiano i contenuti del primo durante la modifica.

  `${`field_name=default`}` può essere usato per specificare un valore predefinito per il campo. `default` può essere una qualsiasi espressione JavaScript.

  Usa `${`field_name`=`testo`}` per specificare una stringa fissa come valore predefinito.

  `${func(`other_field1`, `other_field2`, ...)}` può essere usato per creare un campo che valuta una funzione JavaScript per ciascuna modifica e che contiene il suo contenuto. Vedi la scheda Script per maggiori informazioni.

  `${cursor}` può essere usato per segnare la posizione finale del cursore dopo che è stato riempito tutto il resto.

Script

- Funzioni di supporto in Javascript da usare nei tuoi frammenti.

  Tutte le funzioni JavaScript dovrebbero ritornare i contenuti che vuoi mettere nel modello di campo come una stringa.

  Le funzioni sono chiamate in un ambito che contiene i contenuti di tutti i campi modello come variabili locali. Per esempio, in un frammento che contiene `${`field`}` sarà presente una variabile, chiamata `field` , contenente i contenuti aggiornati del campo modello. Quelle variabili possono sia usate staticamente nella funzione sia passate come argomento usando la sintassi `${func(field)}` oppure `${`field2=func(field)`}` nella stringa del frammento.

  Puoi usare l'API di scripting di &kate; per ottenere il testo selezionato, l'intero testo, il nome del file ed altro usando i metodi appropriati degli oggetti `document` e `view`. Per ulteriori informazioni fai riferimento alla documentazione dell'API di scripting.

### Usare i frammenti

I frammenti di Kate in azione Accesso ai frammenti di &kate; da una vista degli strumenti e un menu a cascata.

Selezione da un elenco di frammenti.

Puoi richiamare i frammenti in due modi:

- Scegliendo il frammento dalla vista dello strumento.

- Premendo &Ctrl;Spazio mentre scrivi: questo ti mostrerà tutti i frammenti in una comoda finestra da cui potrai sceglierne uno. Questa combinazione di tasti fornisce funzionalità simili a quelle del completamento del codice.

Se il frammento contiene variabili (oltre a `${cursor}`) il cursore andrà automaticamente alla prima occorrenza di una variabile, e aspetterà che tu scriva qualcosa. Quando hai finito puoi premere per passare alla prossima variabile, e così via.

### Ringraziamenti e riconoscimenti

I frammenti di &kate; sono stati scritti da Joseph Wenninger.

Ringraziamenti speciali vanno al partecipante del Google Code-In 2011, Martin Gergov, per aver scritto la maggior parte di questa sezione.

## Estensione SQL

### Introduzione

Il linguaggio strutturato di interrogazione (SQL) è un linguaggio specializzato per l'aggiornamento, l'eliminazione e la richiesta di informazioni dalle banche dati.

L'estensione SQL per &kate; ti permette di:

- Creare una banca dati

- Connetterti a banche dati esistenti

- Inserire ed eliminare dati dalle banche dati

- Eseguire le interrogazioni

- Visualizzare i risultati in una tabella

### Connessione ad una banca dati

Seleziona Aggiungi connessione dal menu o dalla barra degli strumenti SQL, e quindi seleziona il driver di banca dati di Qt che vuoi usare (inclusi QSQLITE, QMYSQL3, QMYSQL, QODBC3, QODBC, QPSQL7, e QPSQL); se non lo trovi devi installarlo. Premi quindi Successivo.

Se la banca dati che hai selezionato usa un file, basta che ne indichi la posizione e che premi il pulsante Successivo; se è invece richiesta la connessione ad un server devi inserire il nome host, il tuo nome utente, la tua password e qualsiasi altra informazione che il driver ti richieda. Premi quindi Successivo.

Infine dai un nome alla connessione e premi Successivo.

### Eseguire le interrogazioni

#### INSERT/DELETE/UPDATE

Con l'estensione SQL puoi inserire, eliminare ed aggiornare i dati, proprio come faresti da riga di comando o da un programma: basta che inserisci un'interrogazione e che premi il pulsante Esegui interrogazione nella barra degli strumenti, oppure SQL Esegui interrogazione (&Ctrl;E).

##### Alcune interrogazioni d'esempio

`INSERT`

-     INSERT INTO nome_tabella ("campo1", "campo2", "campo3", "campo4", "campo5")
      VALUES ("valore1", "valore2", "valore3", "valore4", "valore5" )

`DELETE`

-     DELETE FROM nome_tabella WHERE name = "testo"

`UPDATE`

-     UPDATE nome_tabella SET "campo1" = "testo", "campo2" = "testo", "campo3" = "testo", "campo4" = "testo", "campo5" = "testo"

#### SELECT

Dopo aver eseguito un'interrogazione di tipo `SELECT` puoi vederne i risultati in una tabella; questa apparirà nella vista degli strumenti Risultato di dati SQL in fondo a &kate;, oppure come testo in Risultato di testo SQL. Se c'è un errore potrai vederlo dal risultato.

##### Interrogazione `SELECT` d'esempio

    SELECT * FROM nome_tabella

Nella vista degli strumenti Risultato di dati SQL ci sono diversi pulsanti:

Ridimensiona le colonne in base ai contenuti

- Cambia le dimensioni delle colonne per adattarsi al loro contenuto.

Ridimensiona le righe in base ai contenuti

- Cambia le dimensioni delle righe per adattarsi al loro contenuto.

Copia

- Seleziona tutto il contenuto della tabella e lo copia negli appunti.

Esporta

- Esporta tutto il contenuto della tabella in un file, negli appunti o nel documento attuale in formato di valori separati da virgole (CSV).

Pulisci

- Rimuove qualsiasi cosa dalla vista della tabella

Puoi ora cambiare i colori visualizzati nella tabella andando nella sezione SQL dopo aver selezionato Impostazioni Configura &kate;.

### Sfogliare

Puoi sfogliare la banca dati usando la vista dello strumento Schema di banca dati sulla sinistra. Le informazioni mostrate variano a seconda del driver per la banca dati che stai usando.

Per aggiornare questo elenco fai clic con il &RMB; in qualsiasi parte nella vista dello strumento, e seleziona Aggiorna. Per generare un'interrogazione su una qualsiasi voce dell'elenco fai clic con il &RMB;, seleziona Genera, e quindi il tipo di interrogazione (SELECT, UPDATE, INSERT, o DELETE) dal sotto-menu che compare.

### Struttura del menu

SQL Aggiungi connessione...

- Aggiunge una nuova connessione usando un qualsiasi driver per le banche dati.

SQL Rimuovi connessione

- Rimuove la connessione selezionata.

SQL Modifica connessione...

- Modifica le impostazioni della connessione attuale.

Connessioni

- Tutte le connessioni alle banche dati che hai creato sono elencate tra gli elementi del menu Modifica connessione ed Esegui interrogazione; selezionane una per eseguire interrogazioni o per modificarla.

&Ctrl;E SQL Esegui interrogazione

- Esegue l'interrogazione.

### Ringraziamenti e riconoscimenti

L'estensione SQL è stata scritta da Marco Mentasti.

Ringraziamenti speciali vanno al partecipante del Google Code-In 2011, Ömer Faruk Oruç, per aver scritto la maggior parte di questa sezione.

## Estensione Visore di simboli

### Usare l'estensione di chiusura per gruppo

Permette agli sviluppatori di visualizzare i simboli (funzioni, macro e strutture) nel codice sorgente.

Puoi agevolmente sfogliare il codice facendo clic sulle informazioni analizzate.

Al momento sono supportati i seguenti linguaggi:

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

Elenco delle funzionalità:

- Modalità ad albero
- Abilita o disabilita l'ordinamento
- Mostra o nasconde i parametri delle funzioni
- Espande o collassa la modalità ad albero
- Auto-aggiorna dopo i cambiamenti
- L'analisi del codice è basata sull'infrastruttura di evidenziazione della sintassi di &kde-frameworks;

### Struttura del menu

&Ctrl;\ Visualizza Vista degli strumenti Mostra lista dei simboli

- Commuta la vista della lista di simboli di &kate; visualizzando alternativamente le funzioni, le macro e le strutture del codice sorgente del documento attivo.

### Configurazione

Visore di simboli

Scegli le opzioni di elaborazione predefinite

## Estensione Strumento visivo per terminale

L'emulatore di terminale integrato è, per tua comodità, una copia dell'applicazione di terminale &konsole; di &kde;. È disponibile alla voce di menu Visualizza Viste degli strumenti Mostra terminale, e acquisirà il fuoco nel momento in cui viene visualizzato. In aggiunta, se l'opzione Sincronizza automaticamente il terminale con il documento attuale quando possibile è abilitata, passerà alla cartella del documento attuale quando viene visualizzato, se è possibile, oppure quando il documento corrente cambia.

La posizione predefinita nella finestra di &kate; è in basso, sotto l'area di modifica.

Puoi configurare &konsole; utilizzando il menu del &RMB;; per ulteriori informazioni vedi il manuale di &konsole;.

L'emulatore di terminale incorporato è fornito dall'estensione Strumento visivo per terminale.

### Struttura del menu

Visualizza Viste degli strumenti Mostra terminale

- Mostra o nasconde l'emulatore di terminale integrato.

  Il terminale sarà creato alla prima attivazione.

  Quando l'emulatore di terminale viene visualizzato, il fuoco si sposterà su di esso, in modo che tu possa digitare immediatamente i comandi. Se l'opzione Sincronizza automaticamente il terminale con il documento attuale quando possibile è abilitata nella pagina Terminale della finestra principale di configurazione, la sessione della shell passerà alla cartella del documento attuale, se questo è un file locale.

Strumenti Incanala al terminale

- Passa il testo selezionato all'emulatore di terminale integrato. Non viene aggiunto alcun carattere di fine riga dopo il testo.

Strumenti Sincronizza terminale con il documento attuale

- Ciò avrà come effetto l'esecuzione del comando `cd` da parte del terminale incorporato, nella cartella del documento attivo.

  In alternativa puoi configurare &kate; in modo che mantenga sempre il terminale sincronizzato con il documento attuale, vedi konsole-config per ulteriori informazioni.

Strumenti Attiva/Disattiva il terminale

- Passa il fuoco dal documento attuale al terminale e viceversa.

### Configurazione

Puoi configurare l'estensione Strumento visivo per terminale dalla pagina Terminale della finestra di configurazione.

Sono disponibili le seguenti opzioni:

Sincronizza automaticamente, quando è possibile, il terminale con il documento attuale

- Ciò comporterà l'esecuzione nel terminale integrato del comando `cd` nella cartella del documento attivo al momento dell'avvio e quando un nuovo documento acquisisce il fuoco. Se non è abilitata, sarà necessario eseguire manualmente tutta la navigazione nel terminale.

Impostare la variabile d'ambiente EDITOR a «kate -b»

- Questa opzione imposta la variabile d'ambiente `EDITOR` in modo che i programmi eseguiti nel terminale integrato che aprono file in un editor li aprano in &kate; invece che nell'editor predefinito configurato nella tua shell. Affinché il programma che lo ha invocato sappia che la modifica del file è terminata, non sarà possibile continuare a utilizzare il terminale fino alla chiusura del file in &kate;.

## L'estensione Filtro di testo

### Usare l'estensione Filtro di testo

Puoi usare questa estensione per elaborare il testo selezionato usando i comandi da terminale. La selezione sarà utilizzata come input per il comando, e il risultato rimpiazzerà la selezione o sarà copiato negli appunti, a seconda delle preferenze dell'utente.

### Esempi:

- `less /etc/fstab` - incolla il contenuto di questo file o lo copia negli appunti

- `wc` - conta le righe, le parole e i caratteri della selezione e li incolla nel documento, o li copia negli appunti

- `sort` - ordina le righe della selezione e incolla il risultato nel documento, o lo copia negli appunti

### Struttura del menu

&Ctrl;\ Strumenti Filtro di testo

- Apre la finestra Filtro di testo:

  La finestra Filtro di testo

  Inserisce il comando da shell nella casella combinata, oppure seleziona dalla cronologia un comando usato in precedenza.

  Copia il risultato invece di incollarlo

- Copia il risultato negli appunti senza modificare il documento.

Unisce STDOUT a STDERR

- Se selezionato verranno fusi i risultati da STDOUT e STDERR, e non saranno riportati gli errori. Diversamente STDERR sarà visualizzato come un messaggio passivo.

## Validazione &XML;

Questa estensione controlla che i file &XML; siano validi e siano scritti correttamente.

L'estensione controlla il file attuale: sul fondo della finestra principale di &kate; apparirà un elenco con gli avvertimenti e gli errori; puoi fare clic su un messaggio d'errore per saltare al punto corrispondente nel file. Se il file ha un DOCTYPE, allora per controllarne la validità si userà il DTD dato da questo. Ci si aspetta che il DTD sia in una posizione relativa al file attuale: per esempio, se il doctype si riferisce a `DTD/xhtml1-transitional.dtd` e il file è `/home/pippo/prova.xml`, allora ci si aspetta che il DTD sia a `/home/pippo/DTD/xhtml1-transitional.dtd`. Sono comunque supportati anche i DTD remoti specificati con http.

Se il file non ha un doctype, ne sarà controllata la corretta formattazione.

Per saperne di più su &XML;, vedi le pagine ufficiali del W3C su &XML;.

Internamente questa estensione chiama il comando esterno `xmllint`, che fa parte di libxml2; l'estensione non funzionerà se questo comando non è correttamente installato nel tuo sistema.

Per caricare questa estensione apri la finestra di configurazione di &kate; in Impostazioni Configura &kate;. Seleziona quindi Validazione &XML;, che apparirà nella sezione Estensioni, in Applicazione, e chiudi la finestra.

### Struttura del menu

&XML; Convalida &XML;

- Questo avvierà il controllo, come descritto sopra.

### Ringraziamenti e riconoscimenti

Estensione di &kate; Validazione &XML;, copyright 2002 di &Daniel.Naber; &Daniel.Naber.mail;.

Copyright 2002 della documentazione di &Daniel.Naber;

## Completamento &XML;

Questa estensione suggerisce cosa è ammissibile in un certo punto di un file &XML;, secondo la DTD del file. Saranno elencati i possibili elementi, gli attributi, i valori degli attributi o le entità, a seconda della posizione del cursore (per esempio, se il carattere a sinistra del cursore è &, vengono elencate tutte le entità). È anche possibile chiudere l'ultimo tag aperto a sinistra.

La DTD deve esistere in formato &XML;, come prodotta dal programma Perl `dtdparse`; indicheremo una tale DTD come meta-DTD. Sono fornite alcune meta-DTD, che sono installate in `katexmltools/` in ``qtpaths` `--paths GenericDataLocation`` ; questa è anche la cartella predefinita alla selezione di Assegna meta-DTD. Per produrre le tue meta-DTD recupera `dtdparse` da questo indirizzo.

### Uso

Avvia &kate; e apri la finestra di configurazione da Impostazioni Configura &kate;.... Seleziona quindi Completamento &XML;, che apparirà nella sezione Estensioni sotto Applicazione, e chiudi la finestra, dopodiché seleziona &XML;Assegna meta-DTD.... Se il documento non contiene alcun DOCTYPE o questo è sconosciuto, dovrai selezionare una meta-DTD dal filesystem, altrimenti sarà automaticamente caricata la meta-DTD corrispondente al DOCTYPE del documento attuale.

Puoi ora usare l'estensione mentre scrivi del testo:

< (minore)

- Questo attiverà un elenco di elementi possibili, a meno che il cursore sia già dentro a un tag. Nota che attualmente non puoi usarlo per inserire degli elementi di massimo livello (per esempio <html>).

</ (minore e sbarra)

- Inserendo questi caratteri avrai la possibilità di chiudere l'elemento attuale (l'ultimo aperto a sinistra del cursore); premi &Enter; per accettare il suggerimento. Contrariamente all'elemento del menu Chiudi elemento questo funziona solo quando è stata assegnata una DTD.

" (virgolette)

- Il tasto delle virgolette attiverà un elenco di valori possibili per gli attributi (se ce ne sono), se sei all'interno di un tag.

(spazio)

- Questo tasto attiverà un elenco di attributi possibili per l'elemento attuale, se sei dentro a un tag.

& (e commerciale)

- Questo tasto attiverà un elenco di entità.

### Funzionalità e limitazioni

Puoi provare tutte le funzioni e le limitazioni caricando in &kate; `katexmltools/testcases.xml` in ``qtpaths` `--paths GenericDataLocation`` e seguendo le istruzioni.

### Struttura del menu

&Ctrl;&Enter; &XML; Inserisci elemento...

- Questo aprirà una finestra che ti permette di inserire un elemento &XML;, mentre saranno inseriti automaticamente i caratteri <, > e il tag di chiusura. Il testo sarà incluso tra i tag di apertura e chiusura se lo avevi selezionato al momento della selezione di questo elemento del menu. Se hai assegnato una meta-DTD con Assegna meta-DTD... la finestra offre il completamento per tutti gli elementi che possono essere inseriti alla posizione attuale del cursore.

&Ctrl;< &XML; Chiudi elemento

- Questo cercherà nel testo un tag non ancora chiuso, e lo chiuderà inserendone il tag di chiusura corrispondente. La ricerca inizia dalla posizione del cursore e va verso sinistra. Se non è possibile trovare un tag aperto non succederà nulla.

&XML; Assegna meta-DTD...

- Questo dirà all'estensione quale meta-DTD usare per il documento attuale. Nota che questa assegnazione non verrà salvata, dovrai ripeterla al prossimo riavvio di &kate;.

### Ringraziamenti e riconoscimenti

Estensione di &kate; Completamento XML, copyright 2001, 2002 di &Daniel.Naber; &Daniel.Naber.mail;.

Copyright della versione per KDE SC 4 2010 di Tomáš Trnka

Copyright 2001, 2002 della documentazione di &Daniel.Naber;