<chapter id="plugins">

<chapterinfo>
<authorgroup>
<author
>&Anders.Lund; &Anders.Lund.mail;</author>
<othercredit role="translator"
><firstname
>Paolo</firstname
><surname
>Zamponi</surname
><affiliation
><address
><email
>zapaolo@email.it</email
></address
></affiliation
><contrib
>Traduzione e manutenzione della documentazione</contrib
></othercredit
><othercredit role="translator"
><firstname
>Vincenzo</firstname
><surname
>Reale</surname
> <affiliation
><address
><email
>smart2128vr@gmail.com</email
></address
></affiliation
><contrib
>Traduzione della documentazione</contrib
></othercredit
><othercredit role="translator"
><firstname
>Nicola</firstname
><surname
>Ruggero</surname
><contrib
>Traduzione della documentazione</contrib
></othercredit
><othercredit role="translator"
><firstname
>Federico</firstname
><surname
>Zenith</surname
><affiliation
><address
><email
>federico.zenith@member.fsf.org</email
></address
></affiliation
><contrib
>Traduzione della documentazione</contrib
></othercredit
> 
</authorgroup>
</chapterinfo>

<title
>Lavorare con le estensioni</title>

<para
>Puoi abilitare le singole estensioni nella <link linkend="configuring-kate-configdialog"
>finestra di configurazione</link
>, che dà anche accesso ad opzioni di configurazione aggiuntive, se richieste dalle estensioni.</para>

<sect1 id="kate-application-plugins">
<title
>Estensioni dell'applicazione &kate;</title>

<!-- from doc/kate-addons/index.docbook -->
<para
>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 <menuchoice
><guimenu
>Impostazioni</guimenu
><guimenuitem
>Configura Kate...</guimenuitem
></menuchoice
>, seleziona <menuchoice
><guimenu
>Applicazione</guimenu
><guimenuitem
>Estensioni</guimenuitem
></menuchoice
> e scegli quelle che vuoi. </para>

<para
>Le estensioni per l'applicazione disponibili sono: </para>
<itemizedlist>
<listitem>
<para
><link linkend="kate-application-plugin-external-tools"
>Strumenti esterni</link
>: avvia strumenti esterni ed applicazioni</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-backtracebrowser"
>Navigatore backtrace</link
>: vista dello strumento di navigazione dei backtrace C/C++</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-build"
>Estensione di compilazione</link
>: compila o esegui il <command
>make</command
> ed elabora i messaggi d'errore</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-closeexceptlike"
>Chiudi escludendo/includendo</link
>: chiudi un gruppo di documenti in base a un percorso comune, o a un'estensione di file</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-colorpicker"
>Selettore di colore</link
>: mostra l'anteprima per i nomi dei colori noti</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-colored-brackets"
>Parentesi colorate</link
>: parentesi colorate per migliorare la leggibilità</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-ctags"
>CTags</link
>: cerca definizioni e dichiarazioni con CTags</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-preview"
>Anteprima del documento</link
>: esegui l'anteprima del documento nel formato di destinazione</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-documentswitcher"
>Selettore di documenti</link
>: sfoglia rapidamente i documenti per mezzo della combinazione <keycombo action="simul"
>&Alt; &Tab;</keycombo
></para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-fsbrowser"
>Selettore dei file</link
>: vista dello strumento Selettore dei file</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-documents"
>Vista Albero dei documenti</link
>: visualizza i file aperti in un albero di file</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-gdb"
>&gdb;</link
>: fornisce una semplice interfaccia a &gdb;</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-projects"
>Estensione di progetto</link
>: integrazione con &git; e con altri sistemi di controllo del sorgente</para>
</listitem>
<listitem>
<para
>Replicode - linguaggio costruttivista per IA ed esecuzione</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-lspclient"
>Client LSP</link
>: il client LSP fornisce navigazione e completamento del codice per molti linguaggi</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-searchinfiles"
>Cerca e sostituisci</link
>: cerca e sostituisci nei documenti, nelle cartelle o nei progetti</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-snippets"
>Vista strumento per i frammenti di testo</link
>: vista dello strumento che incorpora la gestione dei frammenti</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-keyboardmacros"
>Macro da tastiera</link
>: registra ed esegui le macro da tastiera (cioè una sequenza di azioni da tastiera).</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-sql"
>Estensione SQL</link
>: interroga le banche dati SQL</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-symbolviewer"
>Visore di simboli</link
> estrai e visualizza i simboli di riferimento dal sorgente</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-konsole"
>Vista strumento Terminale</link
>: usando l'oggetto &konsole; di &kde; hai un terminale pronto all'uso</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-textfilter"
>Filtro di testo</link
>: elabora il testo usando comandi da terminale</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-xmltools"
>Completamento &XML;</link
>: elenca gli elementi, gli attributi, i valori di attributi e le entità &XML; permesse da DTD.</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-xmlcheck"
>Validazione &XML;</link
>: valida i file &XML; con xmllint</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-compilerexplorer"
>Esploratore del compilatore</link
>: interfaccia allo strumento Esploratore del compilatore</para>
</listitem>
<listitem>
<para
><link linkend="kate-application-plugin-formatting"
>Formattazione</link
>: estensione per la formattazione del codice</para>
</listitem>
</itemizedlist>
</sect1>

<sect1 id="kate-application-plugin-external-tools">
<title
>Strumenti esterni</title>

<para
>L'estensione <guilabel
>Strumenti esterni</guilabel
> ti permette di invocare delle applicazioni esterne con dei dati collegati al documento corrente, ad esempio al suo URL, alla sua cartella, al suo testo o alla sua selezione. Una volta abilitati appare, come illustrato di seguito, una pagina di configurazione, che ti consente di modificare o di rimuovere gli strumenti esistenti. Allo stesso modo puoi aggiungere dei nuovi strumenti a tuo piacimento: essi appariranno quindi nel sotto-menu <guisubmenu
>Strumenti esterni</guisubmenu
> del menu <guimenu
>Strumenti</guimenu
> dell'applicazione. </para>

<mediaobject>
<imageobject>
<imagedata format="PNG" fileref="kateexternaltools.png"/>
</imageobject>
</mediaobject>

<para
>La pagina di configurazione permette di aggiungere nuovi strumenti esterni facendo clic sul pulsante <guilabel
>Aggiungi</guilabel
>. In questo caso, un menu a comparsa apparirà sia dove si può aggiungere un nuovo strumento esterno che aggiungere uno strumento esistente da una lista predefinita o aggiungere una nuova categoria per organizzare gli strumenti esterni in categorie. Allo stesso modo, gli strumenti esistenti possono essere modificati sia facendoci doppio clic, sia invocando <guilabel
>Modifica...</guilabel
>, mentre <guilabel
>Rimuovi</guilabel
> rimuove gli strumenti selezionati. </para>

<sect2 id="kate-application-plugin-external-tools-edit">
<title
>Configurazione degli strumenti esterni</title>

<para
>La modifica di uno strumento apre una pagina di configurazione che permette una configurazione particolareggiata dello strumento:</para>

<mediaobject>
<imageobject>
<imagedata format="PNG" fileref="kateeditexternaltool.png"/>
</imageobject>
</mediaobject>

<variablelist>
<varlistentry>
<term
>Come si può vedere si possono definire molti dettagli, ovvero:</term>
<listitem>
<para
><userinput
>Nome</userinput
>, il nome dello strumento, che apparirà successivamente nel menu.</para>
<para
><userinput
>Icona</userinput
>, l'icona opzionale che è visibile nel menu.</para>
<para
><userinput
>Eseguibile</userinput
>, l'eseguibile, che include anche il percorso completo se esso non è nella variabile d'ambiente <envar
>PATH</envar
>.</para>
<para
><userinput
>Argomenti</userinput
>, argomenti facoltativi da passare all'eseguibile.</para>
<para
><userinput
>Ingresso</userinput
>, un ingresso facoltativo che viene passato al processo tramite stdin.</para>
<para
><userinput
>Cartella di lavoro</userinput
>, la cartella di lavoro dello strumento in cui verrà avviato lo strumento. Se vuoto, verrà impostata al percorso del documento corrente.</para>
<para
><userinput
>Tipi MIME</userinput
>, se impostato, fa in modo che lo strumento sia attivo solo se corrisponde con quello del documento corrente.</para>
<para
><userinput
>Salva</userinput
>, quando invocato, non salva niente, oppure il documento corrente o tutti i documenti.</para>
<para
><userinput
>Attivazione</userinput
>, i criteri di attivazione per eseguire lo strumento. Esso influenzerà il documento attivo corrente, e verrà eseguito solamente se il suo tipo MIME corrisponde a quello dello strumento esterno.</para>
    <variablelist
><varlistentry>
    <term
>Sono disponibili i seguenti criteri di attivazione:</term>
    <listitem>
    <para
><userinput
>Nessuno</userinput
>: è il predefinito, significa che lo strumento non ha criteri di attivazione.</para>
    <para
><userinput
>Prima di salvare</userinput
>: questo criterio di attivazione eseguirà lo strumento appena prima che il documento venga salvato.</para>
    <para
><userinput
>Dopo aver salvato</userinput
>: questo strumento di attivazione eseguirà lo strumento dopo che il documento è stato salvato.</para>
    </listitem>
    </varlistentry
></variablelist>
<para
><userinput
>Ricarica il documento corrente dopo l'esecuzione</userinput
>: è utile quando il file corrente viene modificato sul disco.</para>
<para
><userinput
>Risultato</userinput
>: il risultato definisce l'obiettivo di stdout. È impostato o a <userinput
>Ignorato</userinput
>, o a <userinput
>Inserisci alla posizione del cursore</userinput
>, o a <userinput
>Sostituisci il testo selezionato</userinput
>, o a <userinput
>Sostituisci il documento corrente</userinput
>, o a <userinput
>Aggiungi al documento corrente</userinput
>, o a <userinput
>Inserisci in un nuovo documento</userinput
>, o a <userinput
>Copia negli appunti</userinput
>, o a <userinput
>Visualizza nel pannello</userinput
>.</para>
<para
><userinput
>Editor dei comandi</userinput
>, comando facoltativo che può essere usato per invocare lo strumento esterno dalla <ulink url="help:/katepart/advanced.html#advanced-editing-tools-commandline"
>riga di comando</ulink
> integrata.</para>
</listitem>
</varlistentry>
</variablelist>

<para
>Il pulsante <guilabel
>Valori predefiniti</guilabel
> è visibile solo per gli strumenti che vengono forniti con Kate. Se ci si fa clic, tutte le impostazioni dello strumento vengono riportate al loro valore predefinito (o di fabbrica). </para>

</sect2>

<sect2 id="kate-application-plugin-external-tools-variables">
<title
>Espansione delle variabili</title>

<para
>Alcuni campi modificabili, quali <guilabel
>Eseguibile</guilabel
>, <guilabel
>Argomenti</guilabel
>, <guilabel
>Ingresso</guilabel
> e <guilabel
>Cartella di lavoro</guilabel
> supportano delle variabili che verranno espanse quando lo strumento verrà invocato: esse vengono indicate dall'icona <guilabel
>{}</guilabel
> che appare quando uno di questi campi di inserimento testuale ha il fuoco (vedi il cerchio rosso): </para>

<mediaobject>
<imageobject>
<imagedata format="PNG" fileref="katevariableexpansion.png"/>
</imageobject>
</mediaobject>

<para
>Se si passa col mouse sopra ad uno di questi campi di inserimento testuale viene anche mostrato un suggerimento col testo corrente espanso. Inoltre, facendo clic sull'azione <guilabel
>{}</guilabel
> si aprirà una finestra che elenca tutte le variabili disponibili: </para>

<mediaobject>
<imageobject>
<imagedata format="PNG" fileref="kateexternaltoolvariablechooser.png"/>
</imageobject>
</mediaobject>

<para
>Questa funzionalità fornisce una gran flessibilità quando si definisce uno strumento esterno, dal momento che tutte le variabili nella forma <userinput
>%{...}</userinput
> vengono espanse quando lo strumento viene invocato. Ci sono due tipi di variabili supportate: <itemizedlist
> <listitem
><para
><userinput
>%{variable-name}</userinput
></para
></listitem
> <listitem
><para
><userinput
>%{variable-name:&lt;value&gt;}</userinput
></para
></listitem
> </itemizedlist
>. La prima forma, <userinput
>%{variable-name}</userinput
>, sostituisce semplicemente la variabile col suo contenuto. Per esempio, la variabile <userinput
>%{Document:FileName}</userinput
> viene sostituita dal nome del file del documento corrente senza il percorso. La seconda forma, <userinput
>%{variable-name:&lt;value&gt;}</userinput
>, prende <userinput
>&lt;value&gt;</userinput
> come contenuto, per esempio può essere usata per espandere una variabile d'ambiente con <userinput
>%{ENV:HOME}</userinput
>, oppure si può ottenere la data corrente nel formato preferito, come <userinput
>%{Date:yyyy-MM-dd}</userinput
>. </para>

<variablelist>
<varlistentry>
<term
>Le variabili supportate includono:</term>
<listitem>
<para
><userinput
>Document:FileBaseName</userinput
>: nome di base di file, senza percorso e suffisso, del documento corrente.</para>
<para
><userinput
>Document:FileExtension</userinput
>: estensione del file del documento corrente.</para>
<para
><userinput
>Document:FileName</userinput
>: nome del file senza percorso del documento corrente.</para>
<para
><userinput
>Document:FilePath</userinput
>: percorso completo del documento corrente, incluso il nome del file.</para>
<para
><userinput
>Document:Text</userinput
>: contenuto del documento corrente.</para>
<para
><userinput
>Document:Path</userinput
>: percorso completo del documento corrente, senza il nome del file.</para>
<para
><userinput
>Document:NativeFilePath</userinput
>: percorso completo del documento corrente, incluso il nome del file, con il separatore di percorso nativo (la barra inversa in Windows).</para>
<para
><userinput
>Document:NativePath</userinput
>: percorso completo del documento corrente, senza il nome del file, con il separatore di percorso nativo (la barra inversa in Windows).</para>
<para
><userinput
>Document:Cursor:Line</userinput
>: numero di riga della posizione del cursore di testo nel documento corrente (inizia da 0).</para>
<para
><userinput
>Document:Cursor:Column</userinput
>: numero di colonna della posizione del cursore di testo nel documento corrente (inizia da 0).</para>
<para
><userinput
>Document:Cursor:XPos</userinput
>: componente X della posizione del cursore nelle coordinate globali dello schermo.</para>
<para
><userinput
>Document:Cursor:YPos</userinput
>: componente Y della posizione del cursore nelle coordinate globali dello schermo.</para>
<para
><userinput
>Document:Selection:Text</userinput
>: selezione di testo del documento corrente.</para>
<para
><userinput
>Document:Selection:StartLine</userinput
>: riga iniziale della selezione di testo del documento corrente.</para>
<para
><userinput
>Document:Selection:StartColumn</userinput
>: colonna iniziale della selezione di testo del documento corrente.</para>
<para
><userinput
>Document:Selection:EndLine</userinput
>: riga finale della selezione di testo del documento corrente.</para>
<para
><userinput
>Document:Selection:EndColumn</userinput
>: colonna finale della selezione di testo del documento corrente.</para>
<para
><userinput
>Document:RowCount</userinput
>: numero di righe del documento corrente.</para>
<para
><userinput
>Document:Variable:&lt;variable&gt;</userinput
>: espande <ulink url="help:/katepart/config-variables.html"
>variabili del documento</ulink
> arbitrarie.</para>
<para
><userinput
>Date:Locale</userinput
>: la data attuale nel formato della localizzazione corrente.</para>
<para
><userinput
>Date:ISO</userinput
>: la data attuale (ISO).</para>
<para
><userinput
>Date:&lt;value&gt;</userinput
>: la data attuale (<ulink url="https://doc.qt.io/qt-5/qdate.html#toString"
>QDate formatstring</ulink
>).</para>
<para
><userinput
>Time:Locale</userinput
>: l'ora attuale nel formato della localizzazione corrente.</para>
<para
><userinput
>Time:ISO</userinput
>: l'ora attuale (ISO).</para>
<para
><userinput
>Time:&lt;value&gt;</userinput
>: l'ora attuale (<ulink url="https://doc.qt.io/qt-5/qtime.html#toString"
>QTime formatstring</ulink
>).</para>
<para
><userinput
>ENV:&lt;value&gt;</userinput
>: accesso alle variabili d'ambiente.</para>
<para
><userinput
>JS:&lt;expression&gt;</userinput
>: valuta una semplice espressione JavaScript.</para>
<para
><userinput
>PercentEncoded:&lt;text&gt;</userinput
>: testo codificato in percentuale.</para>
<para
><userinput
>UUID</userinput
>: genera un nuovo UUID.</para>
</listitem>
</varlistentry>
</variablelist>

 

</sect2>

<sect2 id="kate-application-plugin-external-tools-defaults">
<title
>Elenco degli strumenti predefiniti</title>

<para
>Molti strumenti sono compresi per impostazione predefinita, ad ogni modo, qualora ne avessi altri, contattaci su <email
>kwrite-devel@kde.org</email
> affinché possiamo aggiungerli alla lista. Tutti gli strumenti predefiniti sono visibili nella vista ad elenco per impostazione predefinita, ma essi possono essere modificati a proprio piacimento, inclusa la categoria, oppure essere anche eliminati. Gli strumenti eliminati possono essere aggiunti nuovamente facendo clic sul pulsante <guibutton
>Aggiungi</guibutton
> nella pagina di configurazione, come descritto qui sopra. </para>

<variablelist>
<title
>git-cola</title>

<varlistentry>
<term
>git-cola è un client grafico che ti permette di allestire e di depositare facilmente le modifiche. Se installato è disponibile anche da riga di comando, digitando <userinput
>git-cola</userinput
></term>
<listitem>
<para
><userinput
>Nome</userinput
>: git-cola</para>
<para
><userinput
>Icona</userinput
>: git-cola</para>
<para
><userinput
>Eseguibile</userinput
>: git-cola</para>
<para
><userinput
>Argomenti</userinput
>: -r %{Document:Path}</para>
<para
><userinput
>Editor dei comandi</userinput
>: git-cola</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>gitk</title>

<varlistentry>
<term
>Anche gitk è un client di git, che permette di visualizzare bene la cronologia di git.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: gitk</para>
<para
><userinput
>Icona</userinput
>: git-gui</para>
<para
><userinput
>Eseguibile</userinput
>: gitk</para>
<para
><userinput
>Cartella di lavoro</userinput
>: %{Document:Path}</para>
<para
><userinput
>Editor dei comandi</userinput
>: gitk</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>git blame</title>

<varlistentry>
<term
>Avvia git blame per seguire facilmente le modifiche di git nel file corrente.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: git blame</para>
<para
><userinput
>Eseguibile</userinput
>: git</para>
<para
><userinput
>Argomenti</userinput
>: gui blame %{Document:FileName}</para>
<para
><userinput
>Salva</userinput
>: Documento corrente</para>
<para
><userinput
>Cartella di lavoro</userinput
>: %{Document:Path}</para>
<para
><userinput
>Editor dei comandi</userinput
>: git-blame</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>Esegui script di shell</title>

<varlistentry>
<term
>Avvia una console esterna nella quale viene eseguito il documento corrente. Lo script deve indicare l'interprete nella prima riga attraverso una riga shebang tipo <userinput
>#!/percorso/per/l/interprete</userinput
>.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: esegui script di shell</para>
<para
><userinput
>Icona</userinput
>: system-run</para>
<para
><userinput
>Eseguibile</userinput
>: konsole</para>
<para
><userinput
>Argomenti</userinput
>: -e sh -c &quot;cd %{Document:Path} &amp;&amp; pwd &amp;&amp; chmod -vc a+x %{Document:FileName} &amp;&amp; ./%{Document:FileName} ; echo Premi un tasto per continuare. &amp;&amp; read -n 1&quot;</para>
<para
><userinput
>Salva</userinput
>: Documento corrente</para>
<para
><userinput
>Cartella di lavoro</userinput
>: %{Document:Path}</para>
<para
><userinput
>Editor dei comandi</userinput
>: run-script</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>Cerca in Google il testo selezionato</title>

<varlistentry>
<term
>Cerca in Google il testo selezionato.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: cerca in Google il testo selezionato</para>
<para
><userinput
>Icona</userinput
>: globe</para>
<para
><userinput
>Eseguibile</userinput
>: xdg-open</para>
<para
><userinput
>Argomenti</userinput
>: &quot;https://www.google.com/search?q=%{Document:Selection:Text}&quot;</para>
<para
><userinput
>Editor dei comandi</userinput
>: google</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>Inserisci UUID</title>

<varlistentry>
<term
>Inserisci un nuovo UUID ogni volta che questa azione viene invocata.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: inserisci UUID</para>
<para
><userinput
>Eseguibile</userinput
>: echo</para>
<para
><userinput
>Argomenti</userinput
>: %{UUID}</para>
<para
><userinput
>Output</userinput
>: inserisci alla posizione del cursore</para>
<para
><userinput
>Editor dei comandi</userinput
>: uuid</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>Esegui Clang Format su un file completo</title>

<varlistentry>
<term
>Esegui clang-format sul file corrente del disco. Il documento viene poi ricaricato.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: esegui Clang Format su un file completo</para>
<para
><userinput
>Eseguibile</userinput
>: clang-format</para>
<para
><userinput
>Argomenti</userinput
>: -i %{Document:FileName}</para>
<para
><userinput
>Cartella di lavoro</userinput
>: %{Document:Path}</para>
<para
><userinput
>Salva</userinput
>: Documento corrente</para>
<para
><userinput
>Ricarica</userinput
>: Sì</para>
<para
><userinput
>Editor dei comandi</userinput
>: clang-format-file</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>Esegui Clang Format sul testo selezionato</title>

<varlistentry>
<term
>Esegui Clang Format solo sul testo selezionato nel documento corrente.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: esegui Clang Format sul testo selezionato</para>
<para
><userinput
>Eseguibile</userinput
>: clang-format</para>
<para
><userinput
>Argomenti</userinput
>: -assume-nomeFile: %{Document:FileName}</para>
<para
><userinput
>Cartella di lavoro</userinput
>: %{Document:Path}</para>
<para
><userinput
>Ingresso</userinput
>: %{Document:Selection:Text}</para>
<para
><userinput
>Output</userinput
>: sostituisci il testo selezionato</para>
<para
><userinput
>Editor dei comandi</userinput
>: clang-format-selection</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>Anteprima Qt Quick 2 (qmlscene)</title>

<varlistentry>
<term
>Mostra l'anteprima del file QML corrente in qmlscene.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: anteprima Qt Quick 2 (qmlscene)</para>
<para
><userinput
>Eseguibile</userinput
>: qmlscene</para>
<para
><userinput
>Argomenti</userinput
>: %{Document:FileName}</para>
<para
><userinput
>Salva</userinput
>: Documento corrente</para>
<para
><userinput
>Cartella di lavoro</userinput
>: %{Document:Path}</para>
<para
><userinput
>Editor dei comandi</userinput
>: qml-preview</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>File completo in formato JSON</title>

<varlistentry>
<term
>Formatta l'intero file JSON.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: file completo in formato JSON</para>
<para
><userinput
>Icona</userinput
>: application-json</para>
<para
><userinput
>Eseguibile</userinput
>: jq</para>
<para
><userinput
>Argomenti</userinput
>: %{Document:FileName}</para>
<para
><userinput
>Salva</userinput
>: Documento corrente</para>
<para
><userinput
>Cartella di lavoro</userinput
>: %{Document:Path}</para>
<para
><userinput
>Output</userinput
>: sostituisci il documento corrente</para>
<para
><userinput
>Editor dei comandi</userinput
>: json-format-file</para>
</listitem>
</varlistentry>

</variablelist>


<variablelist>
<title
>File completo in formato XML</title>

<varlistentry>
<term
>Formatta l'intero file XML.</term>
<listitem>
<para
><userinput
>Nome</userinput
>: file completo in formato JSON</para>
<para
><userinput
>Icona</userinput
>: application-xml</para>
<para
><userinput
>Eseguibile</userinput
>: xmllint</para>
<para
><userinput
>Argomenti</userinput
>: --format %{Document:FileName}</para>
<para
><userinput
>Salva</userinput
>: Documento corrente</para>
<para
><userinput
>Cartella di lavoro</userinput
>: %{Document:Path}</para>
<para
><userinput
>Output</userinput
>: sostituisci il documento corrente</para>
<para
><userinput
>Editor dei comandi</userinput
>: xml-format-file</para>
</listitem>
</varlistentry>

</variablelist>

</sect2>
</sect1>

<sect1 id="kate-application-plugin-backtracebrowser">
<!--https://kate-editor.org/2008/08/12/kate-fast-backtrace-navigation/-->
<title
>Estensione per il Navigatore backtrace</title>

<sect2 id="backtracebrowser-using">
<title
>Usare l'estensione Navigatore backtrace</title>

<para
>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 per i backtrace generati sulla tua macchina, ma funzionerà anche sui backtrace di altre persone, &ie; verrà trovato <filename
>/home/dummy/qt-copy/…/qwidget.cpp</filename
> anche su altre macchine. Affinché questo funzioni devi indicizzare le cartelle in cui è localizzato il codice sorgente. </para>

<para
>A volte ci sono più file con lo stesso nome, &eg;</para>

<simplelist>
<member
><filename
>kdegraphics/okular/generators/dvi/config.h</filename
></member>
<member
><filename
>kdepim-runtime/resources/gmail/saslplugin/config.h</filename
></member>
</simplelist>

<para
>Per selezionare quello giusto l'estensione prende le ultime due parti dell'&URL;, che in questo caso sarebbero</para>

<simplelist>
<member
><filename
>dvi/config.h</filename
></member>
<member
><filename
>saslplugin/config.h</filename
></member>
</simplelist>

<para
>E quindi di solito l'estensione trova quello giusto.</para>

<para
>L'indicizzazione di master e di altri rami porterà ovviamente ad un conflitto.</para>

</sect2>

<sect2 id="backtracebrowser-config">
<title
>Configurazione</title>

<para
>Aggiungi le cartelle che contengono il codice sorgente nella pagina di configurazione.</para>

<screenshot id="screenshot-backtrace-settings">
<screeninfo
>Navigatore backtrace</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="backtrace-settings.png" format="PNG"/></imageobject>
<caption
>Configura i percorsi nella vista dello strumento di navigazione Backtrace</caption>
</mediaobject>
</screenshot>

<para
>Un clic su <guibutton
>OK</guibutton
> fa iniziare l'indicizzazione; apri lo strumento visivo <guilabel
>Navigatore Backtrace</guilabel
> quando questa finisce.</para>
<para
>Ora puoi caricare un backtrace dagli appunti (&eg;, quando fai clic su <guibutton
>Copia negli appunti</guibutton
> in &drkonqi;), o da un file.</para>

</sect2>

</sect1>

<sect1 id="kate-application-plugin-build">
<!--https://kate-editor.org/2011/06/21/kate-plugin-updates-part-1/ -->
<sect1info>
<authorgroup>
<author
><firstname
>Salma</firstname
> <surname
>Sultana</surname
></author>
<author
>&TC.Hollingsworth; &TC.Hollingsworth.mail;</author>
</authorgroup>
</sect1info>
<title
>Estensione di compilazione</title>

<sect2 id="build-intro">
<title
>Introduzione</title>

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

</sect2>

<sect2 id="build-using">
<title
>Usare l'estensione di compilazione</title>

<para
>L'estensione di compilazione aggiunge la vista dello strumento <guilabel
>Output compilazione</guilabel
> in basso, ed un menu <guimenu
>Compila</guimenu
> 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.</para>

<screenshot id="screenshot-build-output">
<screeninfo
>Output della compilazione</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="build-output.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

<para
>La vista dello strumento <guilabel
>Output compilazione</guilabel
> ha due schede:</para>

<itemizedlist>
<listitem
><para
><guilabel
>Impostazioni obiettivo</guilabel
></para
></listitem>
<listitem
><para
><guilabel
>Output</guilabel
></para
></listitem>
</itemizedlist>

<sect3 id="build-using-target-settings">
<title
>Scheda delle impostazioni degli obiettivi</title>

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

<para
>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.</para>

<para
>Un nuovo insieme di obiettivi contiene molte opzioni di configurazione:</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Cartella di lavoro</guilabel
></term>
<listitem
><para
>Qui puoi impostare il percorso del progetto; lascialo vuoto se vuoi usare la cartella in cui si trova il documento corrente.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Compila</guilabel
></term>
<listitem
><para
>Questa opzione ti permette di definire il comando di compilazione; l'impostazione predefinita è <command
>make</command
>.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Pulisci</guilabel
></term>
<listitem
><para
>Questa opzione ti permette di definire il comando di pulizia; l'impostazione predefinita è <command
>make clean</command
>.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Configurazione</guilabel
></term>
<listitem
><para
>Questa opzione permette di definire il comando di configurazione; l'impostazione predefinita è <command
>cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local ../</command
>.</para
></listitem>
</varlistentry>
</variablelist>

<para
>In alto questa estensione ha una barra degli strumenti, con i seguenti pulsanti:</para>

<simplelist>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="dialog-ok-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Compila l'obiettivo selezionato</member>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="list-add-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Aggiungi un nuovo obiettivo di compilazione</member>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="document-new-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Crea un nuovo insieme di obiettivi</member>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="edit-copy-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Copia un comando o un insieme di obiettivi</member>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="edit-delete-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Elimina il comando o l'insieme degli obiettivi attuali</member>
</simplelist>

</sect3>

<sect3 id="build-using-output">
<title
>Scheda dell'output</title>

<para
>La scheda <guilabel
>Output</guilabel
> mostra l'output della console generato dall'ultimo comando.</para>

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

<para
><guilabel
>Output compilazione completo</guilabel
>, <guilabel
>Output compilazione ottimizzato</guilabel
>, <guilabel
>Errori ed avvisi</guilabel
> oppure <guilabel
>Solo errori</guilabel
> </para>

<para
>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.</para>

<para
>Per andare all'errore precedente premi <keycombo action="simul"
>&Alt;&Shift;&Left;</keycombo
>, mentre per andare al successivo premi <keycombo action="simul"
>&Alt;&Shift;&Right;</keycombo
>.</para>

</sect3>
</sect2>

<sect2 id="build-menu">
<title
>Struttura del menu</title>

<variablelist id="build-build">
<varlistentry>
<term
><menuchoice id="build-targets"
><guimenu
>Compila</guimenu
><guimenuitem
>Seleziona obiettivo...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Seleziona da un elenco di obiettivi configurato dall'utente.</para
></listitem>
</varlistentry>

<varlistentry id="build-default">
<term
><menuchoice
><guimenu
>Compila</guimenu
> <guimenuitem
>Compila l'obiettivo predefinito</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Compila l'obiettivo definito come predefinito nell'insieme degli obiettivi attivi.</para
></listitem>
</varlistentry>

<varlistentry id="build-previous">
<term
><menuchoice
><guimenu
>Compila</guimenu
> <guimenuitem
>Compila l'obiettivo precedente</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Passa al precedente obiettivo configurato dall'utente.</para
></listitem>
</varlistentry>

<varlistentry id="build-stop">
<term
><menuchoice
><guimenu
>Compila</guimenu
> <guimenuitem
>Ferma</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Ferma la compilazione di un obiettivo.</para
></listitem>
</varlistentry>

<varlistentry id="build-previous-error">
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;&Alt;&Left;</keycombo
></shortcut
> <guimenu
>Compila</guimenu
><guimenuitem
>Errore precedente</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Sposta il cursore sull'errore precedente nel documento.</para
></listitem>
</varlistentry>

<varlistentry id="build-next-error">
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;&Alt;&Right;</keycombo
></shortcut
> <guimenu
>Compila</guimenu
><guimenuitem
>Errore successivo</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Sposta il cursore sull'errore successivo nel documento.</para
></listitem>
</varlistentry>

</variablelist>
</sect2>

<sect2 id="build-ack">
<title
>Ringraziamenti e riconoscimenti</title>
<para
>L'estensione di compilazione di &kate; è stata scritta da Kåre Särs.</para>
<para
>Ringraziamenti speciali vanno alla partecipante del Google Code-In 2011, Salma Sultana, per aver scritto la gran parte di questa sezione.</para>
</sect2>
</sect1>

<sect1 id="kate-application-plugin-closeexceptlike">

<title
>Estensione di chiusura per gruppo</title>

<sect2 id="closeexceptlike-intro">
<title
>Introduzione</title>

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

</sect2>

<sect2 id="closeexceptlike-using">
<title
>Usare l'estensione di chiusura per gruppo</title>

<para
>Assumendo che tu abbia questi documenti aperti in &kate;:</para>

<simplelist>
<member
>/tmp/subfolder/test.h</member>
<member
>/tmp/test.cpp</member>
<member
>/tmp/test.txt</member>
</simplelist>

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

<screenshot id="screenshot-closeexceptlike">
<screeninfo
>Chiudi tranne</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="close-except-like.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

<para
>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. </para>

</sect2>

<sect2 id="closeexceptlike-menu">
<title
>Struttura del menu</title>

<variablelist>
<varlistentry id="file-close-except">
<term
><menuchoice
><guimenu
>File</guimenu
> <guisubmenu
>Chiudi tranne</guisubmenu
> </menuchoice
></term>
<listitem>
<para
><action
>Chiude</action
> tutti i documenti <emphasis
>tranne</emphasis
> quelli con il percorso o l'estensione selezionati dal sotto-menu.</para>
</listitem>
</varlistentry>

<varlistentry id="file-close-like">
<term
><menuchoice
><guimenu
>File</guimenu
> <guisubmenu
>Chiudi simili</guisubmenu
> </menuchoice
></term>
<listitem>
<para
><action
>Chiude</action
> tutti i documenti con il percorso o l'estensione selezionati nel sotto-menu.</para>
</listitem>
</varlistentry>

</variablelist>

</sect2>

</sect1>

<sect1 id="kate-application-plugin-colorpicker">

<title
>Estensione Selettore di colore</title>

<sect2 id="colorpicker-intro">
<title
>Introduzione</title>

<para
>Questa estensione aggiunge nelle righe del testo un'anteprima colore/selettore (&eg;, <literal
>#FFFFFF</literal
>, <literal
>bianco</literal
>).</para>

<para
>Per caricare questa estensione apri la finestra di configurazione di &kate; in <menuchoice
><guimenu
>Impostazioni</guimenu
><guimenuitem
>Configura &kate;...</guimenuitem
></menuchoice
>, seleziona quindi <guilabel
>Selettore di colore</guilabel
> e chiudi la finestra. </para>
</sect2>

<sect2 id="colorpicker-config">
<title
>Configurazione</title>

<para
>Nella pagina delle impostazioni del Selettore di colore nella configurazione di &kate; è possibile configurare le seguenti impostazioni del comportamento dell'estensione.</para>

<variablelist>

<varlistentry>
<term
><guilabel
>Mostra l'anteprima per i nomi dei colori noti</guilabel
></term>
<listitem>
<para
>Se mostrare il selettore di colore per i nomi dei colori noti (&eg;, <literal
>azzurro</literal
>). Vedi <ulink url="https://www.w3.org/TR/SVG11/types.html#ColorKeywords"
>questa pagina</ulink
> per l'elenco dei colori.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Metti l'anteprima dopo il colore del testo</guilabel
></term>
<listitem>
<para
>Se mettere l'anteprima nelle righe del testo dopo il colore del testo.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Corrispondenza coi colori esadecimali</guilabel
></term>
<listitem>
<para
>Qui puoi scegliere le migliori opzioni per l'abbinamento dei colori utilizzato nel tuo codice.</para>
</listitem>
</varlistentry>

</variablelist>

</sect2>

</sect1>

<sect1 id="kate-application-plugin-colored-brackets">
<title
>Parentesi colorate</title>

<sect2
><title
>Introduzione</title>
<para
>L'estensione parentesi colorate colora le coppie di parentesi corrispondenti con dei colori diversi, in modo da migliorare la leggibilità. Tuttavia, non tutte le parentesi vengono colorate: ad esempio, una la cui apertura o chiusura corrispondente non è visibile verrà ignorata. Allo stesso modo, l'unica coppia di parentesi su una riga non verrà colorata. </para>
</sect2>

<sect2
><title
>Configurazione</title>
<para
>L'estensione non fornisce nessuna configurazione.</para>
</sect2>
</sect1>

<sect1 id="kate-application-plugin-ctags">
<!--https://kate-editor.org/2012/11/02/using-the-projects-plugin-in-kate/-->
<title
>Estensione CTags</title>

<sect2 id="ctags-intro">
<title
>Introduzione</title>

<para
><ulink url="https://en.wikipedia.org/wiki/Ctags"
>CTags</ulink
> 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. </para>
<para
>Un tag è un oggetto del linguaggio per il quale è disponibile una voce indice (o in alternativa la voce indice creata per quell'oggetto).</para>

<para
>La generazione di tag è supportata per questi <ulink url="http://ctags.sourceforge.net/languages.html"
>linguaggi di programmazione</ulink
>. </para>
</sect2>

<sect2 id="ctags-config">
<title
>Configurazione</title>

<para
>L'estensione CTags usa due diversi file di banca dati per l'indice.</para>

<para
>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.</para>

<sect3 id="ctags-config-common">
<title
>Indice comune</title>

<screenshot id="screenshot-ctags-global-settings">
<screeninfo
>Impostazioni di CTags</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="ctags-global-setting.png" format="PNG"/></imageobject>
<caption
>Configurare la banca dati globale di CTags</caption>
</mediaobject>
</screenshot>

<para
>In basso alla pagina delle impostazioni puoi adattare il <guilabel
>comando CTags</guilabel
>. </para>

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

<para
>L'indicizzazione inizia facendo clic su <guibutton
>Aggiorna</guibutton
>; quando finisce chiudi la finestra.</para>
</sect3>

<sect3 id="ctags-config-session">
<title
>Sessione di indicizzazione</title>

<para
>Per configurare la sessione di indicizzazione apri la vista <guilabel
>CTags</guilabel
>.</para>

<variablelist>
<varlistentry>
<term
><menuchoice>
<guimenu
>Fonti indicizzazione</guimenu>
</menuchoice
></term>
<listitem>
<para
>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.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice>
<guimenu
>Banca dati</guimenu>
</menuchoice
></term>
<listitem>
<screenshot id="screenshot-ctags-session-settings">
<screeninfo
>Impostazioni della banca dati</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="ctags-session-setting.png" format="PNG"/></imageobject>
<caption
>Configurare la banca dati per la sessione di CTags</caption>
</mediaobject>
</screenshot>
<para
>Seleziona un altro file di banca dati di CTags, configura i comandi di CTags oppure ripristina quelli predefiniti.</para>
</listitem>
</varlistentry>

</variablelist>

</sect3>

</sect2>

<sect2 id="ctags-using">
<title
>Utilizzare l'estensione CTags</title>

<para
>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 <guimenu
>CTags</guimenu
>: salterai alla riga del file dove l'oggetto è stato definito o dichiarato.</para>
<para
>Le azioni del menu <guimenu
>CTags</guimenu
> non hanno nessuna scorciatoia predefinita; per configurarle usa l'<ulink url="help:/fundamentals/shortcuts.html"
>editor di scorciatoie da tastiera</ulink
>.</para>

<para
>In alternativa puoi usare il campo di ricerca nella scheda <guilabel
>Ricerca</guilabel
> della vista CTags.</para>
<para
>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.</para>
<para
>Seleziona una voce nella lista per saltare nel file sorgente alla riga corrispondente.</para>
<!--FIXME why Tag Type here but Name Kind in Project plugin, is there really any difference?-->

<!--FIXME completion as in Project plugin? -->

</sect2>

<sect2 id="ctags-menu">
<title
>Struttura del menu</title>

<variablelist>

<varlistentry id="ctags-jumpback">
<term
><menuchoice
><guimenu
>CTags</guimenu
> <guisubmenu
>Torna indietro di un passo</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Torna indietro all'ultimo tag visitato nella cronologia.</para>
</listitem>
</varlistentry>

<varlistentry id="ctags-lookup">
<term
><menuchoice
><guimenu
>CTags</guimenu
> <guisubmenu
>Cerca testo corrente</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Apre la scheda <guilabel
>Ricerca</guilabel
> della vista CTags e visualizza tutti gli oggetti del linguaggio corrispondenti all'attuale selezione di testo nella lista.</para>
</listitem>
</varlistentry>

<varlistentry id="ctags-gotodeclaration">
<term
><menuchoice
><guimenu
>CTags</guimenu
> <guisubmenu
>Vai alla dichiarazione</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>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.</para>
</listitem>
</varlistentry>

<varlistentry id="ctags-gotodefinition">
<term
><menuchoice
><guimenu
>CTags</guimenu
> <guisubmenu
>Vai alla definizione</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>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.</para>
</listitem>
</varlistentry>

</variablelist>

<!--context menu with Lookup Current Text, Goto Declaration, Goto Definition -->

</sect2>

</sect1>
<!--https://frinring.wordpress.com/2017/11/07/ktexteditorpreviewplugin-0-2-1-last-stand-alone/-->
<!-- https://frinring.wordpress.com/2017/08/21/look-what-you-have-donewwdo/-->
<sect1 id="kate-application-plugin-preview">
<title
>Estensione per l'anteprima del documento</title>

<sect2 id="preview-introduction">
<title
>Introduzione</title>
<para
>L'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;. </para>

<para
>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. </para>

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

<table>
<title
>Alcune estensioni &kparts; disponibili</title>
<tgroup cols="2">
<tbody>
<row>
<entry
>Tipo &MIME;</entry
><entry
>Estensione &kparts;</entry>
</row>
<row>
<entry
>Testo &Markdown;</entry
><entry
>KMarkdownWebViewPart oppure OkularPart</entry>
</row>
<row>
<entry
>Immagine &SVG;</entry
><entry
>SVGPart</entry>
</row>
<row>
<entry
>File UI di &Qt;</entry
><entry
>KUIViewerPart</entry>
</row>
<row>
<entry
>File grafi &DOT;</entry
><entry
>KGraphviewerPart</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2>

<sect2 id="preview-menu">
<title
>Struttura del menu</title>
<variablelist>

<varlistentry id="view-toolviews-show-preview">
<term
><menuchoice
><guimenu
>Visualizza</guimenu
><guisubmenu
>Viste degli strumenti</guisubmenu
><guimenuitem
>Mostra anteprima</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Mostra o nasconde in una barra laterale l'anteprima del documento di &kate;.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="preview-interface">
<title
>Interfaccia</title>
<para
>I pulsanti nella parte alta della finestra dell'anteprima forniscono queste azioni: </para>
<itemizedlist>
<listitem>
<para
>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.</para>
</listitem>
<listitem>
<para
>Abilita o disabilita l'aggiornamento del contenuto dell'anteprima del documento corrente</para>
</listitem>
<listitem>
<para
>Aggiorna manualmente il contenuto dell'anteprima del documento corrente</para>
</listitem>
<listitem>
<para
>Un menu a discesa con delle azioni dall'estensione &kparts;</para>
</listitem>
</itemizedlist>
</sect2>

</sect1>

<sect1 id="kate-application-plugin-documentswitcher">

<title
>Estensione per il selettore dei documenti</title>

<sect2 id="documentswitcher-menu">
<title
>Struttura del menu</title>

<variablelist>

<varlistentry id="view-documentswitcher">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Tab;</keycombo
> </shortcut
> <guimenu
>Visualizza</guimenu
> <guisubmenu
>Ultime viste usate</guisubmenu
> </menuchoice
></term>
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Shift;&Tab;</keycombo
> </shortcut
> <guimenu
>Visualizza</guimenu
> <guisubmenu
>Ultime viste usate (Opposto)</guisubmenu
> </menuchoice
></term>
<listitem>

<para
><action
>Apre</action
> una lista con i documenti visualizzati di recente:</para>

<screenshot id="screenshot-documentswitcher">
<screeninfo
>Documenti visualizzati di recente</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="documentswitcher.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

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

<para
>Tieni premuta la scorciatoia <keycombo action="simul"
>&Ctrl;&Tab;</keycombo
> 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. </para>
</listitem>
</varlistentry>

</variablelist>

</sect2>

</sect1>


<sect1 id="kate-application-plugin-fsbrowser">

<title
>Selettore dei file</title>

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

<sect2 id="fsbrowser-menu">
<title
>Struttura del menu</title>
<variablelist>

<varlistentry id="view-toolviews-show-filebrowser">
<term
><menuchoice
><guimenu
>Visualizza</guimenu
><guisubmenu
>Viste degli strumenti</guisubmenu
><guimenuitem
>Mostra il selettore dei file</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Mostra o nasconde il selettore dei file di &kate;.</para>
</listitem>
</varlistentry>

</variablelist>
</sect2>

<sect2 id="fsbrowser-interface">
<title
>Interfaccia</title>

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

<variablelist>
<varlistentry>
<term
>Una barra degli strumenti</term>
<listitem>
<para
>Questa contiene i pulsanti standard per la selezione:</para>
<variablelist>
<varlistentry>
<term
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="go-previous-22.png" format="PNG"/></imageobject
></inlinemediaobject
> Indietro</guiicon
></term>
<listitem
><para
>Provoca l'esecuzione del comando <command
>cd</command
> nella cartella precedente nella cronologia. Questo pulsante è disabilitato se la cartella in questione non esiste.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="go-next-22.png" format="PNG"/></imageobject
></inlinemediaobject
> Avanti</guiicon
></term>
<listitem
><para
>Provoca l'esecuzione del comando <command
>cd</command
> nella cartella successiva nella cronologia. Questo pulsante è disabilitato se la cartella in questione non esiste.</para
></listitem>
</varlistentry>
<!--varlistentry>
<term
><guibutton
>Parent Folder</guibutton
></term>
<listitem
><para
>This will cause the folder view to <command
>cd</command
> to the immediate parent of the currently displayed
folder if possible.</para
></listitem>
</varlistentry-->
<varlistentry>
<term
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="bookmarks-22.png" format="PNG"/></imageobject
></inlinemediaobject
> Segnalibri</guiicon
></term>
<listitem
><para
>Apre un sotto-menu da cui puoi modificare o aggiungere i segnalibri, e anche aggiungere una nuova cartella di segnalibri.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="system-switch-user-22.png" format="PNG"/></imageobject
></inlinemediaobject
> Cartella del documento attuale</guiicon
></term>
<listitem
><para
>Questo pulsante fa eseguire alla vista delle cartelle il comando <command
>cd</command
> 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.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="games-config-options-22.png" format="PNG"/></imageobject
></inlinemediaobject
> Opzioni</guiicon
></term>
<listitem>
<variablelist>
<varlistentry>
<term
><guimenuitem
>Vista breve</guimenuitem
></term>
<listitem
><para
>Mostra solo i nomi dei file.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Vista dettagliata</guimenuitem
></term>
<listitem
><para
>Visualizza il <guilabel
>Nome</guilabel
>, la <guilabel
>Data</guilabel
> e la <guilabel
>Dimensione</guilabel
> dei file.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Vista ad albero</guimenuitem
></term>
<listitem
><para
>Come la vista breve, ma le cartelle possono essere espanse per visualizzarne i contenuti.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Vista ad albero dettagliata</guimenuitem
></term>
<listitem
><para
>Anche questa permette di espandere le cartelle, ma mostra le colonne aggiuntive disponibili nella vista dettagliata.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Mostra i file nascosti</guimenuitem
></term>
<listitem
><para
>Mostra i file che sono normalmente nascosti dal &OS;.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Sincronizza automaticamente con il documento attuale</guimenuitem
></term>
<listitem
><para
>Quando questa opzione è abilitata il selettore dei file eseguirà automaticamente il comando <command
>cd</command
> nella cartella del documento attualmente aperto nell'area di modifica ogni volta che cambia.</para
></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>

<varlistentry>
<term
>Una voce per la posizione</term>
<listitem>
<para
>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.</para>

<para
>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.</para>
<tip
><para
>Il campo &URL; ha il completamento automatico dei nomi delle cartelle, che può essere impostato utilizzando il &RMB; sul campo di inserimento.</para
></tip>
</listitem>
</varlistentry>

<varlistentry>
<term
>Una vista delle cartelle</term>
<listitem
><para
>Questa è una vista standard delle cartelle di &kde;.</para
></listitem>
</varlistentry>

<varlistentry>
<term
>Una voce di filtro</term>
<listitem>
<para
>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: <userinput
>*.cpp *.h *.moc</userinput
>.</para>
<para
>Inserisci un asterisco singolo <userinput
>*</userinput
> per visualizzare tutti i file.</para>
<para
>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 <guibutton
>Pulisci il testo</guibutton
>, che si trova alla sinistra del pulsante di auto-completamento a freccia.</para>
</listitem>
</varlistentry>

</variablelist>
</sect2>


<sect2 id="fsbrowser-config">
<title
>Configurazione</title>

<para
>Questa estensione può essere configurata nella pagina del <guilabel
>Selettore dei file</guilabel
> della <link linkend="configuring-kate-configdialog"
>configurazione di &kate;</link
>.</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Barra degli strumenti</guilabel
></term>
<listitem
><para
>Configura i pulsanti della barra del selettore dei file spostando quelli che desideri nell'elenco <guilabel
>Azioni selezionate</guilabel
>, e ordinali con i pulsanti a freccia di fianco all'elenco.</para>
 </listitem>
</varlistentry>

</variablelist>
</sect2>
</sect1>

<sect1 id="kate-application-plugin-documents">
<title
>L'elenco dei documenti</title>
<!-- https://kate-editor.org/2010/09/12/kate-tree-view-plugin-update/-->
<sect2 id="documents-intro">
<title
>Introduzione</title>

<para
><indexterm
><primary
>Elenco dei documenti</primary
></indexterm
> 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 <guiicon
>dischetto</guiicon
> alla loro sinistra.</para>

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

<simplelist>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="document-new-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Crea un nuovo documento</member>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="document-open-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Apre un documento esistente</member>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="go-up-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
>Il documento precedente</member>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="go-down-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Il documento successivo</member>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="document-save-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Salva il documento attuale</member>
<member
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="document-save-as-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> Salva il documento attuale con un nuovo nome</member>
</simplelist>

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

<para
>Se due o più file (che si trovano in cartelle diverse) hanno lo stesso nome e sono aperti nella <guimenuitem
>Modalità elenco</guimenuitem
>, al nome del secondo file e dei successivi verrà anteposto un <quote
>(2)</quote
>, e così via. Il suggerimento del file ti mostrerà comunque il suo nome con il percorso completo, permettendoti così di scegliere quello che desideri.</para
> <para
>Fai clic sul nome del documento nella lista per visualizzare un documento nel riquadro attivo.</para>

<para
>Il menu contestuale ha alcune azioni in comune con il menu <guimenu
>File</guimenu
>.</para>

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

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

<varlistentry>
<term
><guimenuitem
>Nome documento</guimenuitem
></term>
<listitem
><para
>Elenca i documenti alfabeticamente per nome.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guimenuitem
>Percorso documenti</guimenuitem
></term>
<listitem
><para
>Elenca i documenti alfabeticamente in base al loro percorso.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guimenuitem
>Ordine di apertura</guimenuitem
></term>
<listitem
><para
>Elenca i documenti in base all'ordine di apertura.</para
></listitem>
</varlistentry>

</variablelist>

</para>

<para
>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 <link linkend="config-dialog-documents"
>Documenti</link
> del pannello di configurazione.</para>
<para
>La posizione predefinita dell'elenco dei documenti nella finestra di &kate; è alla sinistra dell'area dell'editor.</para>

</sect2>

<sect2 id="documents-menus">
<title
>Struttura del menu</title>

<variablelist>

<varlistentry id="view-document-previous">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Alt;&Up;</keycombo
> </shortcut
> <guimenu
>Visualizza</guimenu
> <guimenuitem
>Documento precedente</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Apre il documento visualizzato sopra il documento attualmente aperto nell'elenco dei documenti.</para>
</listitem>
</varlistentry>

<varlistentry id="view-document-next">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Alt;&Down;</keycombo
> </shortcut
> <guimenu
>Visualizza</guimenu
> <guimenuitem
>Documento successivo</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Apre il documento visualizzato sotto il documento attualmente aperto nell'elenco dei documenti.</para>
</listitem>
</varlistentry>

<varlistentry id="view-active">
<term
><menuchoice
><guimenu
>Visualizza</guimenu
><guimenuitem
>Mostra attivo</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Mostra il documento attualmente aperto nell'elenco dei documenti.</para>
</listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2 id="config-dialog-documents">
<title
>Configurazione</title>

<variablelist>
<varlistentry>
<term
><guilabel
>Sfumature di sfondo</guilabel
></term>
<listitem
><para
>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.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Ordina per</guilabel
></term>
<listitem
><para
>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.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Modalità di visualizzazione</guilabel
></term>
<listitem
><para
>Ci sono due opzioni che influenzano la visualizzazione della vista dei documenti: l'opzione <guilabel
>Vista ad albero</guilabel
> li visualizzerà in un albero, sotto le cartelle in cui si trovano, mentre l'opzione <guilabel
>Vista a elenco</guilabel
> li visualizzerà come un semplice elenco. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Mostra il percorso completo</guilabel
></term>
<listitem
><para
>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.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Mostra la barra degli strumenti</guilabel
></term>
<listitem
><para
>Quando sono abilitate Vista ad albero e questa opzione, sull'elenco dei documenti viene visualizzata una barra degli strumenti con azioni come <guibutton
>Salva</guibutton
>. Deselezionala se la barra degli strumenti dovrebbe invece essere nascosta.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Mostra il pulsante Chiudi</guilabel
></term>
<listitem
><para
>Se questa opzione è abilitata, &kate; al passaggio col mouse mostrerà un pulsante di chiusura per i documenti aperti.</para
></listitem>
</varlistentry>

</variablelist>

</sect2>

</sect1>

<sect1 id="kate-application-plugin-gdb">
<!--https://kate-editor.org/2011/06/23/kate-plugin-updates-part-2/-->
<sect1info>
<authorgroup>
<author
><firstname
>Martin</firstname
> <surname
>Gergov</surname
></author>
<author
>&TC.Hollingsworth; &TC.Hollingsworth.mail;</author>
</authorgroup>
</sect1info>
<title
>Estensione per &gdb;</title>

<sect2 id="gdb-intro">
<title
>Introduzione</title>

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

<important>
<para
>Una precedente esperienza con &gdb; è caldamente raccomandata; visita <ulink url="https://www.gnu.org/software/gdb/"
>il sito Web di &gdb;</ulink
> per maggiori informazioni sul suo uso.</para>
</important>

<para
>Puoi abilitare l'estensione per &gdb; nella <link linkend="config-dialog-plugins"
>sezione delle estensioni della configurazione di &kate;</link
>.</para>

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

<tip>
<para
>Se compili usando &gcc; o <command
>g++</command
>, potresti aver bisogno di usare l'argomento da riga di comando <command
><parameter
>-ggdb</parameter
></command
>. </para>
</tip>

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

</sect2>

<sect2 id="gdb-menus">
<title
>Menu e struttura della barra degli strumenti</title>

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

<variablelist>

<varlistentry id="gdb-menus-show-debug-view">
<term
><menuchoice
><guimenu
>Visualizza</guimenu
><guisubmenu
>Viste degli strumenti</guisubmenu
><guimenuitem
>Mostra Vista di debug</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Mostra una vista contenente l'output di &gdb;, la riga di comando di &gdb; usata, ed altre impostazioni.</para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-show-locals-and-stack">
<term
><menuchoice
><guimenu
>Visualizza</guimenu
><guisubmenu
>Viste degli strumenti</guisubmenu
><guimenuitem
>Mostra locali e pila</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Mostra un elenco di tutte le variabili attualmente in memoria, i loro valori ed un backtrace di &gdb;. </para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-targets">
<term
><menuchoice
><guimenu
>Debug</guimenu
><guimenuitem
>Obiettivi</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Un sotto-menu contenente un elenco di obiettivi (eseguibili). </para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-start">
<term
><menuchoice
><guimenu
>Debug</guimenu
><guimenuitem
>Avvia il debug</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Avvia &gdb; con un obiettivo.</para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-kill">
<term
><menuchoice
><guimenu
>Debug</guimenu
><guimenuitem
>Termina / interrompi il debug</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Interrompe &gdb;.</para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-restart">
<term
><menuchoice
><guimenu
>Debug</guimenu
> <guimenuitem
>Riavvia il debug</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Riavvia &gdb;.</para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-break">
<term
><menuchoice
><guimenu
>Debug</guimenu
><guimenuitem
>Commuta punto di interruzione / interrompi</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Imposta un punto di interruzione alla posizione attuale del cursore. </para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-step-in">
<term
><menuchoice
><guimenu
>Debug</guimenu
> <guimenuitem
>Entra</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Esegui l'istruzione attuale (sarà effettuato il debug della chiamata a funzione). </para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-step-over">
<term
><menuchoice
><guimenu
>Debug</guimenu
> <guimenuitem
>Passa oltre</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Esegui l'istruzione attuale (non sarà effettuato il debug della chiamata a funzione).</para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-step-out">
<term
><menuchoice
><guimenu
>Debug</guimenu
> <guimenuitem
>Esci</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Riprende l'esecuzione fino alla conclusione del programma in esecuzione.</para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-move-pc">
<term
><menuchoice
><guimenu
>Debug</guimenu
> <guimenuitem
>Sposta contatore dei programmi</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Sposta contatore dei programmi (prossima esecuzione).</para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-run-to-cursor">
<term
><menuchoice
><guimenu
>Debug</guimenu
> <guimenuitem
>Esegui fino al cursore</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Esegue il programma fino a raggiungere l'attuale posizione del cursore. </para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-continue">
<term
><menuchoice
><guimenu
>Debug</guimenu
><guimenuitem
>Continua</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Ignora qualsiasi punto di interruzione ed esegue il programma fino alla sua conclusione (corretta o meno).</para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-print-value">
<term
><menuchoice
><guimenu
>Debug</guimenu
><guimenuitem
>Stampa valore</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Stampa il valore della variabile attualmente indicata dal cursore.</para
></listitem>
</varlistentry>

<varlistentry id="gdb-menus-toolbar">
<term
><menuchoice
><guimenu
>Impostazioni</guimenu
> <guisubmenu
>Barre mostrate</guisubmenu
> <guimenuitem
>Estensione &gdb;</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Mostra la barra degli strumenti di debug.</para
></listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2 id="gdb-debug-view">
<title
>Vista di debug</title>

<para
>La vista dello strumento <guilabel
>Vista di debug</guilabel
> è composta da diverse schede: </para>

<variablelist>

<varlistentry>
<term
><guilabel
>Uscita di &gdb;</guilabel
></term>
<listitem>
<para
>Contiene l'uscita di &gdb; ed una riga di comando per &gdb;.</para>

<screenshot id="screenshot-gdb-output">
<screeninfo
>La scheda Uscita</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="gdb-output.png" format="PNG"/></imageobject>
<textobject
><phrase
>La scheda Uscita.</phrase
></textobject>
<caption
><para
>La scheda <guilabel
>Uscita</guilabel
> mostra il risultato generato sulla console da una sessione di debug.</para
></caption>
</mediaobject>
</screenshot>

</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Impostazioni</guilabel
></term>
<listitem>
<variablelist>

<varlistentry>
<term
><guilabel
>Eseguibile</guilabel
></term>
<listitem
><para
>Percorso dell'obiettivo (l'eseguibile) su cui eseguire il debug.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Cartella di lavoro</guilabel
></term>
<listitem
><para
>La cartella di lavoro attuale fornita all'obiettivo. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Argomenti</guilabel
></term>
<listitem
><para
>Argomenti passati al programma.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Mantieni attivazione</guilabel
></term>
<listitem
><para
>Mantiene attiva la riga di comando di &gdb;.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Ridireziona I/O</guilabel
></term>
<listitem
><para
>Apre una nuova scheda <guilabel
>I/O</guilabel
> nella <guilabel
>Vista di debug</guilabel
>, dove puoi vedere l'uscita ed inserire gli ingressi al programma in esecuzione.</para
></listitem>
</varlistentry>

</variablelist>

<screenshot id="screenshot-gdb-settings">
<screeninfo
>La finestra delle impostazioni</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="gdb-settings.png" format="PNG"/></imageobject>
<textobject
><phrase
>La finestra delle impostazioni</phrase
></textobject>
<caption
><para
>La finestra <guilabel
>Impostazioni</guilabel
>, che mostra la configurazione di una sessione di debug.</para
></caption>
</mediaobject>
</screenshot>

</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>I/O</guilabel
></term>
<listitem>
<para
>Contiene un'area che mostra l'uscita del programma attuale, ed una riga di comando dalla quale puoi passare degli ingressi.</para>

<screenshot id="screenshot-gdb-io">
<screeninfo
>La scheda I/O</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="gdb-io.png" format="PNG"/></imageobject>
<textobject
><phrase
>La scheda I/O.</phrase
></textobject>
<caption
><para
>La scheda <guilabel
>I/O</guilabel
>, che mostra l'uscita di un semplice programma di prova.</para
></caption>
</mediaobject>
</screenshot>

</listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2 id="gdb-other">
<title
>Pila di chiamate e Locali</title>

<para
>La vista dello strumento <guilabel
>Pila delle chiamate</guilabel
> contiene un elenco di backtrace formattati restituiti da &gdb;.</para>

<screenshot id="screenshot-gdb-call-stack">
<screeninfo
>La vista dello strumento Pila delle chiamate di &gdb;</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="gdb-call-stack.png" format="PNG"/></imageobject>
<textobject
><phrase
>La vista dello strumento Pila delle chiamate.</phrase
></textobject>
<caption
><para
>La vista dello strumento <guilabel
>Pila delle chiamate</guilabel
> dell'estensione &gdb;. </para
></caption>
</mediaobject>
</screenshot>

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

<screenshot id="screenshot-gdb-locals">
<screeninfo
>La vista dello strumento Locali di &gdb;</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="gdb-locals.png" format="PNG"/></imageobject>
<textobject
><phrase
>La vista dello strumento Locali.</phrase
></textobject>
<caption
><para
>La vista dello strumento <guilabel
>Locali</guilabel
> dell'estensione &gdb;. </para
></caption>
</mediaobject>
</screenshot>

</sect2>

<sect2 id="gdb-ack">
<title
>Ringraziamenti e riconoscimenti</title>

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

</sect2>

</sect1>

<sect1 id="kate-application-plugin-projects">
<!--https://kate-editor.org/2012/11/02/using-the-projects-plugin-in-kate -->

<title
>Estensione di progetto</title>

<sect2 id="project-intro">
<title
>Introduzione</title>

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

<orderedlist>
<listitem
><para
>Fornire una vista strutturata dei file</para
></listitem>
<listitem
><para
>Rendere semplice e molto veloce l'apertura ed il passaggio tra i vari progetti</para
></listitem>
<listitem
><para
>Supportare la ricerca e la sostituzione nel progetto</para
></listitem>
<listitem
><para
>Fornire un semplice completamento automatico</para
></listitem>
<listitem
><para
>Rendere semplice l'apertura rapida dei file del progetto</para
></listitem>
<listitem
><para
>Supportare la compilazione dei progetti</para
></listitem>
</orderedlist>
</sect2>

<sect2 id="project-view">
<title
>Mostrare una vista strutturata dei file</title>

<para
>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:</para>

<screenshot id="screenshot-project-view">
<screeninfo
>Vista di progetto</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="project-view.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

<para
>Come puoi vedere, <quote
>Kate</quote
> è 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 <filename class="extension"
>.ui</filename
> con Qt Designer.</para>
<para
>Puoi filtrare le voci: digita una parte del nome del file che stai cercando nella barra di ricerca che è in fondo alla lista.</para>
</sect2>

<sect2 id="project-switch">
<title
>Passaggio ad un altro progetto</title>

<para
>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 <filename
>.kateproject</filename
>: se lo trova, il progetto viene caricato automaticamente.</para>

<para
>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.</para>

</sect2>

<sect2 id="project-search-replace">
<title
>Ricerca e sostituzione nei progetti</title>

<para
>&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:</para>

<screenshot id="screenshot-projects-search">
<screeninfo
>Ricerca nei progetti</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="project-search.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

</sect2>

<sect2 id="project-autocompletition">
<title
>Completamento automatico semplice</title>

<para
>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 <filename class="directory"
>/tmp</filename
>; questo file viene poi utilizzato per popolare la finestra a comparsa del completamento automatico di &kate;.</para>

<para
>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.</para>

<screenshot id="screenshot-completion-search">
<screeninfo
>Completamento nei progetti</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="project-completition.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

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

</sect2>

<sect2 id="project-build">
<title
>Supporto alla compilazione del progetto</title>

<para
>Un'altra caratteristica è quella di offrire supporto all'<link linkend="projects-build-support"
>Estensione di compilazione</link
>, che così viene configurata correttamente.</para>

</sect2>

<sect2 id="project-create">
<title
>Creare i progetti</title>

<sect3 id="project-autoload">
<!--https://kate-editor.org/2014/10/12/autoloading-projects-plugin-kate-5/-->
<title
>Caricare i progetti automaticamente</title>

<para
>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): </para>

<screenshot id="screenshot-project-configure">
<screeninfo
>Configurazione dell'estensione dei progetti</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="project-configure.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

</sect3>

<sect3 id="project-manual">
<title
>Creare i progetti manualmente</title>
<para
>Devi solo creare un file <filename
>.kateproject</filename
> nella cartella principale del progetto. Ad esempio, il file <filename
>.kateproject</filename
> di <quote
>Kate</quote
> apparirà così: </para>

<screen
>{
  "name": "Kate",
  "files": [
    {
      "git": 1
    }
  ]
}
</screen>

<para
>Il contenuto del file è scritto con la sintassi &JSON;: il nome del progetto è <quote
>Kate</quote
>, ed i file in esso contenuti dovrebbero essere letti da &git;. </para>

<para
>Al posto di <literal
>git</literal
> sono supportati anche subversion, attraverso <literal
>svn</literal
>, e mercurial con <literal
>hg</literal
>. Se non vuoi leggere dei file da un sistema di controllo di versione puoi semplicemente invocare kate dalla riga di comando come: <screen>
kate /path/to/folder
</screen
> oppure puoi caricare ricorsivamente i file dalle cartelle, come di seguito: </para>

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

<para
>Qui le sotto-cartelle e i filtri definiscono qual è parte del progetto. Puoi anche mischiare controllo della versione e file in base ai filtri. I file nascosti non verranno recuperati se l'opzione <code
>"hidden"</code
> è 0. <code
>"exclude_patterns"</code
> è un elenco di modelli di espressioni regolari che possono essere usati per escludere file e cartelle dall'albero del progetto. In questo esempio verranno esclusi tutti i file e le cartelle in una cartella <filename
>build</filename
>. </para>

<para id="projects-build-support"
>Se vuoi aggiungere il supporto per la compilazione, allora puoi scrivere un <filename
>.kateproject</filename
> come questo:</para>

<screen
>{
  "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"
      }
    ]
  }
}
</screen>

<para
>Gli obiettivi specificati sopra appariranno quindi nell'<link linkend="kate-application-plugin-build"
>estensione di compilazione </link
> sotto <emphasis role="bold"
> "Obiettivi dell'estensione di progetto	"</emphasis
>. Se il vettore <code
>"targets"</code
> è specificato, allora <code
>"build"</code
>, <code
>"clean"</code
> and <code
>"install"</code
> vengono ignorati. Ogni elemento nel vettore specifica un obiettivo:<code
>"name"</code
> è il nome dell'obiettivo, <code
>"build_cmd"</code
> verrà utilizzato per compilare l'obiettivo, <code
>"run_cmd"</code
> verrà usato per eseguire l'obiettivo. Il più importante di tutti è <code
>"directory"</code
>, che è dove verrà eseguito il comando. </para>

<para
>Nel caso tu abbia un file <filename
>.kateproject</filename
> gestito da un sistema di controllo versione, ma avessi bisogno di modificare la configurazione per un particolare spazio di lavoro, puoi salvare queste modifiche in un file separato chiamato <filename
>.kateproject.local</filename
>. Il contenuto di questo file avrà la precedenza su <filename
>.kateproject</filename
>. </para>

</sect3>

</sect2>

<sect2 id="project-current">
<title
>Progetto attuale</title>

<para
>Usando <menuchoice
><shortcut
><keycombo action="simul"
>&Alt;<keycap
>1</keycap
></keycombo
></shortcut
> <guimenu
>Progetti</guimenu
><guimenuitem
>Vai a</guimenuitem
></menuchoice
> potrai aprire il <guilabel
>Progetto attuale</guilabel
>, che è visualizzato in basso nella finestra dell'editor ed ha quattro schede:</para>

<screenshot id="screenshot-project-current">
<screeninfo
>Progetto attuale</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="project-current-analysis.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

<variablelist>

<varlistentry>
<term>
<guimenu
>Pannello del terminale</guimenu>
</term>
<listitem>
<para
>Un <link linkend="kate-application-plugin-konsole"
>Emulatore di terminale</link
> che parte dalla cartella principale del progetto.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<guimenu
>Indice del codice</guimenu>
</term>
<listitem>
<para
>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.</para>
<para
>Seleziona una voce nella lista per saltare nel file sorgente alla riga corrispondente.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<guimenu
>Analisi del codice</guimenu>
</term>
<listitem>
<para
>Fai clic su <guilabel
>Inizia analisi</guilabel
> per iniziare un'analisi statica del codice C e C++ usando <command
>cppcheck</command
>, e per generare un rapporto mostrante il nome del file, il numero delle righe, la gravità (stile, avvisi &etc;) e il problema trovato.</para>
<para
>Seleziona una voce nella lista per saltare nel file sorgente alla riga corrispondente.</para>
</listitem>
</varlistentry>
<!--FIXME options for cppcheck? configurable?-->
<varlistentry>
<term>
<guimenu
>Note</guimenu>
</term>
<listitem>
<para
>Il testo inserito in questa scheda sarà salvato nel file <filename
>.kateproject.notes</filename
>.</para>
</listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2 id="projects-menu">
<title
>Il menu Progetti</title>

<para
>Il menu <guimenu
>Progetti</guimenu
> ti permette di passare tra i progetti attualmente aperti. Viene visualizzato dall'estensione dei progetti.</para>

<variablelist>

<varlistentry id="projects-back">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Alt;&Left;</keycombo
> </shortcut
> <guimenu
>Progetti</guimenu
> <guimenuitem
>Indietro</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Passa al progetto precedente.</para>
</listitem>
</varlistentry>

<varlistentry id="projects-forward">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Alt;&Right;</keycombo
> </shortcut
> <guimenu
>Progetti</guimenu
> <guimenuitem
>Avanti</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Passa al progetto successivo</para>
</listitem>
</varlistentry>

<varlistentry id="projects-goto">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Alt;<keycap
>1</keycap
></keycombo
> </shortcut
> <guimenu
>Progetti</guimenu
><guimenuitem
>Vai a</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Apre la vista del <guilabel
>Progetto attuale</guilabel
> nella parte bassa della finestra di modifica.</para>
</listitem>
</varlistentry>

</variablelist>

</sect2>
<!--
context menu Project->Lookup:xxx
-->

</sect1>

<!--FIXME Replicode
Projects Replicode run / stop-->

<sect1 id="kate-application-plugin-lspclient">
<title
>Estensione client LSP</title>

<para
>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 <ulink url="https://microsoft.github.io/language-server-protocol/"
>Language Server Protocol</ulink
>.</para>

<para
>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. </para>

<sect2 id="lspclient-menu">
<title
>Struttura del menu</title>

<para
>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. </para>

<variablelist>

<varlistentry id="lspclient-definition">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Vai alla definizione</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/definition] Vai alla definizione attuale del simbolo.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-declaration">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Vai alla dichiarazione</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/declaration] Vai alla dichiarazione attuale del simbolo.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-typedefinition">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Vai alla definizione del tipo</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/definition] Vai alla definizione del tipo di simbolo corrente.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-references">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Trova riferimenti</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/references] Trova i riferimenti al simbolo attuale.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-implementation">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Trova implementazioni</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/references] Trova le implementazioni del simbolo corrente.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-highlight">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Evidenzia</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/documentHighlight] Evidenzia i riferimenti ai simboli correnti nel documento attuale.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-hover">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Finestrella informativa</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/hover] Finestrella informativa del simbolo attuale.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-format">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Formatta</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/formatting] [textDocument/rangeFormatting] Formatta l'attuale documento o l'attuale selezione.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-rename">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Rinomina</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/rename] Rinomina il simbolo attuale.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-quick-fix">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Soluzione rapida</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/codeAction, workspace/executeCommand] Calcola e applica una soluzione rapida per una diagnostica sulla posizione (o sulla linea) corrente.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-completion-documentation">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Mostra la documentazione di completamento selezionata</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Mostra la documentazione dell'elemento selezionato nell'elenco di completamento.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-signature-help">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Abilita l'aiuto sulle firme con l'auto-completamento</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Mostra anche l'aiuto sulle firme nell'elenco di completamento.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-declaration-references">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Includi la dichiarazione nei riferimenti</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Richiede di includere la dichiarazione del simbolo quando ne vengono richiesti i riferimenti.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-completion-parens">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Aggiungi le parentesi al completamento della funzione</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Aggiunge automaticamente una coppia di parentesi dopo il completamento di una funzione.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-show-hover">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Mostra la finestrella informativa</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Mostra la finestrella informativa sul cursore al passaggio del mouse. Indipendentemente da questa impostazione la richiesta può sempre essere inizializzata manualmente. </para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-format-typing">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Formattazione durante la digitazione</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[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. </para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-incremental-sync">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Sincronizzazione incrementale del documento</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Invia delle modifiche parziali del documento per aggiornare il server piuttosto che l'intero documento di testo (se supportato).</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-highlight-goto">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Evidenzia posizione di arrivo</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Emette un segnale visivo transitorio dopo aver eseguito un arrivo in una posizione (di una definizione, di una dichiarazione, ecc).</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-diagnostics">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Mostra le notifiche di diagnostica</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>[textDocument/publishDiagnostics] Elabora e mostra le notifiche di diagnostica inviate dal server.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-diagnostics-highlight">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Mostra i punti salienti della diagnostica</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Aggiungi i punti salienti del testo per gli intervalli indicati nella diagnostica.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-diagnostics-marks">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Mostra i segni di diagnostica</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Aggiungi segni di documento nelle righe indicate dalla diagnostica.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-diagnostics-tab">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Passa alla scheda di diagnostica</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Passa alla scheda diagnostica nell'estensione dello strumento visivo.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-close-non-diagnostics">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Chiudi tutte le schede non di diagnostica</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Chiude tutte le schede non diagnostiche (&eg; i riferimenti) nell'estensione dello strumento visivo.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-restart">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Riavvia server LSP</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Riavvia il server LSP del documento corrente.</para>
</listitem>
</varlistentry>

<varlistentry id="lspclient-restart-all">
<term
><menuchoice
><guimenu
>Client LSP</guimenu
> <guisubmenu
>Riavvia tutti i server LSP</guisubmenu
> </menuchoice
></term>
<listitem>
<para
>Ferma tutti i server LSP che saranno quindi (ri)avviati se necessario.</para>
</listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2 id="lspclient-go-to-symbol">
<title
>Supporto ai simboli di arrivo</title>
<para
>Il client LSP può aiutarti a saltare a ogni simbolo nel progetto o nel file corrente. Per saltare ai simboli nel file usa lo strumento visivo «Schema del simbolo del client LSP» nel bordo destro di Kate. Lo strumento visivo elenca tutti i simboli che sono trovati dal server nel documento corrente. </para>

<sect3 id="lspclient-symbol-outline-config">
<title
>Configurazione dello schema dei simboli del client LSP</title>

<para
>Per impostazione predefinita i simboli vengono ordinati in base alla loro occorrenza nel documento, ma potresti anche ordinarli alfabeticamente. Per farlo, clic destro sullo strumento visivo, poi spunta «Ordina alfabeticamente». </para>

<para
>Per impostazione predefinita lo strumento visivo mostra i simboli nella modalità ad albero, tuttavia puoi modificarla in un elenco dal menu contestuale. </para>
</sect3>

<sect3 id="lspclient-global-go-to-symbol">
<title
>Supporto ai simboli di arrivo globale</title>
<para
>Per saltare ai simboli nel progetto puoi aprire la finestra dei simboli di arrivo usando <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>p</keycap
></keycombo
>. La finestra è vuota quando si apre, ma non appena inizi a digitare comincia a mostrare i simboli corrispondenti. La qualità delle corrispondenze e della capacità di filtraggio dipende dal server che usi: ad esempio, clangd supporta il filtraggio approssimato, ma altri server potrebbero non supportarlo. </para>
</sect3>

</sect2>

<sect2 id="lspclient-extra">
<title
>Altre funzionalità</title>

<para
>Il comando per scambiare intestazione e sorgente è supportato. Per farlo in un progetto C o C++ puoi utilizzare l'opzione «Scambia sorgente e intestazione» sia dal menu contestuale che con la scorciatoia <keycombo action="simul"
><keycap
>F12</keycap
></keycombo
>. </para>

<para
>Puoi andare velocemente a un simbolo mettendo il mouse sopra di esso e poi premendo <keycombo action="simul"
>&Ctrl;</keycombo
> più il pulsante sinistro del mouse. </para>

</sect2>

<sect2 id="lspclient-configuration">
<title
>Configurazione</title>

<para
>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à sono incluse alcune configurazioni predefinite, che possono essere ispezionate nella pagina di configurazione dell'estensione. Per aiutare nella spiegazione di seguito, viene fornito un estratto di tale configurazione: </para>

<screen
>{
    "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.*$"
        }
    }
}
</screen>

<para
>Nota che ciascun «command» può essere un vettore o una stringa (nel qual caso viene divisa in un vettore), inoltre viene considerata anche una voce «global» di livello massimo (vicina a «server»), vedi sotto. Il binario specificato viene cercato nel solito modo, ad es usando <literal
>PATH</literal
>. Se è installato in posizioni personalizzate, allora l'ultimo metodo potrebbe dover essere esteso. In alternativa si può utilizzare un collegamento (simbolico) o uno script wrapper per una posizione nel <literal
>PATH</literal
> usuale. Come illustrato sopra, uno può specificare un «percorso» in cui cercare dopo averlo fatto nelle posizioni standard. </para>

<para
>Tutte le voci in «command», «root» e «path» sono soggette all'espansione delle variabili. </para>

<para
>«HighlightingModeRegex» viene usato per associare la modalità di evidenziazione usata da &kate; all'ID del linguaggio del server. Se non viene fornita alcuna espressione regolare, viene utilizzato l'id del linguaggio stesso. Se una voce «documentLanguageId» viene impostata a falso allora non viene fornito al server nessun ID del linguaggio all'apertura del documento. Questo potrebbe dare dei risultati migliori su alcuni server che sono più precisi nel determinare il tipo di documento piuttosto che farlo in base alla modalità di kate. </para>

<para
>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». Sia «completionTriggerCharacters» che «signatureTriggerCharacters» possono essere specificati come oggetto JSON col membro stringa «exclude» oppure «include». Questi verranno usati per, rispettivamente, escludere o aggiungere alcuni caratteri ai rispettivi attuatori impostati come forniti dal server. </para>

<para
>Vengono applicate varie fasi di sovrapposizione/unione; <itemizedlist>
<listitem>
<para
>la configurazione utente (caricata dal file) ha la precedenza sulla configurazione predefinita (interna)</para>
</listitem>
<listitem>
<para
>La voce «lspclient» in <filename
>.kateproject</filename
> nella configurazione del progetto ha la precedenza su quella qui sopra</para>
</listitem>
<listitem>
<para
>La voce «global» risultante viene utilizzata per integrare (non per sovrascrivere) ogni voce del server</para>
</listitem>
</itemizedlist>
</para>

<para
>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 <quote
>projectBase</quote
> (come determinato dall'<link linkend="kate-application-plugin-projects"
>estensione di progetto</link
>) se applicabile, oppure è relativo alla cartella del documento. Se non è stato specificato, e se «rootIndicationFileNames» è un vettore, allora viene selezionata una cartella genitore del documento corrente che contiene il file che è selezionato. In alternativa, se «root» non è specificato e «rootIndicationFilePatterns» è un vettore di modelli di file, viene selezionata una cartella genitore del documento corrente che corrisponde al modello di file che è selezionato. 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. </para>

<para
>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. </para>

<para
>Come menzionato sopra, molte voci sono soggette all'espansione delle variabili. Un'applicazione adatta di essa, associata ad uno «script adattatore», permette la personalizzazione in molte circostanze. Ad esempio, considera uno scenario di sviluppo in Python formato da più progetti (ad esempio repository git), ciascuno con le proprie impostazioni di ambiente virtuale (venv). Usando la configurazione predefinita il server del linguaggio Python non sarà a conoscenza dell'ambiente virtuale. A questo però si può rimediare col seguente approccio: per prima cosa, nell'estensione «User Server Settings» di LSPClient si può inserire il seguente frammento: </para>
<screen
>{
        "servers":
        {
                "python":
                {
                        "command": ["pylsp_in_env"], ["%{Project:NativePath}"],
                        "root": "."
                }
        }
}
</screen>
<para
>La voce principale qui sopra è relativa alla cartella del progetto e garantisce che sia stato avviato un server di lingua separato per ogni progetto. In questo caso ciò è necessario, in quanto ciascuno ha un ambiente virtuale distinto. </para>
<para
><filename
>pylsp_in_env</filename
> è un piccolo «script adattatore» che dovrebbe essere messo in <literal
>PATH</literal
>, col seguente contenuto (da sistemare): </para>
<screen
>#!/bin/bash
cd $1
# avvia il server (python-lsp-server) nell'ambiente virtuale
# (ad esempio con le impostazioni delle variabili dell'ambiente virtuale)
# quindi sorgente dell'ambiente virtuale
source XYZ
# il server e gli argomenti possono variare
exec myserver
</screen>


<sect3 id="lspclient-customization">
<title
>Configurazione del server LSP</title>

<para
>Ogni specifico server LSP ha il suo modo di gestire le personalizzazioni e può utilizzare mezzi specifici per linguaggio/strumento per la configurazione, &eg; <filename
>tox.ini</filename
> (per python), <filename
>.clang-format</filename
> per lo stile di formattazione C++. Queste configurazioni possono quindi essere anche usate da altri strumenti non LSP, ad esempio da <application
>tox</application
> o da <application
>clang-format</application
>. Inoltre, alcuni server LSP caricano la configurazione anche da file personalizzati, &eg; da <filename
>.ccls</filename
>. 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. </para>

<para
>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. </para>

<screen
>{
    "servers": {
        "python": {
            "settings": {
                "pyls": {
                    "plugins": {
                        "pylint": {
                            "enable": true
                        }
                    }
                }
            }
        }
    }
}
</screen>

<para
>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 <ulink url="https://github.com/neoclide/coc.nvim/wiki/Language-servers"
>documentazione di un altro client LSP</ulink
> 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. </para>

</sect3>

<sect3 id="lspclient-format-on-save">
<title
>Formattazione al salvataggio del server LSP</title>

<para
>Puoi abilitare «Formattazione al salvataggio» dalle impostazioni LSP nella finestra di configurazione. </para>

</sect3>

<sect3 id="lspclient-diagnostics-suppression">
<title
>Soppressione diagnostica del server LSP</title>

<para
>Può accadere che vengano riportate diagnostiche che non sono realmente utili. Questo può essere un po' problematico, specialmente se ce ne sono molte (e spesso dello stesso tipo). In alcuni casi ciò potrebbe essere ottimizzato con dei mezzi specifici del linguaggio (del server). Ad esempio, il <ulink url="https://clangd.llvm.org/config.html"
>meccanismo di configurazione clangd</ulink
> permette l'ottimizzazione di alcuni aspetti di diagnostica. In generale, tuttavia, potrebbe non essere evidente come farlo, oppure non affatto possibile nei modi desiderati a causa di limitazioni del server o di bug. </para>

<para
>Come tale, l'estensione supporta la soppressione della diagnostica in modo simile ad esempio alle soppressioni in Valgrind. La configurazione più raffinata può essere fornita da una chiave «suppressions» nel &JSON; (unito) di configurazione. </para>

<screen
>{
    "servers": {
        "c": {
            "suppressions": {
                "rulename": ["filename", "pippo"],
                "clang_pointer": ["", "clang-tidy", "clear_pointer"],
            }
        }
    }
}
</screen>

<para
>Ogni regola (valida) ha un nome arbitrario ed è definita da un vettore di lunghezza 2 o 3 che fornisce un'espressione regolare da confrontare al nome del file (completo), un'altra da confrontare con la diagnostica (testo) e da un'altra facoltativa da confrontare con (l'intervallo del codice sorgente del) testo a cui si applica la diagnostica. </para>

<para
>Oltre alla configurazione particolareggiata qui sopra, il menu contestuale nella scheda della diagnostica supporta anche l'aggiunta e la rimozione delle soppressioni che corrispondono esattamente ad una diagnostica particolare (testo), sia a livello globale (qualsiasi file) che locale (il file specifico in questione). Queste soppressione sono memorizzate e vengono caricate dalla configurazione della sessione. </para>

</sect3>

<sect3 id="lspclient-troubleshooting">
<title
>Risoluzione dei problemi col server LSP</title>

<para
>Una cosa è descrivere come configurare un server LSP (personalizzato) per un linguaggio particolare, un'altra è avere un server funzionante senza problemi; di solito, per fortuna, il caso è quest'ultimo. A volte possono tuttavia sorgere dei problemi, sia a causa di qualche "sciocca" configurazione errata che di problemi ben più fondamentali con il server stesso. Quest'ultimo caso potrebbe manifestarsi ad esempio in un doppio tentativo di avvio del server, come riportato nella scheda Output &kate;. Questa ha però unicamente lo scopo di trasmettere i messaggi o i progressi di alto livello piuttosto che fornire una diagnostica dettagliata, e ancor meno per quello che in realtà è un altro processo (il server LSP). </para>

<para
>Il modo usuale di diagnosticare ciò è quello di aggiungere alcuni flag al comando di avvio (del server del linguaggio) che abilitano la registrazione (aggiuntiva) verso qualche file o standard error, cosa che non accade per impostazione predefinita. Se ora &kate; viene avviato dalla riga di comando si potrebbe essere in grado di vedere più chiaramente quello che potrebbe andare storto. </para>

<para
>Può essere informativo esaminare anche lo scambio di protocollo tra il client LSP di &kate; e il server LSP. Di nuovo, quest'ultimo di solito ha modi per tracciarlo. Il client LSP in genere fornisce (a stderr) un tracciamento di debug aggiuntivo se &kate; viene invocato con <literal
>QT_LOGGING_RULES=katelspclientplugin=true</literal
> adeguatamente esportato tramite <literal
>export</literal
>. </para>

</sect3>

</sect2>

<!--TODO: Supported languages, describe features and actions a bit -->

<!--<screenshot id="screenshot-rust-configuration">
<screeninfo
>Rust Configuration</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="rust-configuration.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

<para
>Edit the command to run <ulink url="https://github.com/phildawes/racer"
>Racer</ulink
>,
an utility intended to provide Rust code completion for editors.</para>

<para
>You also need the Rust source code and have to provide the path to the source tree.
</para>

<para
>While typing code a popup list appears with items for completion:
</para>

<screenshot id="screenshot-rust-completion">
<screeninfo
>Rust Completion</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="rust-completion.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

<para
>In addition to code completion popups, the plugin also installs
a <guimenuitem
>Go to Definition</guimenuitem
> action in the <guimenu
>Edit</guimenu
> menu and
in the context menu. You can configure a keyboard shortcut for it as well.
</para>

<para
>This action will open the document containing the definition if needed, activate
its view and place the cursor at the start of the definition.
</para
>-->

</sect1>

<sect1 id="kate-application-plugin-searchinfiles">
<sect1info>
<authorgroup
><author
>&TC.Hollingsworth; &TC.Hollingsworth.mail; </author
></authorgroup>
</sect1info>
<title
>Ricerca e sostituzione</title>

<sect2 id="searchinfiles-intro">
<title
>Introduzione</title>
<para
>L'estensione di ricerca e sostituzione di &kate; ti consente di cercare del testo o delle <ulink url="help:/katepart/regular-expressions.html"
>espressioni regolari</ulink
> 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.</para>

</sect2>

<sect2 id="searchinfiles-ui">
<title
>Interfaccia</title>

<sect3 id="searchinfiles-ui-query">
<title
>Interrogazione di ricerca</title>

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

<variablelist>

<varlistentry>
<term
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="tab-new-22.png" format="PNG"/>
</imageobject
></inlinemediaobject
></guiicon
></term>
<listitem
><para
>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. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="games-config-options-22.png" format="PNG"/>
</imageobject
></inlinemediaobject
></guiicon
></term>
<listitem
><para
>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. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Trova</guilabel
></term>
<listitem
><para
>Qui è dove scrivi quello che vuoi cercare. Puoi inserire del testo normale oppure un'espressione regolare, se queste sono abilitate. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Sostituisci</guilabel
> (casella di testo)</term>
<listitem
><para
>Il testo di sostituzione che verrà aggiunto ai file al posto del testo nella casella <guilabel
>Trova</guilabel
>. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guibutton
>Cerca</guibutton
></term>
<listitem
><para
>Quando hai finito di configurare tutto premi il pulsante <guibutton
>Cerca</guibutton
> per effettuare la ricerca. Per fare la stessa cosa puoi anche premere &Enter; nella casella di testo <guilabel
>Trova</guilabel
>. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guibutton
>Sostituisci</guibutton
></term>
<listitem
><para
>Quando hai finito di configurare tutto premi il pulsante <guibutton
>Sostituisci</guibutton
> per sostituire il testo inserito nella casella <guilabel
>Trova</guilabel
> con quello della casella <guilabel
>Sostituisci</guilabel
>. Per fare la stessa cosa puoi anche premere &Enter; nella casella di testo <guilabel
>Sostituisci</guilabel
>. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guibutton
>Successivo</guibutton
></term>
<listitem
><para
>Vai alla corrispondenza successiva della ricerca, cambiando file se necessario. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guibutton
>Sostituisci spuntati</guibutton
></term>
<listitem
><para
>Come per <guibutton
>Sostituisci</guibutton
>, ma la sostituzione sarà effettuata solo nei file che sono spuntati nel pannello sottostante. </para
></listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="searchinfiles-ui-folder">
<title
>Opzioni di ricerca nelle cartelle</title>

<para
>Queste opzioni sono mostrate sotto le opzioni di interrogazione di cui sopra. Se sono invece visualizzati i risultati della ricerca premi il pulsante <guiicon
><inlinemediaobject
><imageobject
> <imagedata fileref="games-config-options-22.png" format="PNG"/></imageobject
></inlinemediaobject
></guiicon
> per mostrarle.</para>

<variablelist>

<varlistentry>
<term
><guilabel
>Cerca in</guilabel
></term>
<listitem
><para
>Qui ci sono tre opzioni: seleziona <guilabel
>File aperti</guilabel
> per cercare in tutti i file attualmente aperti in &kate;, <guilabel
>Cartella</guilabel
> per cercare in una cartella e, a scelta, nelle sue sottocartelle, oppure <guilabel
>File attuale</guilabel
> per cercare solo nel file attivo. </para>
<para
>Se l'estensione dei <guilabel
>Progetti</guilabel
> è caricata, puoi cercare sia nel <guilabel
>Progetto attuale</guilabel
> che in <guilabel
>Tutti i progetti aperti</guilabel
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Distingui le maiuscole</guilabel
></term>
<listitem
><para
>Limita i risultati a quelli che hanno le stesse maiuscole e minuscole specificate nella ricerca. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Espressioni regolari</guilabel
></term>
<listitem
><para
>Ti permette di usare le <ulink url="help:/katepart/regular-expressions.html"
>espressioni regolari</ulink
> invece che del semplice testo come stringa di ricerca. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Espandi i risultati</guilabel
></term>
<listitem
><para
>Visualizza tutti i risultati trovati in ogni file, invece che solo un elenco di file che contengono la stringa cercata. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Cartella</guilabel
></term>
<listitem
><para
>Puoi inserire il percorso della cartella in cui vuoi cercare; ad esempio, potresti inserire <userinput
>~/sviluppo/kde/kate/</userinput
> se volessi cercare nel codice sorgente di &kate;. Questa opzione è disponibile solo se utilizzi la modalità <guilabel
>nella cartella</guilabel
>. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guiicon
>Apri finestra di selezione dei file</guiicon
></term>
<listitem
><para
>Premi questo pulsante per localizzare la cartella nel navigatore delle cartelle del tuo sistema. Questo pulsante funziona solo se si utilizza la modalità <guilabel
>Cartella</guilabel
>. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="go-up-22.png" format="PNG"/>
</imageobject
></inlinemediaobject
></guiicon
></term>
<listitem
><para
>Premi questo pulsante per sostituire la <guilabel
>Cartella</guilabel
> con la cartella superiore a quella attualmente selezionata. Questo pulsante funziona solo se utilizzi la modalità <guilabel
>Cartella</guilabel
>. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="view-refresh-22.png" format="PNG"/>
</imageobject
></inlinemediaobject
></guiicon
></term>
<listitem
><para
>Questo pulsante imposterà la voce della <guilabel
>Cartella</guilabel
> a quella in cui si trova il documento attuale. Il pulsante funziona solo se utilizzi la modalità <guilabel
>Cartella</guilabel
>. </para
></listitem>
</varlistentry>

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

<varlistentry>
<term
><guilabel
>Escludi</guilabel
></term>
<listitem
><para
>Il contrario di <guilabel
>Filtro</guilabel
>: impedisce a &kate; di cercare dei file che corrispondono a modelli precisi. Come per il <guilabel
>Filtro</guilabel
> puoi digitare più modelli separandoli con delle virgole (<userinput
>.</userinput
>); quest'opzione non è però disponibile nella modalità <guilabel
>File aperti</guilabel
>. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Ricorsivo</guilabel
></term>
<listitem
><para
>Se questa opzione è abilitata, &kate; cercherà anche in tutte le sottocartelle della cartella selezionata. Questa opzione è disponibile solo se si utilizza la modalità <guilabel
>cartella</guilabel
>. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Includi i file nascosti</guilabel
></term>
<listitem
><para
>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à <guilabel
>Cartella</guilabel
>. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Segui i collegamenti simbolici</guilabel
></term>
<listitem
><para
>L'estensione di ricerca nei file normalmente non segue i <ulink url="https://it.wikipedia.org/wiki/Collegamento_simbolico"
>collegamenti simbolici</ulink
>. 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à <guilabel
>Cartella</guilabel
>. </para>
<warning
><para
>È 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.</para
></warning>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Includi i file binari</guilabel
></term>
<listitem
><para
>Se questa opzione è abilitata, &kate; cercherà anche nei file che non sembrano essere file di testo. </para
></listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="searchinfiles-ui-results">
<title
>Risultati della ricerca</title>

<para
>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 <guiicon
><inlinemediaobject
><imageobject
><imagedata fileref="games-config-options-22.png" format="PNG"/> </imageobject
></inlinemediaobject
></guiicon
> per mostrarli. Saranno inoltre automaticamente visualizzati non appena verrà effettuata una ricerca.</para>

<para
>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.</para>

<para
>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 <guilabel
>Espandi i risultati</guilabel
>, 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.</para>

<para
>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. </para>

</sect3>
</sect2>

<sect2 id="searchinfiles-menu">
<title
>Struttura del menu</title>

<variablelist>

<varlistentry id="edit-searchinfiles">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F</keycap
></keycombo
> </shortcut
> <guimenu
>Modifica</guimenu
> <guimenuitem
>Cerca nei file</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Avvia la vista dello strumento Ricerca e sostituisci</para>
</listitem>
</varlistentry>

<varlistentry id="edit-next-match">
<term
><menuchoice
><guimenu
>Modifica</guimenu
> <guimenuitem
>Vai alla corrispondenza successiva</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Vai alla corrispondenza successiva in una ricerca eseguita dall'estensione Cerca e sostituisci.</para>
</listitem>
</varlistentry>

<varlistentry id="edit-previous-match">
<term
><menuchoice
><guimenu
>Modifica</guimenu
><guimenuitem
>Vai alla corrispondenza precedente</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Vai alla corrispondenza precedente in una ricerca eseguita dall'estensione Cerca e sostituisci.</para>
</listitem>
</varlistentry>

<varlistentry id="view-toolviews-searchandreplace">
<term
><menuchoice
><guimenu
>Visualizza</guimenu
> <guisubmenu
>Viste degli strumenti</guisubmenu
> <guimenuitem
>Mostra cerca e sostituisci</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Attiva o disattiva la visualizzazione dello strumento <guilabel
>Cerca e sostituisci</guilabel
> di &kate;. </para>
</listitem>
</varlistentry>

</variablelist>

</sect2>
</sect1>

<sect1 id="kate-application-plugin-snippets">
<sect1info>
<authorgroup>
<author
><firstname
>Martin</firstname
> <surname
>Gergov</surname
></author>
<author
>&TC.Hollingsworth; &TC.Hollingsworth.mail;</author>
</authorgroup>
</sect1info>
<title
>Frammenti di &kate;</title>

<sect2 id="snippets-intro">
<title
>Introduzione</title>
<para
>I frammenti di &kate; sono un'estensione usata per risparmiare tempo con il supporto dei cosiddetti <quote
>frammenti</quote
> (codice sorgente, codice macchina o testo riutilizzabile). L'estensione supporta anche il completamento del codice e &javascript;.</para>
</sect2>

<sect2 id="snippets-menu">
<title
>Struttura del menu</title>

<variablelist>
<varlistentry>
<term
><menuchoice
><guimenu
>Visualizza</guimenu
><guisubmenu
>Viste degli strumenti</guisubmenu
><guimenuitem
>Mostra frammenti</guimenuitem
></menuchoice
></term>
<listitem
><para
>Mostra il pannello contenente tutti i frammenti del tuo deposito che sono disponibili per il tipo di file attualmente aperto.</para
></listitem>
</varlistentry>

<varlistentry id="tools-create-snippet">
<term
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Crea frammento</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Crea un nuovo frammento, cioè un pezzo di testo riutilizzabile che puoi inserire in qualsiasi parte di qualsiasi documento.</para>
</listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2 id="snippets-panel">
<title
>Pannello dei frammenti</title>

<screenshot id="screenshot-snippets-panel">
<screeninfo
>Pannello dei frammenti di &kate;</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="snippets-panel.png" format="PNG"/></imageobject>
<textobject
><phrase
>Il pannello dei frammenti di &kate;.</phrase
></textobject>
<caption
><para
>Il pannello per i frammenti di &kate;.</para
></caption>
</mediaobject>
</screenshot>

<para
>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.</para>

<sect3 id="snippets-repo-internet">
<title
>Caricare i file dei depositi di frammenti</title>
<para
>Puoi scaricare i depositi di frammenti da Internet: basta che fai clic su <guibutton
>Ottieni nuovi frammenti</guibutton
> e ti apparirà una finestra con un elenco di depositi di frammenti. Dopo aver scaricato il frammento desiderato assicurati di attivarlo.</para>
<!--FIXME no way to load a local file ?
<para
>You can also load snippet repositories from a local file using the file
browser at the bottom of the panel.  Click <guibutton
>Copy to repository</guibutton>
when finished.</para
>-->
</sect3>

<sect3 id="snippets-repo-editor">
<title
>Creare e modificare i depositi</title>

<para
>Per creare un nuovo deposito di frammenti fai clic su <guibutton
>Aggiungi deposito</guibutton
>. 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 <guibutton
>Ok</guibutton
>.</para>

<screenshot id="screenshot-snippets-repository">
<screeninfo
>Editor di frammenti</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="snippets-repository.png" format="PNG"/></imageobject>
<textobject
><phrase
>L'editor di depositi.</phrase
></textobject>
<caption
><para
>L'interfaccia dell'editor di depositi.</para
></caption>
</mediaobject>
</screenshot>

<para
>L'editor dei depositi di frammenti contiene le seguenti opzioni:</para>

<variablelist>

<varlistentry>
<term
><guilabel
>Nome</guilabel
></term>
<listitem
><para
>Appare nell'elenco dei frammenti nella vista degli strumenti, e viene usato per la funzionalità di completamento del codice.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Spazio dei nomi</guilabel
></term>
<listitem
><para
>Prefisso usato nel completamento del codice.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Licenza</guilabel
></term>
<listitem
><para
>Seleziona la licenza per il tuo deposito di frammenti.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Autori</guilabel
></term>
<listitem
><para
>Inserisci i nomi degli autori del file di frammenti.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Tipi di file</guilabel
></term>
<listitem
><para
>Seleziona i tipi di file a cui vuoi che si applichi il deposito: l'impostazione predefinita è <quote
></quote
>, in modo che il deposito si applichi a tutti i file. Puoi cambiarla, per esempio in qualcosa come <userinput
>C++</userinput
>, 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.</para
></listitem>
</varlistentry>

</variablelist>

</sect3>

<sect3 id="snippets-editor">
<title
>Creare e modificare i frammenti</title>

<screenshot id="screenshot-snippets-form">
<screeninfo
>Editor di frammenti</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="snippets-form.png" format="PNG"/></imageobject>
<textobject
><phrase
>L'editor di frammenti.</phrase
></textobject>
<caption
><para
>L'interfaccia dell'editor di frammenti.</para
></caption>
</mediaobject>
</screenshot>

<variablelist>

<varlistentry>
<term
><guilabel
>Nome</guilabel
></term>
<listitem
><para
>Il nome che sarà mostrato nell'elenco di completamento.</para
></listitem>
</varlistentry>

<varlistentry>
<term
>Scorciatoia</term>
<listitem
><para
>Premendo questa scorciatoia il frammento sarà inserito nel documento.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Frammenti</guilabel
></term>
<listitem
><para
>Il testo che il tuo frammento inserirà nel documento.</para>
<para
>Un frammento può contenere campi modificabili, su cui puoi spostarti premendo &Tab;. Per creare i campi nel testo del modello si possono usare le seguenti espressioni:</para>
<para
><userinput
>${<replaceable
>field_name</replaceable
>}</userinput
> crea un semplice campo modificabile. Tutte le successive occorrenze dello stesso <replaceable
>field_name</replaceable
>creano campi che rispecchiano i contenuti del primo durante la modifica.</para>
<para
><userinput
>${<replaceable
>field_name=default</replaceable
>}</userinput
> può essere usato per specificare un valore predefinito per il campo. <replaceable
>default</replaceable
> può essere una qualsiasi espressione &javascript;.</para>
<para
>Usa <userinput
>${<replaceable
>field_name</replaceable
>=<replaceable
>testo</replaceable
>}</userinput
> per specificare una stringa fissa come valore predefinito.</para>
<para
><userinput
>${func(<replaceable
>other_field1</replaceable
>, <replaceable
>other_field2</replaceable
>, ...)}</userinput
> può essere usato per creare un campo che valuta una funzione &javascript; per ciascuna modifica e che contiene il suo contenuto. Vedi la scheda <guilabel
>Script</guilabel
> per maggiori informazioni.</para>
<para
><userinput
>${cursor}</userinput
> può essere usato per segnare la posizione finale del cursore dopo che è stato riempito tutto il resto.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Script</guilabel
></term>
<listitem
><para
>Funzioni di supporto in &javascript; da usare nei tuoi frammenti.</para>
<para
>Tutte le funzioni &javascript; dovrebbero ritornare i contenuti che vuoi mettere nel modello di campo come una stringa.</para>
<para
>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 <userinput
>${<replaceable
>field</replaceable
>}</userinput
> sarà presente una variabile, chiamata <userinput
>field</userinput
> , contenente i contenuti aggiornati del campo modello. Quelle variabili possono sia usate staticamente nella funzione sia passate come argomento usando la sintassi <userinput
>${func(field)}</userinput
> oppure <userinput
>${<replaceable
>field2=func(field)</replaceable
>}</userinput
> nella stringa del frammento.</para>
<para
>Puoi usare l'<ulink url="help:/katepart/dev-scripting.html#dev-scripting-api"
>API di scripting di &kate;</ulink
> per ottenere il testo selezionato, l'intero testo, il nome del file ed altro usando i metodi appropriati degli oggetti <userinput
>document</userinput
> e <userinput
>view</userinput
>. Per ulteriori informazioni fai riferimento alla documentazione dell'API di scripting.</para>
<para
>Per script più complessi può essere importante capire che <emphasis
>prima</emphasis
> il frammento grezzo viene inserito nel documento, <emphasis
>poi</emphasis
> le funzioni vengono valutate. Ad esempio, se una funzione restituisce il testo della riga nella quale è stato inserito il frammento, quel testo conterrà anche <userinput
>${functionCall()}</userinput
>.</para>
<para
>Questo frammento è un esempio di come lavorare con le selezioni usando lo scripting con l'API. È un modo semplice per avvolgere il testo selezionato all'interno di etichette: <userinput
>&lt;strong&gt;${view.selectedText()}&lt;/strong&gt;</userinput
> </para>
<para
>L'esempio seguente invoca uno script che inserisce un testo predefinito nel caso non ci sia nessuna selezione. Frammento:</para>
<para>
<userinput
>${rangeCommand("&lt;strong&gt;%%1&lt;/strong&gt;", "Bold")}</userinput
></para>
<para
>Script: <programlisting
>function rangeCommand(command, def) {
    if (view.selectedText().length 
> 0) {
        return command.replace("%%1", view.selectedText());
    } else {
        return command.replace("%%1", def);
    }
}
</programlisting>
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="snippets-using">
<title
>Usare i frammenti</title>

<screenshot id="screenshot-snippets-usage">
<screeninfo
>I frammenti di &kate; in azione</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="snippets-usage.png" format="PNG"/></imageobject>
<textobject
><phrase
>Accesso ai frammenti di &kate; da una vista degli strumenti e un menu a cascata.</phrase
></textobject>
<caption
><para
>Selezione da un elenco di frammenti.</para
></caption>
</mediaobject>
</screenshot>

<para
>Puoi richiamare i frammenti in due modi:</para>

<itemizedlist>
<listitem
><para
>Scegliendo il frammento dalla vista dello strumento.</para
></listitem>
<listitem
><para
>Premendo <keycombo action="simul"
>&Ctrl; &Space;</keycombo
> 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.</para
></listitem>
</itemizedlist>

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

</sect2>

<sect2 id="snippets-ack">
<title
>Ringraziamenti e riconoscimenti</title>
<para
>I frammenti di &kate; sono stati scritti da Joseph Wenninger.</para>
<para
>Ringraziamenti speciali vanno al partecipante del Google Code-In 2011, Martin Gergov, per aver scritto la maggior parte di questa sezione.</para>
</sect2>

</sect1>

<sect1 id="kate-application-plugin-keyboardmacros">
<sect1info>
<authorgroup>
<!--author
>&Pablo.Rauzy; &Pablo.Rauzy.mail;</author--> <!-- TODO: use that when the version of KDocTools that Kate depends on has it -->
<author
><firstname
>Pablo</firstname
> <surname
>Rauzy</surname
> <email
>r .at. uzy.me</email
></author>
</authorgroup>
</sect1info>
<title
>Estensione Macro da tastiera</title>

<sect2 id="keyboardmacros-intro">
<title
>Introduzione</title>
<para
>Registra ed esegui le macro da tastiera (cioè una sequenza di azioni da tastiera).</para>
</sect2>

<sect2 id="keyboardmacros-basicusage">
<title
>Uso basilare</title>

<sect3 id="keyboardmacros-basicusage-record">
<title
>Per avviare la registrazione di una macro da tastiera:</title>
<para
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Macro da tastiera</guimenuitem
><guimenuitem
>Registra macro...</guimenuitem
></menuchoice
> (<keycombo action="simul"
>&Ctrl;&Shift;<keycap
>K</keycap
></keycombo
>). </para>
<para
>L'estensione registrerà ogni pressione di tasti fino al termine della registrazione.</para>
</sect3>

<sect3 id="keyboardmacros-basicusage-record-end">
<title
>Per interrompere la registrazione:</title>
<para
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Macro da tastiera</guimenuitem
><guimenuitem
>Interrompi la registrazione della macro</guimenuitem
></menuchoice
> (<keycombo action="simul"
>&Ctrl;&Shift;<keycap
>K</keycap
></keycombo
>). </para>
<para
>L'estensione interromperà la registrazione della pressione dei tasti e salverà la sequenza come macro corrente.</para>
</sect3>

<sect3 id="keyboardmacros-basicusage-record-cancel">
<title
>Per annullare la registrazione:</title>
<para
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Macro da tastiera</guimenuitem
><guimenuitem
>Annulla registrazione della macro</guimenuitem
></menuchoice
> (<keycombo action="simul"
>&Ctrl;&Alt;&Shift;<keycap
>K</keycap
></keycombo
>). </para>
<para
>L'estensione interromperà la registrazione della pressione dei tasti, ma la macro corrente non cambierà.</para>
</sect3>

<sect3 id="keyboardmacros-basicusage-play">
<title
>Per eseguire la macro corrente:</title>
<para
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Macro da tastiera</guimenuitem
><guimenuitem
>Esegui macro</guimenuitem
></menuchoice
> (<keycombo action="simul"
>&Ctrl;&Alt;<keycap
>K</keycap
></keycombo
>). </para>
<para
>L'estensione eseguirà la macro corrente.</para>
<para
>Anche il comando <userinput
>kmplay</userinput
>, senza argomenti, eseguirà la macro corrente.</para>
</sect3>

</sect2>

<sect2 id="keyboardmacros-namedmacros">
<title
>Macro con nome</title>

<para
>È possibile salvare le macro da tastiera dandogli un nome.</para>
<para
>Le macro con nome sono persistenti tra le sessioni di Kate: vengono salvate nel file <filename
>keyboardmacros.json</filename
> che si trova nella cartella dei dati utente di Kate (di solito <filename
>~/.local/share/kate/</filename
>).</para>

<sect3 id="keyboardmacros-namedmacros-save">
<title
>Per salvare la macro corrente:</title>
<para
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Macro da tastiera</guimenuitem
><guimenuitem
>Salva la macro corrente</guimenuitem
></menuchoice
> (<keycombo action="simul"
>&Alt;&Shift;<keycap
>K</keycap
></keycombo
>). </para>
<para
>L'estensione ti chiederà un nome, e salverà la macro con quello.</para>
<para
>Il comando <userinput
>kmsave <replaceable
>nome</replaceable
></userinput
> salverà la macro corrente come <userinput
><replaceable
>nome</replaceable
></userinput
>.</para>
</sect3>

<sect3 id="keyboardmacros-namedmacros-load">
<title
>Per caricare una macro come la corrente:</title>
<para
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Macro da tastiera</guimenuitem
><guimenuitem
>Carica macro con nome...</guimenuitem
></menuchoice
>. </para>
<para
>L'estensione elenca le macro salvate come voci di questo sotto-menu: attivandone una, questa verrà caricata come corrente.</para>
<para
>Il comando <userinput
>kmload <replaceable
>nome</replaceable
></userinput
> caricherà come corrente la macro salvata come <userinput
><replaceable
>nome</replaceable
></userinput
>.</para>
</sect3>

<sect3 id="keyboardmacros-namedmacros-play">
<title
>Per eseguire una macro salvata senza caricarla:</title>
<para
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Macro da tastiera</guimenuitem
><guimenuitem
>Esegui macro con nome...</guimenuitem
></menuchoice
>. </para>
<para
>L'estensione elenca le macro salvate come voci di questo sotto-menu: attivandone una, la macro corrispondente verrà eseguita senza essere caricata.</para>
<para
>Nota che ogni macro salvata è un'azione che fa parte della collezione di azioni corrente; in questo modo una scorciatoia personalizzata può essere assegnata ad essa dall'interfaccia <menuchoice
><guimenu
>Impostazioni</guimenu
><guimenuitem
>Configura scorciatoie da tastiera...</guimenuitem
></menuchoice
>.</para>
<para
>Il comando <userinput
>kmplay <replaceable
>nome</replaceable
></userinput
> eseguirà la macro salvata come <userinput
><replaceable
>nome</replaceable
></userinput
> senza caricarla.</para>
</sect3>

<sect3 id="keyboardmacros-namedmacros-wipe">
<title
>Per pulire, cioè eliminare, una macro salvata:</title>
<para
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Macro da tastiera</guimenuitem
><guimenuitem
>Pulisci macro con nome...</guimenuitem
></menuchoice
>. </para>
<para
>L'estensione elenca le macro salvate come voci di questo sotto-menu: attivandone una, la macro corrispondente verrà pulita (cioè eliminata).</para>
<para
>Il comando <userinput
>kmwipe <replaceable
>nome</replaceable
></userinput
> pulirà la macro salvata come <userinput
><replaceable
>nome</replaceable
></userinput
>.</para>
</sect3>

<sect3 id="keyboardmacros-namedmacros-command-tips">
<title
>Suggerimenti per i comandi:</title>
<para
>Nota che tutti questi comando dopo il prefisso <userinput
>km</userinput
> utilizzano una lettera diversa: in questo modo puoi chiamarli in maniera efficiente usando il completamento con tab!</para>
</sect3>

</sect2>

<sect2 id="keyboardmacros-limitations">
<title
>Limitazioni</title>

<para
>Al momento le macro da tastiera non vengono eseguite correttamente se nell'interfaccia vengono utilizzati alcuni oggetti, ad esempio QMenu, QuickOpenLineEdit o TabSwitcherTreeView. Non sono sicuro sul perché, ma il mio primo pensiero è che questi oggetti funzionino in una modalità non standard riguardo agli eventi da tastiera.</para>

</sect2>

</sect1>


<sect1 id="kate-application-plugin-sql">
<sect1info>
<authorgroup>
<author
><firstname
>Ömer</firstname
> <othername
>Faruk</othername
> <surname
>Oruç</surname
></author>
<author
>&TC.Hollingsworth; &TC.Hollingsworth.mail;</author>
</authorgroup>
</sect1info>
<title
>Estensione SQL</title>

<sect2 id="sql-intro">
<title
>Introduzione</title>

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

<para
>L'estensione SQL per &kate; ti permette di:</para>

<itemizedlist>
<listitem
><para
>Creare una banca dati</para
></listitem>
<listitem
><para
>Connetterti a banche dati esistenti</para
></listitem>
<listitem
><para
>Inserire ed eliminare dati dalle banche dati</para
></listitem>
<listitem
><para
>Eseguire le interrogazioni</para
></listitem>
<listitem
><para
>Visualizzare i risultati in una tabella</para
></listitem>
</itemizedlist>

</sect2>

<sect2 id="sql-connecting">
<title
>Connessione ad una banca dati</title>

<para
>Seleziona <guibutton
>Aggiungi connessione</guibutton
> dal menu o dalla barra degli strumenti <guimenu
>SQL</guimenu
>, 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 <guibutton
>Successivo</guibutton
>. </para>

<para
>Se la banca dati che hai selezionato usa un file, basta che ne indichi la posizione e che premi il pulsante <guibutton
>Successivo</guibutton
>; 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 <guibutton
>Successivo</guibutton
>.</para>

<para
>Infine dai un nome alla connessione e premi <guibutton
>Successivo</guibutton
>.</para>

</sect2>

<sect2 id="sql-querying">
<title
>Eseguire le interrogazioni</title>

<sect3 id="sql-querying-insert-delete-update">
<title
>INSERT/DELETE/UPDATE</title>

<para
>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 <guibutton
>Esegui interrogazione</guibutton
> nella barra degli strumenti, oppure <menuchoice
><guimenu
>SQL</guimenu
><guimenuitem
>Esegui interrogazione</guimenuitem
></menuchoice
> (<keycombo action="simul"
>&Ctrl;<keycap
>E</keycap
></keycombo
>).</para>

<example>
<title
>Alcune interrogazioni d'esempio</title>
<variablelist>

<varlistentry>
<term
><command
>INSERT</command
></term>
<listitem
><para
><programlisting
>INSERT INTO <replaceable
>nome_tabella</replaceable
> ("<replaceable
>campo1</replaceable
>", "<replaceable
>campo2</replaceable
>", "<replaceable
>campo3</replaceable
>", "<replaceable
>campo4</replaceable
>", "<replaceable
>campo5</replaceable
>")
VALUES ("<replaceable
>valore1</replaceable
>", "<replaceable
>valore2</replaceable
>", "<replaceable
>valore3</replaceable
>", "<replaceable
>valore4</replaceable
>", "<replaceable
>valore5</replaceable
>" )
</programlisting
></para
></listitem>
</varlistentry>

<varlistentry>
<term
><command
>DELETE</command
></term>
<listitem
><para
><programlisting
>DELETE FROM <replaceable
>nome_tabella</replaceable
> WHERE name = "<replaceable
>testo</replaceable
>"
</programlisting
></para
></listitem>
</varlistentry>

<varlistentry>
<term
><command
>UPDATE</command
></term>
<listitem
><para
><programlisting
>UPDATE <replaceable
>nome_tabella</replaceable
> SET "<replaceable
>campo1</replaceable
>" = "<replaceable
>testo</replaceable
>", "<replaceable
>campo2</replaceable
>" = "<replaceable
>testo</replaceable
>", "<replaceable
>campo3</replaceable
>" = "<replaceable
>testo</replaceable
>", "<replaceable
>campo4</replaceable
>" = "<replaceable
>testo</replaceable
>", "<replaceable
>campo5</replaceable
>" = "<replaceable
>testo</replaceable
>"
</programlisting
></para
></listitem>
</varlistentry>

</variablelist>
</example>

</sect3>

<sect3 id="sql-querying-select">
<title
>SELECT</title>

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

<example>
<title
>Interrogazione <command
>SELECT</command
> d'esempio</title>
<para
><programlisting
>SELECT * FROM <replaceable
>nome_tabella</replaceable
>
</programlisting
></para>
</example>

<para
>Nella vista degli strumenti <guilabel
>Risultato di dati SQL</guilabel
> ci sono diversi pulsanti:</para>

<variablelist>

<varlistentry>
<term
><guibutton
>Ridimensiona le colonne in base ai contenuti</guibutton
></term>
<listitem
><para
>Cambia le dimensioni delle colonne per adattarsi al loro contenuto.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guibutton
>Ridimensiona le righe in base ai contenuti</guibutton
></term>
<listitem
><para
>Cambia le dimensioni delle righe per adattarsi al loro contenuto.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guibutton
>Copia</guibutton
></term>
<listitem
><para
>Seleziona tutto il contenuto della tabella e lo copia negli appunti.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guibutton
>Esporta</guibutton
></term>
<listitem
><para
>Esporta tutto il contenuto della tabella in un file, negli appunti o nel documento attuale in formato di valori separati da virgole (CSV).</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guibutton
>Pulisci</guibutton
></term>
<listitem
><para
>Rimuove qualsiasi cosa dalla vista della tabella.</para
></listitem>
</varlistentry>

<!--FIXME Use system locale -->

</variablelist>

<para
>Puoi ora cambiare i colori visualizzati nella tabella andando nella sezione <guilabel
>SQL</guilabel
> dopo aver selezionato <menuchoice
><guimenu
>Impostazioni</guimenu
><guimenuitem
>Configura &kate;...</guimenuitem
></menuchoice
>.</para>

</sect3>
</sect2>

<sect2 id="sql-browsing">
<title
>Sfogliare</title>

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

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

</sect2>

<sect2 id="sql-menus">
<title
>Struttura del menu</title>
<variablelist>

<varlistentry>
<term
><menuchoice
><guimenu
>SQL</guimenu
><guimenuitem
>Aggiungi connessione...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Aggiunge una nuova connessione usando un qualsiasi driver per le banche dati. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>SQL</guimenu
><guimenuitem
>Rimuovi connessione</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Rimuove la connessione selezionata. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>SQL</guimenu
><guimenuitem
>Modifica connessione...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Modifica le impostazioni della connessione attuale. </para
></listitem>
</varlistentry>

<varlistentry>
<term
>Connessioni</term>
<listitem
><para
>Tutte le connessioni alle banche dati che hai creato sono elencate tra gli elementi del menu <guimenuitem
>Modifica connessione</guimenuitem
> ed <guimenuitem
>Esegui interrogazione</guimenuitem
>; selezionane una per eseguire interrogazioni o per modificarla. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;<keycap
>E</keycap
></keycombo
></shortcut
> <guimenu
>SQL</guimenu
><guimenuitem
>Esegui interrogazione</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Esegue l'interrogazione. </para
></listitem>
</varlistentry>

</variablelist>
</sect2>

<sect2 id="sql-ack">
<title
>Ringraziamenti e riconoscimenti</title>

<para
>L'estensione SQL è stata scritta da Marco Mentasti.</para>
<para
>Ringraziamenti speciali vanno al partecipante del Google Code-In 2011, Ömer Faruk Oruç, per aver scritto la maggior parte di questa sezione.</para>

</sect2>

</sect1>

<sect1 id="kate-application-plugin-symbolviewer">
<!--https://kate-editor.org/2010/10/27/php-treeview-improvements-in-kate/?-->
<title
>Estensione Visore di simboli</title>

<sect2 id="symbolviewer-using">
<title
>Usare l'estensione di chiusura per gruppo</title>

<para
>Permette agli sviluppatori di visualizzare i simboli (funzioni, macro e strutture) nel codice sorgente.</para>
<para
>Puoi agevolmente sfogliare il codice facendo clic sulle informazioni analizzate.</para>
<para
>Al momento sono supportati i seguenti linguaggi:</para>
<para
>C/C++, &Java;, Perl, PHP, Python, Ruby, XSLT, Tcl/Tk e Fortran</para>

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

</sect2>

<sect2 id="symbolviewer-menu">
<title
>Struttura del menu</title>
<variablelist>

<varlistentry id="tools-symbolviewer">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>\</keycap
></keycombo
> </shortcut
> <guimenu
>Visualizza</guimenu
> <guisubmenu
>Vista degli strumenti</guisubmenu
> <guimenuitem
>Mostra lista dei simboli</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Commuta la vista della lista di simboli di &kate; visualizzando alternativamente le funzioni, le macro e le strutture del codice sorgente del documento attivo.</para>
</listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2 id="symbolviewer-config">
<title
>Configurazione</title>

<screenshot id="screenshot-symbolviewer-settings">
<screeninfo
>Visore di simboli</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="symbolviewer-settings.png" format="PNG"/></imageobject>
<caption
><para
>Scegli le opzioni di elaborazione predefinite</para
></caption>
</mediaobject>
</screenshot>

</sect2>

</sect1>


<sect1 id="kate-application-plugin-konsole">
<title
>Estensione Strumento visivo per terminale</title>

<para
><indexterm
><primary
>Emulatore di terminale</primary
></indexterm
> L'emulatore di terminale integrato è, per tua comodità, una copia dell'applicazione di terminale &konsole; di &kde;. È disponibile alla voce di menu <menuchoice
><guimenu
>Visualizza</guimenu
><guisubmenu
>Viste degli strumenti</guisubmenu
> <guimenuitem
>Mostra il pannello del terminale</guimenuitem
></menuchoice
>, e acquisirà il fuoco nel momento in cui viene visualizzato. In aggiunta, se l'opzione <link linkend="konsole-config"
>Sincronizza automaticamente il terminale con il documento attuale quando possibile</link
> è abilitata, passerà alla cartella del documento attuale quando viene visualizzato, se è possibile, oppure quando il documento corrente cambia.</para>

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

<para
>Puoi configurare &konsole; utilizzando il menu del &RMB;; per ulteriori informazioni vedi il <ulink url="help:/konsole/index.html"
>manuale di &konsole;</ulink
>.</para>

<para
>L'emulatore di terminale incorporato è fornito dall'estensione Strumento visivo per terminale.</para>

<sect2 id="konsole-menus">
<title
>Struttura del menu</title>

<variablelist>

<varlistentry id="view-toolviews-show-terminal">
<term
><menuchoice
><guimenu
>Visualizza</guimenu
> <guisubmenu
>Viste degli strumenti</guisubmenu
> <guimenuitem
>Mostra il pannello del terminale</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Mostra o nasconde l'emulatore di terminale integrato.</para>
<para
>Il terminale sarà creato alla prima attivazione.</para>
<para
>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 <link linkend="konsole-config"
>Sincronizza automaticamente il terminale con il documento attuale quando possibile</link
> è abilitata nella pagina <guilabel
>Terminale</guilabel
> della <link linkend="config-dialog"
>finestra principale di configurazione</link
>, la sessione della shell passerà alla cartella del documento attuale, se questo è un file locale.</para>
</listitem>
</varlistentry>

<varlistentry id="view-toolviews-pipe-to-terminal">
<term
><menuchoice
><guimenu
>Strumenti</guimenu
> <guimenuitem
>Incanala al terminale</guimenuitem
></menuchoice
></term>
<listitem
><para
>Passa il testo selezionato all'emulatore di terminale integrato. Non viene aggiunto alcun carattere di fine riga dopo il testo.</para
></listitem>
</varlistentry>

<varlistentry id="tools-sync-terminal-document">
<term
><menuchoice
><guimenu
>Strumenti</guimenu
> <guimenuitem
>Sincronizza terminale con il documento attuale</guimenuitem
></menuchoice
></term>
<listitem>
<para
>Ciò avrà come effetto l'esecuzione del comando <command
>cd</command
> da parte del terminale incorporato, nella cartella del documento attivo.</para>

<para
>In alternativa puoi configurare &kate; in modo che mantenga sempre il terminale sincronizzato con il documento attuale, vedi <xref linkend="konsole-config"/> per ulteriori informazioni.</para>
</listitem>
</varlistentry>

<varlistentry id="tools-run-current-document">
<term
><menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Esegui il documento attuale</guimenuitem
></menuchoice
></term>
<listitem>
<para
>Esegui il documento attuale in &konsole;. Possono essere eseguiti solo i documenti locali. &kate; mostrerà un avviso prima di eseguire i documenti, perché questa azione può essere una seria minaccia alla sicurezza.</para>
</listitem>
</varlistentry>

<varlistentry id="tools-focus-terminal">
<term
><menuchoice
><guimenu
>Strumenti</guimenu
> <guimenuitem
>Attiva/Disattiva il pannello del terminale</guimenuitem
> </menuchoice
></term>
<listitem>
<para
>Passa il fuoco dal documento attuale al terminale e viceversa. </para>
</listitem>
</varlistentry>

</variablelist>
</sect2>

<sect2 id="konsole-config">
<title
>Configurazione</title>

<para
>Puoi configurare l'estensione Strumento visivo per terminale dalla pagina <guilabel
>Terminale</guilabel
> della <link linkend="configuring-kate"
>finestra di configurazione</link
>.</para>

<para
>Sono disponibili le seguenti opzioni:</para>

<variablelist>
<varlistentry>
<term>
<guilabel
>Sincronizza automaticamente, quando è possibile, il terminale con il documento attuale</guilabel
></term>
<listitem
><para
>Ciò comporterà l'esecuzione nel terminale integrato del comando <command
>cd</command
> 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. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Impostare la variabile d'ambiente EDITOR a «kate -b»</guilabel
></term>
<listitem
><para
>Questa opzione imposta la variabile d'ambiente <envar
>EDITOR</envar
> 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;.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Nascondi &konsole; se viene premuto «Esc»</guilabel
></term>
<listitem
><para
>Ciò permette di chiudere il terminale incorporato premendo il tasto &Esc;. Può causare dei problemi con le applicazioni di terminale che utilizzano il tasto &Esc;, &eg; <application
>vim</application
>. Aggiungi queste applicazioni nella casella qui sotto. Le voci in questo elenco dovrebbero essere separate da virgole.</para
></listitem>
</varlistentry>

</variablelist>
</sect2>

</sect1>

<sect1 id="kate-application-plugin-textfilter">

<title
>L'estensione Filtro di testo</title>

<sect2 id="textfilter-using">
<title
>Usare l'estensione Filtro di testo</title>

<para
>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. </para>

<itemizedlist>
<title
>Esempi:</title>
<listitem
><para
><command
>less /etc/fstab</command
> - incolla il contenuto di questo file o lo copia negli appunti </para
></listitem>
<listitem
><para
><command
>wc</command
> - conta le righe, le parole e i caratteri della selezione e li incolla nel documento, o li copia negli appunti </para
></listitem>
<listitem
><para
><command
>sort</command
> - ordina le righe della selezione e incolla il risultato nel documento, o lo copia negli appunti </para
></listitem>
</itemizedlist>

</sect2>

<sect2 id="textfilter-menu">
<title
>Struttura del menu</title>

<variablelist>

<varlistentry id="tools-textfilter">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>\</keycap
></keycombo
> </shortcut
> <guimenu
>Strumenti</guimenu
> <guisubmenu
>Filtro di testo</guisubmenu
> </menuchoice
></term>
<listitem>

<para
><action
>Apre</action
> la finestra Filtro di testo:</para>

<screenshot id="screenshot-filtertext">
<screeninfo
>La finestra Filtro di testo</screeninfo>
<mediaobject>
<imageobject
><imagedata fileref="textfilter.png" format="PNG"/></imageobject>
</mediaobject>
</screenshot>

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

<variablelist>

<varlistentry>
<term
><guilabel
>Copia il risultato invece di incollarlo</guilabel
></term>
<listitem>
<para
>Copia il risultato negli appunti senza modificare il documento.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Unisce STDOUT a STDERR</guilabel
></term>
<listitem>
<para
>Se selezionato verranno fusi i risultati da STDOUT e STDERR, e non saranno riportati gli errori. Diversamente STDERR sarà visualizzato come un messaggio passivo.</para>
</listitem>
</varlistentry>

</variablelist>

</listitem>
</varlistentry>

</variablelist>

</sect2>

</sect1>

<sect1 id="kate-application-plugin-xmlcheck">
<!-- from doc/kate-addons/xmlcheck.docbook -->
<sect1info>
<authorgroup
><author
>&Daniel.Naber; &Daniel.Naber.mail; </author
></authorgroup>
</sect1info>

<title
>Validazione &XML;</title>

<para
>Questa estensione controlla che i file &XML; siano validi e siano scritti correttamente.</para>
<para
>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 <quote
>DOCTYPE</quote
>, 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 <filename
>DTD/xhtml1-transitional.dtd</filename
> e il file è <filename
>/home/pippo/prova.xml</filename
>, allora ci si aspetta che il DTD sia a <filename
>/home/pippo/DTD/xhtml1-transitional.dtd</filename
>. Sono comunque supportati anche i DTD remoti specificati con http.</para>

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

<para
>Per saperne di più su &XML;, vedi le <ulink url="https://www.w3.org/XML/"
>pagine ufficiali del W3C su &XML;</ulink
>.</para>

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

<para
>Per caricare questa estensione apri la finestra di configurazione di &kate; in <menuchoice
><guimenu
>Impostazioni</guimenu
><guimenuitem
>Configura &kate;</guimenuitem
></menuchoice
>. Seleziona quindi <guilabel
>Validazione &XML;</guilabel
>, che apparirà nella sezione <guilabel
>Estensioni</guilabel
>, in <guilabel
>Applicazione</guilabel
>, e chiudi la finestra. </para>

<sect2 id="xmlcheck-menu">
<title
>Struttura del menu</title>

<variablelist>
<varlistentry>
<term>
<menuchoice
><guimenu
>&XML;</guimenu
> <guimenuitem
>Convalida &XML;</guimenuitem
> </menuchoice>
</term>
<listitem
><para
>Questo avvierà il controllo, come descritto sopra.</para
></listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2 id="xmlcheck-thanks-and-acknowledgements">
<title
>Ringraziamenti e riconoscimenti</title>
<para
>Estensione di &kate; <quote
>Validazione &XML;</quote
>, copyright 2002 di &Daniel.Naber; &Daniel.Naber.mail;. </para>
<para
>Copyright 2002 della documentazione di &Daniel.Naber;</para>

</sect2>
</sect1>

<sect1 id="kate-application-plugin-xmltools">
<!-- from doc/kate-addons/xmlcheck.docbook -->
<sect1info>
<authorgroup
><author
>&Daniel.Naber; &Daniel.Naber.mail; </author
></authorgroup>
</sect1info>
<title
>Completamento &XML;</title>

<para
>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 è <quote
>&amp;</quote
>, vengono elencate tutte le entità). È anche possibile chiudere l'ultimo tag aperto a sinistra.</para>

<para
>La <acronym
>DTD</acronym
> deve esistere in formato &XML;, come prodotta dal programma Perl <command
>dtdparse</command
>; indicheremo una tale DTD come <quote
>meta-DTD</quote
>. Sono fornite alcune meta-DTD, che sono installate in <filename class="directory"
>katexmltools/</filename
> in <userinput
><command
>qtpaths</command
> <option
>--paths GenericDataLocation </option
></userinput
>; questa è anche la cartella predefinita alla selezione di <guimenuitem
>Assegna meta-DTD</guimenuitem
>. Per produrre le tue meta-DTD recupera <command
>dtdparse</command
> da <ulink url="http://dtdparse.sourceforge.net"
>questo indirizzo</ulink
>.</para>

<sect2 id="xmltools-how-to-use">
<title
>Uso</title>

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

<para
>Puoi ora usare l'estensione mentre scrivi del testo:</para>

<variablelist>

<varlistentry>
<term
><keycap
>&lt;</keycap
> (minore)</term>
<listitem
><para
>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 <quote
>&lt;html&gt;</quote
>).</para
></listitem>
</varlistentry>

<varlistentry>
<term
><keycombo action="seq"
><keycap
>&lt;</keycap
><keycap
>/</keycap
></keycombo
> (minore e sbarra)</term>
<listitem
><para
>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 <guimenuitem
>Chiudi elemento</guimenuitem
> questo funziona solo quando è stata assegnata una DTD.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><keycap
>"</keycap
> (virgolette)</term>
<listitem
><para
>Il tasto delle virgolette attiverà un elenco di valori possibili per gli attributi (se ce ne sono), se sei all'interno di un tag.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><keycap
>&nbsp;</keycap
> (spazio)</term>
<listitem
><para
>Questo tasto attiverà un elenco di attributi possibili per l'elemento attuale, se sei dentro a un tag.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><keycap
>&amp;</keycap
> (e commerciale)</term>
<listitem
><para
>Questo tasto attiverà un elenco di entità.</para
></listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2 id="xmltools-features-and-limitations">
<title
>Funzionalità e limitazioni</title>

<para
>Puoi provare tutte le funzioni e le limitazioni caricando in &kate; <filename
>katexmltools/testcases.xml</filename
> in <userinput
><command
>qtpaths</command
> <option
>--paths GenericDataLocation </option
></userinput
> e seguendo le istruzioni.</para>

</sect2>


<sect2 id="xmltools-menu">
<title
>Struttura del menu</title>

<variablelist id="xml-insert-element">
<varlistentry>
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Enter;</keycombo
> </shortcut
> <guimenu
>&XML;</guimenu
> <guimenuitem
>Inserisci elemento...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Questo aprirà una finestra che ti permette di inserire un elemento &XML;, mentre saranno inseriti automaticamente i caratteri &lt;, &gt; 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 <guimenuitem
>Assegna meta-DTD...</guimenuitem
> la finestra offre il completamento per tutti gli elementi che possono essere inseriti alla posizione attuale del cursore. </para
></listitem>
</varlistentry>

<varlistentry id="xml-close-element">
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>&lt;</keycap
></keycombo
> </shortcut
> <guimenu
>&XML;</guimenu
> <guimenuitem
>Chiudi elemento</guimenuitem
> </menuchoice
></term>
<listitem
><para
>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.</para
></listitem>
</varlistentry>

<varlistentry id="xml-assign-metadtd">
<term
><menuchoice
><guimenu
>&XML;</guimenu
> <guimenuitem
>Assegna meta-DTD...</guimenuitem
> </menuchoice
></term>
<listitem
><para
>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;.</para
></listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2 id="xmltools-thanks-and-acknowledgements">
<title
>Ringraziamenti e riconoscimenti</title>
<para
>Estensione di &kate; <quote
>Completamento XML</quote
>, copyright 2001, 2002 di &Daniel.Naber; &Daniel.Naber.mail;. </para>
<para
>Copyright della versione per &kde; SC 4 2010 di Tomáš Trnka</para>
<para
>Copyright 2001, 2002 della documentazione di &Daniel.Naber;</para>
</sect2>
</sect1>

<sect1 id="kate-application-plugin-compilerexplorer">
<title
>L'estensione Esploratore del compilatore</title>

<para
>L'estensione Esploratore del compilatore ti permette di usare direttamente in Kate l'esploratore del compilatore. Questo strumento è di solito limitato solamente a un file, ed è difficile vedere il codice generato di un file nel progetto. Questa estensione mira a semplificare questo processo, rilevando automaticamente i comandi di compilazione del tuo file.</para>

<sect2 id="ce-how-to-use">
<title
>Uso</title>

<para
>La prima cosa che devi fare è aprire una scheda dell'esploratore del compilatore: premi <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>I</keycap
></keycombo
> per aprire la barra dei comandi, poi cerca «Apri il file corrente nell'Esploratore del compilatore» e premi Invio. Potresti anche voler aggiungere questa azione alla barra degli strumenti, oppure assegnarle una scorciatoia per un accesso più semplice. </para>

<para
>Successivamente devi impostare un'istanza locale dell'esploratore del compilatore, oppure di usare quella pubblica <ulink url="https://godbolt.org/"
>https://godbolt.org/</ulink
> instance. Vedi <ulink url="https://github.com/compiler-explorer/compiler-explorer"
>https://github.com/compiler-explorer/compiler-explorer</ulink
>. Dopo averla aggiunta, fai clic sulla casella combinata <guilabel
>Option</guilabel
> nella scheda dell'esploratore del compilatore che avevi aperto in precedenza, poi seleziona <guilabel
>Modifica Url...</guilabel
>. Inserisci quindi l'url del server dell'esploratore del compilatore.</para>

<para
>Se devi vedere il codice generato di un file nel progetto hai bisogno anche di un compile_commands.json, diversamente puoi saltare questa parte. Questo può essere ottenuto facilmente se stai utilizzando un sistema di compilazione moderno, ad esempio CMake o Meson. Per CMake è sufficiente passare <code
>-DCMAKE_EXPORT_COMPILE_COMMANDS=ON</code
> quando si invoca cmake. Il <code
>compile_commands.json</code
> dovrebbe essere messo nella radice del progetto. Chiudi la scheda dell'esploratore del compilatore: quando la riapri dovrebbe essere così. Chiudi la scheda dell'esploratore del compilatore in Kate: quando la riapri dovrebbe mostrare i comandi di compilazione necessari per compilare il file.</para>

<para
>Se stai usando l'esploratore del compilatore solo per vedere il codice generato per qualcosa di temporaneo, puoi semplicemente scrivere i comandi di compilazione per il tuo file e poi fare clic su <guilabel
>Compila</guilabel
>. Nota che la ricompilazione automatica alla modifica non è supportata: devi fare clic su Compila ogni volta che vuoi ricompilare.</para>

<para
>Quando il file è stato compilato, nella parte destra dovresti vedere il codice generato. Puoi fare clic col tasto destro e selezionare <guilabel
>Rivela il codice collegato</guilabel
> per vedere il codice generato di una particolare riga. In maniera simile, nella parte destra puoi fare clic col tasto destro e selezionare <guilabel
>Scorri al sorgente</guilabel
> per vedere il codice sorgente di una  certa riga di codice generato.</para>

</sect2>

</sect1>

<!-- BEGIN Format plugin -->

<sect1 id="kate-application-plugin-formatting">
<title
>L'estensione Formattazione</title>

<para
>L'estensione di formattazione permette di formattare il codice in maniera semplice. L'estensione mira a preservare la cronologia degli annullamenti e la posizione del cursore utente durante la formattazione del codice, in modo che l'azione non disturbi il lavoro dell'utente. Questo è particolarmente importante per la formattazione automatica al salvataggio.</para>

<sect2 id="formatting-how-to-use">
<title
>Uso</title>

<para
>Permette all'utente di usare il formattatore del codice in due modi: <itemizedlist>
<listitem
><para
>Manualmente, usando l'azione «Formatta documento».</para
></listitem>
<listitem
><para
>Automaticamente al salvataggio</para
></listitem>
</itemizedlist>
</para>

<tip
><para
>Per un accesso più semplice puoi cercare questa azione nella barra dei comandi, e poi associargli una scorciatoia</para
></tip>

</sect2>

<sect2 id="formatting-supported-langs-formatters">
<title
>Linguaggi e formattatori supportati</title>

<para
>L'elenco attuale delle lingue e dei formattatori comprende: <itemizedlist>

<listitem
><para
>C/C++/ObjectiveC/ObjectiveC++/Protobuf/GLSL/Java - <command
>clang-format</command
> </para
></listitem>

<listitem
><para
>Javascript/Typescript/JSX/TSX - <command
>prettier</command
> </para
></listitem>

<listitem
><para
>JSON <itemizedlist>
  <listitem
><para
><command
>prettier</command
></para
></listitem>
  <listitem
><para
><command
>clang-format</command
></para
></listitem>
  <listitem
><para
><command
>jq</command
></para
></listitem>
</itemizedlist>
</para
></listitem>

<listitem
><para
>Dart - <command
>dartfmt</command
></para
></listitem>
<listitem
><para
>Rust - <command
>rustfmt</command
></para
></listitem>
<listitem
><para
>Go - <command
>gofmt</command
></para
></listitem>
<listitem
><para
>XML - <command
>xmllint</command
></para
></listitem>
<listitem
><para
>Zig - <command
>zigfmt</command
></para
></listitem>
<listitem
><para
>CMake - <command
>cmake-format</command
></para
></listitem>
<listitem
><para
>D - <command
>dfmt</command
></para
></listitem>
<listitem
><para
>Fish Shell - <command
>fish_indent</command
></para
></listitem>
<listitem
><para
>Bash - <command
>shfmt</command
></para
></listitem>
<listitem
><para
>Nix - <command
>nixfmt</command
></para
></listitem>
<listitem
><para
>QML - <command
>qmlformat</command
></para
></listitem>
<listitem
><para
>HTML - <command
>prettier</command
></para
></listitem>
<listitem
><para
>Swift - <command
>swiftformat</command
></para
></listitem>
<listitem
><para
>Erlang - <command
>erlfmt</command
></para
></listitem>
<listitem
><para
>Godot Script - <command
>gdformat</command
></para
></listitem>

<listitem
><para
>Python <itemizedlist>
  <listitem
><para
><command
>autopep8</command
></para
></listitem>
  <listitem
><para
><command
>ruff</command
></para
></listitem>
</itemizedlist>
</para
></listitem>

<listitem
><para
>YAML <itemizedlist>
  <listitem
><para
><command
>yamlfmt</command
></para
></listitem>
  <listitem
><para
><command
>prettier</command
></para
></listitem>
</itemizedlist>
</para
></listitem>

</itemizedlist>
</para>

</sect2>

<sect2 id="formatting-plugin-configuring">
<title
>Configurazione</title>

<para
>L'estensione può essere configurata in due modi: <itemizedlist>
<listitem
><para
>Globalmente, dalla finestra Configura</para
></listitem>
<listitem
><para
>Per progetto, usando il file <filename
>.kateproject</filename
></para
></listitem>
</itemizedlist>
</para>

<para
>Alla lettura della configurazione l'estensione prova prima a leggerla dal file <filename
>.kateproject</filename
>, quindi legge quella globale. Esempio: </para>

<screen
>{
    "formatOnSave": true,
    "formatterForJson": "jq",
    "cmake-format": {
        "formatOnSave": false
    },
    "autopep8": {
        "formatOnSave": false
    }
}
</screen>

<para
>Quanto sopra: <itemizedlist>
<listitem
><para
>abilita "format on save" globalmente</para
></listitem>
<listitem
><para
>specifica "jq" come il formattatore per JSON</para
></listitem>
<listitem
><para
>disabilita "format on save" per cmake-format e per autopep8</para
></listitem>
</itemizedlist>
</para>

<para
>Per configurare il formattatore per un progetto, crea prima un file <filename
>.kateproject</filename
> e poi aggiungigli un oggetto <code
>"formattatore"</code
>. Qui dentro puoi specificare le impostazioni, come mostrato nell'esempio precedente. Esempio: </para>
<note
><para
>Affinché funzioni devi abilitare l'<link linkend="kate-application-plugin-projects"
>Estensione di progetto</link
></para
></note>

<screen
>{
    "name": "My Cool Project",
    "files": [
        {
            "git": 1
        }
    ],
    "formatting": {
        "formatterForJson": "clang-format",
        "autopep8": {
            "formatOnSave": false
        }
    }
}
</screen>

</sect2>

<sect2 id="formatting-plugin-temp-disable-autosave-format">
<title
>Disabilitare temporaneamente la formattazione al salvataggio</title>

<para
>Mentre lavori, potresti aver spesso bisogno di disabilitare temporaneamente il formattatore per vari di motivi. Puoi farlo dalla barra dei menu, <menuchoice
><guimenu
>Strumenti</guimenu
> <guimenuitem
>Formattazione al salvataggio</guimenuitem
></menuchoice
>. Puoi anche innescare questa azione dalla <guilabel
>Barra dei comandi</guilabel
>. </para>

</sect2>

</sect1>

<!-- END Format plugin -->

</chapter>
