dwww Home | Show directory contents | Find package

<FILENAME filename="index.html"><html><head><title>Manuale di KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="description" content="KDevelop è un ambiente di sviluppo integrato da utilizzare per una grande varietà di attività di programmazione."><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="next" href="what-is-kdevelop.html" title="Capitolo 1. Cosa è KDevelop?"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Manuale di <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="what-is-kdevelop.html">Avanti</a></td></tr></table></div><div id="contentBody"><div lang="it" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="kdevelop"></a>Manuale di <span class="application">KDevelop</span></h1></div><div><div class="authorgroup"><p class="author"><span class="firstname">Questa documentazione è stata convertita dalla pagina <a class="ulink" href="https://userbase.kde.org/KDevelop4/Manual" target="_top">KDevelop4/Manual</a> di KDE UserBase .</span> <span class="surname"></span> </p><span class="othercredit"><span class="contrib">Traduzione della documentazione.</span>: <span class="firstname">Simone</span> <span class="surname">Solinas</span><br></span></div></div><div>Revisione <span class="releaseinfo"><span class="application">KDevelop</span> 4.4 (<span class="orgname">KDE<br></span> 4.9) (<span class="date">2012-08-19</span>)</span></div><div><p><a href="help:/kdoctools5-common/fdl-notice.html">Nota Legale</a></p></div><div><div><div class="abstract"><p><span class="application">KDevelop</span> è un ambiente di sviluppo integrato da utilizzare per una grande varietà di attività di programmazione.</p></div></div></div></div><hr></div><div class="toc"><p><b>Indice</b></p><dl class="toc"><dt><span class="chapter"><a href="what-is-kdevelop.html">1. Cosa è <span class="application">KDevelop</span>?</a></span></dt><dt><span class="chapter"><a href="sessions-and-projects--the-basics-of-kdevelop.html">2. Sessioni e progetti: le basi di <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="sessions-and-projects--the-basics-of-kdevelop.html#terminology">Terminologia</a></span></dt><dt><span class="sect1"><a href="setting-up-a-session-and-importing-an-existing-project.html">Impostare una sessione e importare un progetto esistente</a></span></dt><dd><dl><dt><span class="sect2"><a href="setting-up-a-session-and-importing-an-existing-project.html#option-1--importing-a-project-from-a-version-control-system-server">Opzione 1: importare un progetto da un server vcs</a></span></dt><dt><span class="sect2"><a href="setting-up-a-session-and-importing-an-existing-project.html#option-2--importing-a-project-that-is-already-on-your-hard-drive">Opzione 2: importare un progetto che è già sul tuo disco fisso</a></span></dt></dl></dd><dt><span class="sect1"><a href="setting-up-an-application-as-a-second-project.html">Impostare un'applicazione come secondo progetto</a></span></dt><dt><span class="sect1"><a href="creating-projects-from-scratch.html">Creare progetti da zero</a></span></dt></dl></dd><dt><span class="chapter"><a href="working-with-source-code.html">3. Lavorare con il codice sorgente</a></span></dt><dd><dl><dt><span class="sect1"><a href="working-with-source-code.html#tools-and-views">Strumenti e viste</a></span></dt><dt><span class="sect1"><a href="exploring-source-code.html">Esplorare il codice sorgente</a></span></dt><dd><dl><dt><span class="sect2"><a href="exploring-source-code.html#local-information">Informazioni locale</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#file-scope-information">Informazioni sul ambito del file</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#project-and-session-scope-information">Informazioni sull'ambito del progetto e della sessione</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#rainbow-color-highlighting-explained">Spiegazione dei colori di evidenziazione</a></span></dt></dl></dd><dt><span class="sect1"><a href="navigating-in-source-code.html">Navigare nel codice sorgente</a></span></dt><dd><dl><dt><span class="sect2"><a href="navigating-in-source-code.html#local-navigation">Navigazione locale</a></span></dt><dt><span class="sect2"><a href="navigating-in-source-code.html#file-scope-navigation-and-outline-mode">Navigazione dell'ambito del file e modalità schema riassuntivo</a></span></dt><dt><span class="sect2"><a href="navigating-in-source-code.html#project-and-session-scope-navigation--semantic-navigation">Navigazione dell'ambito della sessione e del progetto: navigazione semantica</a></span></dt></dl></dd><dt><span class="sect1"><a href="writing-source-code.html">Scrivere codice sorgente</a></span></dt><dd><dl><dt><span class="sect2"><a href="writing-source-code.html#auto-completion">Auto-completamento</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#adding-new-classes-and-implementing-member-functions">Aggiungere nuove classi e implementare le funzioni membro</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#documenting-declarations">Documentare le dichiarazioni</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#renaming-variables-functions-and-classes">Rinominare le variabili, le funzioni e le classi</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#code-snippets">Frammenti di codice</a></span></dt></dl></dd><dt><span class="sect1"><a href="modes-and-working-sets.html">Modalità e working set</a></span></dt><dt><span class="sect1"><a href="some-useful-keyboard-shortcuts.html">Alcune utili scorciatoie da tastiera</a></span></dt></dl></dd><dt><span class="chapter"><a href="code-generation-with-templates.html">4. Generare codice con i modelli</a></span></dt><dd><dl><dt><span class="sect1"><a href="code-generation-with-templates.html#creating-a-new-class">Creare una nuova classe</a></span></dt><dt><span class="sect1"><a href="creating-a-new-unit-test.html">Creare un nuovo unit test</a></span></dt><dt><span class="sect1"><a href="other-files.html">Altri file</a></span></dt><dt><span class="sect1"><a href="managing-templates.html">Gestire i modelli</a></span></dt></dl></dd><dt><span class="chapter"><a href="building-compiling-projects-with-custom-makefiles.html">5. Compilare progetti con Makefile personalizzati</a></span></dt><dd><dl><dt><span class="sect1"><a href="building-compiling-projects-with-custom-makefiles.html#building-individual-makefile-targets">Compilare obiettivi Makefile individuali</a></span></dt><dt><span class="sect1"><a href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Selezionare una collezione di obiettivi Makefile per compilazioni ripetute</a></span></dt><dt><span class="sect1"><a href="what-to-do-with-error-messages.html">Cosa fare con i messaggi di errore</a></span></dt></dl></dd><dt><span class="chapter"><a href="running-programs-in-kdevelop.html">6. Eseguire programmi in <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="running-programs-in-kdevelop.html#setting-up-launches-in-kdevelop">Impostare i lanci in <span class="application">KDevelop</span></a></span></dt><dt><span class="sect1"><a href="some-useful-keyboard-shortcuts0.html">Alcune utili scorciatoie da tastiera</a></span></dt></dl></dd><dt><span class="chapter"><a href="debugging-programs-in-kdevelop.html">7. Fare il debug dei programmi in <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="debugging-programs-in-kdevelop.html#running-a-program-in-the-debugger">Eseguire un programma nel debugger</a></span></dt><dt><span class="sect1"><a href="attaching-the-debugger-to-a-running-process.html">Collegare il debugger ad un processo in esecuzione</a></span></dt><dt><span class="sect1"><a href="some-useful-keyboard-shortcuts1.html">Alcune utili scorciatoie da tastiera</a></span></dt></dl></dd><dt><span class="chapter"><a href="working-with-version-control-systems.html">8. Lavorare con i sistemi di controllo versione</a></span></dt><dt><span class="chapter"><a href="customizing-kdevelop.html">9. Personalizzare <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="customizing-kdevelop.html#customizing-the-editor">Personalizzare l'editor</a></span></dt><dt><span class="sect1"><a href="customizing-code-indentation.html">Personalizzare l'identazione del codice</a></span></dt><dt><span class="sect1"><a href="customizing-keyboard-shortcuts.html">Personalizzare le scorciatoie da tastiera</a></span></dt><dt><span class="sect1"><a href="customizing-code-auto-completion.html">Personalizzare l'auto-completamento del codice</a></span></dt></dl></dd><dt><span class="chapter"><a href="credits.html">10. Riconoscimenti e licenza</a></span></dt></dl></div><FILENAME filename="what-is-kdevelop.html"><html><head><title>Capitolo 1. Cosa è KDevelop?</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="index.html" title="Manuale di KDevelop"><link rel="next" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capitolo 2. Sessioni e progetti: le basi di KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Cosa è <span class="application">KDevelop</span>?</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="sessions-and-projects--the-basics-of-kdevelop.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="what-is-kdevelop"></a>Capitolo 1. Cosa è <span class="application">KDevelop</span>?</h1></div></div></div><p><a class="ulink" href="https://www.kdevelop.org" target="_top"><span class="application">KDevelop</span></a> è un ambiente di sviluppo integrato (IDE) moderno per il C++ (e altri linguaggi), questo è una delle tante <a class="ulink" href="https://kde.org/applications/" target="_top">applicazioni di KDE</a>. Come tale esso viene eseguito su <span class="trademark">Linux</span>® (anche se si esegue uno degli altri desktop, come GNOME), ma è disponibile per la maggior parte delle altre varianti di <span class="trademark">UNIX</span>® e anche per Windows.</p><p><span class="application">KDevelop</span> offre tutte le comodità dei moderni IDE. Per progetti e applicazioni di grandi dimensioni, la caratteristica più importante è che <span class="application">KDevelop</span> <span class="emphasis"><em>interpreta il C++</em></span>: analizza l'intero codice sorgente e ricorda le funzioni membro delle classi, dove sono definite le variabili, quali sono i loro tipi, e molte altre cose sul codice. Per esempio, mettiamo il caso che in uno dei file di intestazione del tuo progetto sia dichiarata la seguente classe</p><pre class="programlisting">class Car {
  // ...
  public:
    std::string get_color () const;
};
</pre><p>
</p><p>poi nel tuo programma hai</p><pre class="programlisting">Car my_ride;
// ...do something with this variable...
std::string color = my_ride.ge
</pre><p>
</p><p>questo ti avrà ricordato che <code class="varname">my_ride</code> nell'ultima riga è una variabile di tipo <code class="varname">Car</code> e ti offre di completare <code class="varname">ge</code> come <code class="varname">get_color()</code> poiché questa è l'unica funzione membro della classe <code class="varname">Car</code> che inizia in questo modo. Invece di continuare a digitare basta premere <span class="keycap"><strong>Invio</strong></span> per ottenere la parola completa, questo permette di scrivere di meno, evitare errori di battitura, e non richiede di ricordare i nomi esatti delle centinaia o migliaia di funzioni e classi che compongono i progetti di grandi dimensioni.</p><p>Come secondo esempio, supponi di avere un codice come questo:</p><pre class="programlisting">double foo ()
{
  double var = my_func();
 return var * var;
}
double bar ()
{
  double var = my_func();
  return var * var * var;
}
</pre><p>Se passi il mouse sul simbolo <code class="varname">var</code> nella funzione <code class="varname">bar</code> hai la possibilità di vedere tutti i modi di utilizzare questo simbolo. Facendo clic su di esso ti verranno mostrati solo i modi di utilizzare questa variabile nella funzione <code class="varname">bar</code> perché <span class="application">KDevelop</span> sa che la variabile <code class="varname">var</code> nella funzione <code class="varname">foo</code> è una variabile diversa. Allo stesso modo, fare clic con il tasto destro sul nome della varibile consente di rinominare la variabile; in questo modo verrà toccata solo la variabile <code class="varname">bar</code> ma non quella con lo stesso nome presente in <code class="varname">foo</code>.</p><p>Ma <span class="application">KDevelop</span> non è solo un editor intelligente di codice; ci sono altre cose che <span class="application">KDevelop</span> fa' bene. Ovviamente sottolinea il codice sorgente con colori differenti; ha un identatore personalizzabile; ha un interfaccia integrata per il debugger GNU <span class="application">gdb</span>; può mostrare la documentazione per una funzione, se si passa il mouse sopra; può avere a che fare con tipi differenti di ambienti di compilazione e compilatori (ad esempio con <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">make</span></span> e progetti basati su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">cmake</span></span>), e molte altre cose che saranno discusse in questo manuale.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="sessions-and-projects--the-basics-of-kdevelop.html">Avanti</a></td></tr><tr><td class="prevCell">Manuale di <span class="application">KDevelop</span> </td><td class="upCell"> </td><td class="nextCell"> Sessioni e progetti: le basi di <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="sessions-and-projects--the-basics-of-kdevelop.html"><html><head><title>Capitolo 2. Sessioni e progetti: le basi di KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="what-is-kdevelop.html" title="Capitolo 1. Cosa è KDevelop?"><link rel="next" href="setting-up-a-session-and-importing-an-existing-project.html" title="Impostare una sessione e importare un progetto esistente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Sessioni e progetti: le basi di <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-is-kdevelop.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="setting-up-a-session-and-importing-an-existing-project.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sessions-and-projects--the-basics-of-kdevelop"></a>Capitolo 2. Sessioni e progetti: le basi di <span class="application">KDevelop</span></h1></div></div></div><p>In questa sezione, andremo oltre la terminologia di come <span class="application">KDevelop</span> vede il mondo e di come struttura il lavoro. In particolare, introdurremo il concetto di <span class="emphasis"><em>sessioni</em></span> e <span class="emphasis"><em>progetti</em></span> e spiegheremo come è possibile impostare i progetti su cui si desidera lavorare in <span class="application">KDevelop</span>.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="terminology"></a>Terminologia</h2></div></div></div><p><span class="application">KDevelop</span> ha l'approccio di <span class="emphasis"><em>sessioni</em></span> e <span class="emphasis"><em>progetti</em></span>. Una sessione contiene tutti i progetti che hanno qualcosa a che fare l'uno con l'altro. Per gli esempi che seguono, presupponiamo che tu sia lo sviluppatore sia di una libreria che di un'applicazione che la utilizza. Puoi pensare alle librerie base di KDE come se fossero la prima e a <span class="application">KDevelop</span> come se fosse l'ultima. Un altro esempio: diciamo che sei un hacker del kernel <span class="trademark">Linux</span>® ma che stai anche lavorando su un driver per un dispositivo per <span class="trademark">Linux</span>® che non è stato ancora aggiunto all'albero dei sorgenti del kernel.</p><p>Quindi, prendendo quest'ultimo come esempio, avresti una sessione in <span class="application">KDevelop</span> che ha due progetti: il kernel <span class="trademark">Linux</span>® e il driver del dispositivo. Vorrai raggrupparli in una singola sessione (piuttosto che avere due sessioni con un singolo progetto ciascuno) perché sarà utile vedere le funzioni del kernel e le strutture dati in <span class="application">KDevelop</span> ogni volta che scrivi il codice sorgente per il driver — per esempio in modo da ottenere le funzioni del kernel e i nomi delle variabili auto-espanse, o in modo da vedere la documentazione delle funzioni del kernel mentre si agisce sul driver del dispositivo.</p><p>Ora immagina anche di essere un sviluppatore di KDE. Quindi avresti una seconda sessione che contiene KDE come progetto. Potresti, in linea di principio avere una sola sessione per tutto questo, ma non c'è una vera ragione per questo: nel tuo lavoro per KDE, non hai bisogno di accedere alle funzioni del kernel o ai driver del dispositivo; e non vuoi che i nomi delle classi di KDE siano espansi automaticamente mentre lavori sul kernel <span class="trademark">Linux</span>®. Infine, la compilazione di alcune librerie di KDE è indipendente dal ricompilare il kernel <span class="trademark">Linux</span>® (invece ogni volta che compili il driver del dispositivo sarebbe anche bene ricompilare il kernel <span class="trademark">Linux</span>® se alcuni dei file di intestazione del kernel sono cambiati).</p><p>Infine, un altro uso per le sessioni è se lavori sia sulla versione di sviluppo di un progetto, che su un altro ramo: in questo caso,non vuoi che <span class="application">KDevelop</span> confonda le classi che appartengono alla linea principale e al ramo, quindi avresti due sessioni, con lo stesso insieme di progetti, ma da diverse cartelle (che corrispondono a diversi rami di sviluppo).</p></div><FILENAME filename="setting-up-a-session-and-importing-an-existing-project.html"><html><head><title>Impostare una sessione e importare un progetto esistente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capitolo 2. Sessioni e progetti: le basi di KDevelop"><link rel="prev" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capitolo 2. Sessioni e progetti: le basi di KDevelop"><link rel="next" href="setting-up-an-application-as-a-second-project.html" title="Impostare un'applicazione come secondo progetto"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Impostare una sessione e importare un progetto esistente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="sessions-and-projects--the-basics-of-kdevelop.html">Indietro</a></td><td class="upCell">Sessioni e progetti: le basi di <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="setting-up-an-application-as-a-second-project.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setting-up-a-session-and-importing-an-existing-project"></a>Impostare una sessione e importare un progetto esistente</h2></div></div></div><p>Rimanendo all'esempio del kernel <span class="trademark">Linux</span>® e dei driver — potresti voler sostituire i tuoi progetti o librerie di questi due esempi. Per creare una nuova sessione che contenga questi due progetti vai nel menu in alto a sinistra <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Sessione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Avvia una nuova sessione</span></span> (o se è la prima volta che usi <span class="application">KDevelop</span>: è sufficiente usare la sessione predefinita, quella del primo utilizzo, che è vuota).</p><p>Poi vogliamo popolare questa sessione con dei progetti che per il momento assumiamo già esistenti da qualche parte (il caso della creazione da zero di progetti è discusso altrove in questo manuale). Per fare questo, esistono essenzialmente due metodi, a seconda che il progetto sia già da qualche parte sul tuo disco fisso o se deve essere scaricato da un server.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="option-1--importing-a-project-from-a-version-control-system-server"></a>Opzione 1: importare un progetto da un server vcs</h3></div></div></div><p>Assumendo che il progetto che vogliamo creare — il kernel <span class="trademark">Linux</span>® — si trovi in qualche sistema di versione controllo su un server, che non hai ancora scaricato sul tuo disco fisso. In questo caso, vai nel menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Progetto</span></span> per creare il kernel <span class="trademark">Linux</span>® come progetto nella sessione corrente e poi segui questi passi:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Vai in <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Progetto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Preleva progetto</span></span> per importare un progetto </p></li><li class="listitem"><p>Quindi hai diverse opzioni per avviare un nuovo progetto nella sessione corrente, a seconda della provenienza dei file sorgente: puoi far puntare <span class="application">KDevelop</span> solo ad una cartella che esiste (vedi l'opzione 2 sotto), oppure puoi chiedere a <span class="application">KDevelop</span> di ottenere i sorgenti da un deposito. </p></li><li class="listitem"><p>Assumendo che tu non ne abbia già prelevata una versione: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Nella finestra di dialogo, sotto <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Seleziona il sorgente</span></span>, scegliere di usare <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Dal file system</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Git</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">GitHub</span></span> o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">KDE</span></span> </p></li><li class="listitem"><p>Scegli una cartella di lavoro come destinazione nella quale dovrebbero essere posti i sorgenti prelevati </p></li><li class="listitem"><p>Scegli un URL per la posizione del deposito da cui i file sorgente possono essere ottenuti </p></li><li class="listitem"><p>Premi <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Ottieni</span></span>. Questa operazione può richiedere parecchio tempo; a seconda della velocità della tua connessione e dalla dimensione del progetto. Purtroppo, in <span class="application">KDevelop</span> 4.2.x la barra di avanzamento in realtà non mostra nulla, ma si può tenere traccia dei progressi guardando periodicamente l'output della riga di comando</p><pre class="screen">du-sk<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>/path/to/<span class="application">KDevelop</span>/progetto</code></em></span></pre><p> per vedere quanti dati sono stati già scaricati. </p></li></ul></div><p>
</p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Il problema con la barra di avanzamento è stato segnalato nel <a class="ulink" href="https://bugs.kde.org/show_bug.cgi?id=256832" target="_top">bug di <span class="application">KDevelop</span> 256832</a></p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>In questo processo, ho anche ottenuto il messaggio d'errore <span class="emphasis"><em> È necessario specificare un percorso valido per il progetto</em></span> che può essere tranquillamente ignorato.</p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Ti chiede di selezionare in questa cartella un file di progetto di <span class="application">KDevelop</span>. Dal momento che probabilmente non ne hai ancora uno, basta premere <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Successivo</span></span> </p></li><li class="listitem"><p>Premi ancora <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Successivo</span></span> </p></li><li class="listitem"><p>poi <span class="application">KDevelop</span> ti chiederà di scegliere un gestore per il progetto. Se questo progetto usa dei make file standard di <span class="trademark">UNIX</span>® scegli gestore progetto Makefile personalizzato </p></li><li class="listitem"><p><span class="application">KDevelop</span> quindi inizierà ad analizzare l'intero progetto. Anche in questo caso, ci vorrà un bel po' per completare tutti i file e le classi <abbr class="abbrev">ecc.</abbr>. In basso a destra della finestra principale, c'è una barra di avanzamento che mostra quanto tempo dura questo processo. (Se disponi di un processore multicore, questo processo può essere accelerato andando alla voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Impostazioni</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configura <span class="application">KDevelop</span></span></span> , poi selezionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Analizzatore in background</span></span> sulla sinistra, e aumentando il numero di thread per l'analisi in background sulla destra). </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="option-2--importing-a-project-that-is-already-on-your-hard-drive"></a>Opzione 2: importare un progetto che è già sul tuo disco fisso</h3></div></div></div><p>In alternativa, se il progetto sul quale vuoi lavorare esiste già sul tuo disco fisso (per esempio, perché lo hai scaricato come un file tar da un server FTP, perché hai già prelevato una versione del progetto da un sistema di controllo versione, o perché è il tuo progetto ed esiste <span class="emphasis"><em>solo</em></span> sul tuo disco fisso ), allora usa <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Progetto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apri/Importa progetto</span></span> e nella finestra di dialogo scegli la cartella in cui risiede il progetto.</p></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="sessions-and-projects--the-basics-of-kdevelop.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="setting-up-an-application-as-a-second-project.html">Avanti</a></td></tr><tr><td class="prevCell">Sessioni e progetti: le basi di <span class="application">KDevelop</span> </td><td class="upCell">Sessioni e progetti: le basi di <span class="application">KDevelop</span></td><td class="nextCell"> Impostare un'applicazione come secondo progetto</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="setting-up-an-application-as-a-second-project.html"><html><head><title>Impostare un'applicazione come secondo progetto</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capitolo 2. Sessioni e progetti: le basi di KDevelop"><link rel="prev" href="setting-up-a-session-and-importing-an-existing-project.html" title="Impostare una sessione e importare un progetto esistente"><link rel="next" href="creating-projects-from-scratch.html" title="Creare progetti da zero"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Impostare un'applicazione come secondo progetto</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-a-session-and-importing-an-existing-project.html">Indietro</a></td><td class="upCell">Sessioni e progetti: le basi di <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="creating-projects-from-scratch.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setting-up-an-application-as-a-second-project"></a>Impostare un'applicazione come secondo progetto</h2></div></div></div><p>La prossima cosa che vuoi fare è impostare altri progetti nella stessa sessione. Nell'esempio precedente, volevi aggiungere come secondo progetto il driver del dispositivo, che puoi fare eseguendo gli stessi passi.</p><p>Se hai applicazioni o librerie multiple, ripeti semplicemente i passi per aggiungere sempre più progetti alla tua sessione.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-a-session-and-importing-an-existing-project.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="creating-projects-from-scratch.html">Avanti</a></td></tr><tr><td class="prevCell">Impostare una sessione e importare un progetto esistente </td><td class="upCell">Sessioni e progetti: le basi di <span class="application">KDevelop</span></td><td class="nextCell"> Creare progetti da zero</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="creating-projects-from-scratch.html"><html><head><title>Creare progetti da zero</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capitolo 2. Sessioni e progetti: le basi di KDevelop"><link rel="prev" href="setting-up-an-application-as-a-second-project.html" title="Impostare un'applicazione come secondo progetto"><link rel="next" href="working-with-source-code.html" title="Capitolo 3. Lavorare con il codice sorgente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Creare progetti da zero</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-an-application-as-a-second-project.html">Indietro</a></td><td class="upCell">Sessioni e progetti: le basi di <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="working-with-source-code.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-projects-from-scratch"></a>Creare progetti da zero</h2></div></div></div><p>C'è, naturalmente, anche la possibilità che tu voglia iniziare un nuovo progetto da zero. Questo può essere fatto usando la voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Progetto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Nuovo da modello...</span></span> che ti si presenta con una finestra per la scelta del modello. Alcuni modelli di progetto sono forniti da <span class="application">KDevelop</span>, ma ce ne sono molti altri se si installa l'applicazione <span class="application">KAppTemplate</span>. Scegli il tipo di progetto e il linguaggio di programmazione dalla finestra di dialogo, immetti un nome e una posizione per il tuo progetto e fai clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Successivo</span></span>. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-project-dialog.png"></div></div><p>
</p><p>La seconda pagina della finestra di dialogo ti permette di impostare un sistema di controllo versione. Scegli il sistema che vuoi usare, e completa se necessario la configurazione specifica del sistema. Se non vuoi usare un sistema di controllo versione, o vuoi impostarlo manualmente in seguito, scegli <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Nessuno</span></span>. Quando sei contento delle tue scelte, premi <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Completa</span></span>. </p><p>Ora il tuo progetto è stato creato, per cui puoi provare a compilarlo o a installarlo. Alcuni modelli conterranno dei commenti nel codice, o pure un file README separato, e si raccomanda di leggerlo prima. Poi puoi iniziare a lavorare sul tuo progetto, aggiungendo qualsiasi funzionalità desideri. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-an-application-as-a-second-project.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="working-with-source-code.html">Avanti</a></td></tr><tr><td class="prevCell">Impostare un'applicazione come secondo progetto </td><td class="upCell">Sessioni e progetti: le basi di <span class="application">KDevelop</span></td><td class="nextCell"> Lavorare con il codice sorgente</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-is-kdevelop.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="setting-up-a-session-and-importing-an-existing-project.html">Avanti</a></td></tr><tr><td class="prevCell">Cosa è <span class="application">KDevelop</span>? </td><td class="upCell"> </td><td class="nextCell"> Impostare una sessione e importare un progetto esistente</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="working-with-source-code.html"><html><head><title>Capitolo 3. Lavorare con il codice sorgente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="creating-projects-from-scratch.html" title="Creare progetti da zero"><link rel="next" href="exploring-source-code.html" title="Esplorare il codice sorgente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Lavorare con il codice sorgente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-projects-from-scratch.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="exploring-source-code.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="working-with-source-code"></a>Capitolo 3. Lavorare con il codice sorgente</h1></div></div></div><p>Oltre a fare il debug, quello su cui passerai la maggior parte del tempo quando svilupperai software sarà leggere e scrivere codice sorgente. A tal fine, <span class="application">KDevelop</span> ti offre molti modi diversi per analizzare il codice sorgente e per rendere più produttiva la scrittura. Come discusso più in dettaglio nelle sezioni seguenti, <span class="application">KDevelop</span> non è solo un editor di sorgenti — piuttosto, si tratta di un sistema di gestione dei sorgenti che ti da diversi modi di vedere le informazioni estratte dai file che insieme compongono il codice sorgente della sessione.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tools-and-views"></a>Strumenti e viste</h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-7.png"><div class="caption"><p></p></div></div></div><p>Al fine di lavorare con i progetti, <span class="application">KDevelop</span> possiede il concetto degli <span class="emphasis"><em>strumenti</em></span>. Uno strumento fornisce una visione particolare del sorgente, o di un'azione che può essere fatta con esso. Gli strumenti sono rappresentati da pulsanti nella finestra (nel testo verticale lungo i margini destro e sinistro, o in orizzontale lungo il margine inferiore). Se fai clic su di essi, si espandono in una sotto finestra — una <span class="emphasis"><em>vista</em></span> — all'interno della finestra principale; se fai ancora clic sul pulsante dello strumento, la sottofinestra scompare di nuovo.</p><p>Per far chiudere una sottofinestra, puoi fare clic sulla <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">x</span></span> in alto a destra della sottofinestra.</p><p>L'immagine sopra mostra una particolare selezione di strumenti, allineata a sinistra e al margine destro, nella foto, lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classi</span></span> è aperto sulla sinistra e lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Frammenti</span></span> lo è sulla destra, insieme all'editor del file sorgente nel mezzo. In pratica, per la maggior parte del tempo avrai solo l'editor e forse lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classi</span></span> o quello <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Browser del codice</span></span> aperti sulla sinistra. Gli altri strumenti si apriranno solo temporaneamente durante l'uso, lasciando per la maggior parte del tempo più spazio all'editor.</p><p>Quando esegui <span class="application">KDevelop</span> la prima volta, dovresti avere già il pulsante dello strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Progetti</span></span>. Fai clic su di esso: si aprirà una sottofinestra che mostra, in basso, i progetti che hai aggiunto alla sessione, e una vista, in alto, del file system delle cartelle dei tuoi progetti.</p><p>Ci sono molti altri strumenti che puoi usare con <span class="application">KDevelop</span> non tutti sono presenti all'inizio come pulsanti sulla finistra. Per aggiungerne altri, vai alla voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Finestra</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Aggiungi vista strumento</span></span>. Qui ci sono alcune viste che probabilmente troverai utili:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classi</span></span>: un elenco completo di tutte le classi che sono definite in uno dei progetti o la tua sessione con tutte le sue funzioni membro e variabili. Facendo clic su uno qualsiasi dei membri si apre una finestra dell'editor del sorgente relativa all'elemento sul quale hai fatto clic. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Documenti</span></span>: elenca alcuni dei file visitati più di recente, per tipo (ad esempio sorgenti, patch, documenti di testo). </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Browser del codice</span></span>: a seconda della posizione del cursore in un file, questo strumento mostra le cose che sono in relazione. Per esempio, se sei su una riga <code class="varname">#include</code>, vengono mostrate informazioni sul file che stai includendo ad esempio quali classi sono dichiarate in questo file, se sei su una riga vuota nell'ambito del file, vengono mostrate le classi e le funzioni dichiarate e definite nel file (tutte come collegamenti: se fai clic su una di esse questo ti porterà al punto del file in cui è in realtà la dichiarazione o la definizione); se sei nella definizione di una funzione, questo ti mostrerà dov'è la dichiarazione e ti offrirà un elenco di posti in cui viene usata la funzione. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Filesystem</span></span>: ti mostra una vista ad albero del file system. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Documentazione</span></span>: ti permette di cercare pagine man e altra documentazione d'aiuto. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Frammenti</span></span>: fornisce le sequenze di testo che si usano di più e che non si vuole scrivere ogni volta. Ad esempio, nel progetto dalla quale l'immagine qui sopra è stata creata, vi è una frequente necessità di scrivere del codice del tipo </p></li></ul></div><pre class="programlisting">for (typename Triangulation&lt; dim&gt;::active_cell_iterator cell
      = triangulation.begin_active();
   cell != triangulation.end();
   ++cell)</pre><p>Questa è un'espressione complicata ma sembrerà sempre la stessa ogni volta che avrai bisogno di un ciclo simile — cosa che la rende una buona candidata per un frammento.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Konsole</span></span>: apre una finestra della riga di comando nella finestra principale di <span class="application">KDevelop</span>, per il comando occasionale che potresti inserire (<abbr class="abbrev">ad es.</abbr> per eseguire <code class="varname">./configure</code>). </p></li></ul></div><p><a class="ulink" href="https://userbase.kde.org/Special:myLanguage/KDevelop4/Manual/Tool%20list" target="_top">Qui</a> puoi trovare un elenco completo di strumenti e viste.</p><p>Per molti programmatori, lo spazio verticale dello schermo è il più importante. A questo proposito, è possibile organizzare le tue viste strumento sul margine sinistro e destro della finestra: per spostare uno strumento, fare clic sul simbolo con il tasto destro del mouse e selezionare una nuova posizione.</p></div><FILENAME filename="exploring-source-code.html"><html><head><title>Esplorare il codice sorgente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="working-with-source-code.html" title="Capitolo 3. Lavorare con il codice sorgente"><link rel="prev" href="working-with-source-code.html" title="Capitolo 3. Lavorare con il codice sorgente"><link rel="next" href="navigating-in-source-code.html" title="Navigare nel codice sorgente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Esplorare il codice sorgente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-source-code.html">Indietro</a></td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"><a accesskey="n" href="navigating-in-source-code.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="exploring-source-code"></a>Esplorare il codice sorgente</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="local-information"></a>Informazioni locale</h3></div></div></div><p><span class="application">KDevelop</span> <span class="emphasis"><em>interpreta</em></span> il codice sorgente, e di conseguenza è veramente valido nel fornire informazioni sulle variabili o funzioni che possono apparire nel tuo programma. Per esempio, ecco un'istantanea del lavoro su un pezzo di codice e sul passaggio del mouse sopra il simbolo <code class="varname">cell</code> nella riga 1316 (se stai lavorando usando solo la tastiera, è possibile ottenere lo stesso effetto tenendo premuto per un po' il tasto <span class="keycap"><strong>Alt</strong></span>):</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-13.png"><div class="caption"><p></p></div></div></div><p><span class="application">KDevelop</span> mi mostra un suggerimento che include il tipo della variabile (qui: <code class="varname">DoFHandler&lt;dim&gt;active_cell_iterator</code> ), dove è dichiarata questa variabile (il <span class="emphasis"><em>contenitore</em></span>, che qui è la funzione circondata <code class="varname">get_maximal_velocity</code> dal momento che è una variabile locale), cosa è (una variabile, non una funzione, classe o namespace) e dove è dichiarata (nella riga 1314, solo poche righe sopra).</p><p>Nel contesto attuale, il simbolo sul quale viene passato il mouse non ha alcuna documentazione associata. In questo esempio, il mouse viene fatto passare sopra il simbolo <code class="varname">get_this_mpi_process</code> nella riga 1318, il risultato è questo:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-14.png"><div class="caption"><p></p></div></div></div><p>Qui, <span class="application">KDevelop</span> ha fatto un riferimento incrociato della dichiarazione da un file completamente diverso (<code class="filename">utilities.h</code>, che in realtà sta anche in un diverso progetto della stessa sessione) con il commento in stile doxygen che accompagna la dichiarazione.</p><p>Ciò che rende questi suggerimenti ancora più utili è il fatto che sono dinamici: posso fare clic sul contenitore per ottenere informazioni sul contesto nel quale la variabile è dichiarata (cioè sul namespace di <code class="varname">System</code>, come per esempio dove è dichiarato, definito, usato, o com'è la sua documentazione) e posso fare clic sui collegamenti di color blu che consentono di resettare la posizione del cursore alla posizione della dichiarazione del simbolo (<abbr class="abbrev">ad es.</abbr> in <code class="varname">utilities.h</code>, riga 289) o darmi un elenco di posti in cui questo simbolo viene utilizzato nel file corrente o in tutti i progetti della sessione corrente. Quest'ultimo punto è spesso utile se vuoi analizzare come, per esempio, è utilizzata una funzione particolare in codici di grandi dimensioni.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Le informazioni contenute in un suggerimento sono rapide - dipende da te tenendo premuto il tasto <span class="keycap"><strong>Alt</strong></span> o passando il mouse. Se vuoi un posto permanente per queste, apri lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Browser del codice</span></span> in una delle sotto finestre. Per esempio, qui il cursore si trova sulla stessa funzione dell'esempio precedente, e la vista strumento a sinistra presenta lo stesso tipo di informazione del suggerimento di prima:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-15.png"><div class="caption"><p></p></div></div></div><p>Spostando il cursore a destra cambiano le informazioni presentate sulla sinistra. Inoltre, facendo clic sul pulsante <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Blocca la vista corrente</span></span> in alto a destra questo permette di bloccare queste informazioni, rendendole indipendenti dal movimento del cursore mentre analizzi l'informazione fornita.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Questo tipo di informazioni di contesto è disponibile in molti altri posti in<span class="application">KDevelop</span>, non solo nell'editor di sorgente. Ad esempio, tenendo premuto <span class="keycap"><strong>Alt</strong></span> in un elenco di completamento (<abbr class="abbrev">ad es.</abbr> quando si esegue un'apertura rapida) fornisce anche informazioni di contesto relative al simbolo corrente.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="file-scope-information"></a>Informazioni sul ambito del file</h3></div></div></div><p>Il passo successivo è quello di ottenere informazioni su tutto il file sorgente a cui stai lavorando in questo momento. A tal fine, posiziona il cursore nell'ambito del file nel file corrente e guarda come viene mostrato lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Browser del codice</span></span>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-16.png"><div class="caption"><p></p></div></div></div><p>Qui sono mostrati un elenco di namespace, classi e funzioni dichiarate o definite nel file, offrendoti una panoramica di quello che sta succedendo in questo file e un mezzo per passare direttamente ad una qualsiasi di queste dichiarazioni o definizioni senza andare da un punto all'altro del file o alla ricerca di un simbolo particolare.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Le informazioni visualizzate dell'ambito del file sono le stesse di quelle presentate nella modalità <span class="quote">«<span class="quote">Schema riassuntivo</span>»</span> discusse di seguito per la navigazione del codice sorgente, la differenza è che la modalità schema riassuntivo rappresenta solo un suggerimento temporaneo.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="project-and-session-scope-information"></a>Informazioni sull'ambito del progetto e della sessione</h3></div></div></div><p>Ci sono molti modi per ottenere informazioni sull'intero progetto (o, di fatto, su tutti i progetti in una sessione). Questo tipo di informazione è tipicamente fornita attraverso vari strumenti vista. Ad esempio, lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classi</span></span> fornisce una struttura ad albero di tutte le classi e circonda i namespace di tutti i progetti in una sessione, insieme con le funzioni membro e le variabili membro di ciascuna di queste classi:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-17.png"><div class="caption"><p></p></div></div></div><p>Passando il mouse sopra una voce vengono fornite ulteriori informazioni sul simbolo, la posizione della sua dichiarazione e definizione, e i suoi usi. Facendo doppio clic su una voce in questa vista ad albero si apre una finestra nella posizione in cui il simbolo è dichiarato o definito.</p><p>Ma ci sono altri modi di vedere le informazioni globali. Ad esempio, lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Documenti</span></span> fornisce una vista di un progetto in termini di tipi di file o altri documenti di cui è composto questo progetto:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-18.png"><div class="caption"><p></p></div></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rainbow-color-highlighting-explained"></a>Spiegazione dei colori di evidenziazione</h3></div></div></div><p><span class="application">KDevelop</span> usa una varietà di colori per evidenziare diversi oggetti nel codice sorgente. Se sai cosa significano i diversi colori, è possibile estrarre rapidamente molte informazioni dal codice sorgente solo guardando i colori, senza leggere un singolo carattere. Le regole di evidenziazione sono le seguenti: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Gli oggetti di tipo Class / Struct, Enum (i valori e il tipo), funzioni (globali), e i membri della classe hanno ciascuno un proprio colore assegnato (le classi sono verdi, le enumerazioni sono di colore rosso scuro, ed i membri sono di colore giallo scuro o viola, le funzioni (globali) sono sempre viola).</p></li><li class="listitem"><p>Tutte le variabili globali sono colorate di verde scuro.</p></li><li class="listitem"><p>Gli identificatori che sono dei typedef di altri tipi sono colorati di color foglia di tè.</p></li><li class="listitem"><p>Tutte le dichiarazioni e definizioni degli oggetti sono in neretto.</p></li><li class="listitem"><p>Se si accede ad un membro dall'interno del contesto dove è definito (classe di base o derivata) appare in giallo, altrimenti appare in viola.</p></li><li class="listitem"><p>Se un membro è privato o protetto, si colora di un colore leggermente più scuro quando viene usato.</p></li><li class="listitem"><p>Per le variabili locali nell'ambito del corpo della funzione, i colori sono scelti in base al hash della identificatore. Questo include i parametri della funzione. Un identificatore avrà sempre lo stesso colore nel suo ambito (ma lo stesso identificatore otterrà un colore diverso se rappresenta un oggetto diverso, cioè se viene ridefinito in un ambito nidificato), e di solito otterrai lo stesso colore per lo stesso nome dell'identificatore in ambiti diversi. Quindi, se disponi di molteplici funzioni che assumono gli stessi nomi per gli identificatori, tutti gli argomenti avranno lo stesso aspetto in termini di colore. Questi colori possono essere disattivati separatamente dalla colorazione globale nella finestra delle impostazioni.</p></li><li class="listitem"><p>Gli indentificatori per i quali <span class="application">KDevelop</span> non può determinare la dichiarazione sono colorati in bianco. Questo talvolta può essere causato dalla perdita delle direttive <code class="varname">#include</code>.</p></li><li class="listitem"><p>In aggiunta a questa colorazione, sarà applicata la normale sintassi di evidenziazione dell'editor, come noto da <span class="application">Kate</span>. La semantica di evidenziazione di <span class="application">KDevelop</span> sovrascriverà sempre l'evidenziazione dell'editor in presenza di un conflitto.</p></li></ul></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-source-code.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="navigating-in-source-code.html">Avanti</a></td></tr><tr><td class="prevCell">Lavorare con il codice sorgente </td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"> Navigare nel codice sorgente</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="navigating-in-source-code.html"><html><head><title>Navigare nel codice sorgente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="working-with-source-code.html" title="Capitolo 3. Lavorare con il codice sorgente"><link rel="prev" href="exploring-source-code.html" title="Esplorare il codice sorgente"><link rel="next" href="writing-source-code.html" title="Scrivere codice sorgente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Navigare nel codice sorgente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="exploring-source-code.html">Indietro</a></td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"><a accesskey="n" href="writing-source-code.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="navigating-in-source-code"></a>Navigare nel codice sorgente</h2></div></div></div><p>Nella sezione precedente, abbiamo discusso dell'esplorazione del codice sorgente, cioè ottenere informazioni sui simboli, sui file e progetti. Il passo successivo consisterà nel saltare da un punto all'altro del codice, cioè navigarlo. Ci sono ancora diversi livelli ai quali questo può essere fatto: locale, dentro un file, e all'interno di un progetto.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Molti dei modi di attraversare il codice sono accessibili dal menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navigazione</span></span> nella finestra principale di <span class="application">KDevelop</span>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="local-navigation"></a>Navigazione locale</h3></div></div></div><p><span class="application">KDevelop</span> è molto di più di un editor, ma è <span class="emphasis"><em>anche</em></span> un editor di sorgenti. Come tale, ovviamente puoi spostare il cursore verso l'alto, il basso, a sinistra o a destra in un file sorgente. Puoi anche usare i tasti <span class="keycap"><strong>Pag↑</strong></span> e <span class="keycap"><strong>Pag↓</strong></span>, e tutti gli altri comandi che usi da qualsiasi editor utile.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="file-scope-navigation-and-outline-mode"></a>Navigazione dell'ambito del file e modalità schema riassuntivo</h3></div></div></div><p>All'ambito del file, <span class="application">KDevelop</span> offre molti modi diversi di attraversare il codice sorgente. Per esempio:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Schema riassuntivo</span></span>: puoi ottenere uno schema riassuntivo di quello che c'è nel file corrente in almeno tre modi diversi: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Facendo clic nella casella di testo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Schema riassuntivo</span></span> in alto a destra della finestra principale, o premendo <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>N</strong></span> si apre un menu a discesa che elenca le dichiarazioni di tutte le funzioni e classi: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-19.png"><div class="caption"><p></p></div></div></div><p> Poi potrai selezionare quale scegliere, o — se ce ne sono molte — iniziare a digitare del testo che potrebbe apparire nei nomi mostrati; in questo caso, mentre continui a digitare, l'elenco diventa sempre più piccolo mentre i nomi che non corrispondono a quello che hai già digitato vengono rimossi finché non sei pronto a selezionarne uno. </p></li><li class="listitem"><p>Selezionando il cursore nell'ambito del file (cioè fuori da qualsiasi dichiarazione o definizione di funzione o classe) e avendo aperto lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Browser del codice</span></span>: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-16.png"><div class="caption"><p></p></div></div></div><p> Questo fornisce anche uno schema riassuntivo di quello che sta accadendo nel file corrente, e ti permette di selezionare il punto in cui vuoi andare. </p></li><li class="listitem"><p>Passando il mouse sopra la scheda su uno dei file aperti viene prodotto anche uno schema riassuntivo del file nella scheda. </p></li></ul></div><p>
</p></li><li class="listitem"><p>I file sorgente sono organizzati come un'elenco di dichiarazioni e definizioni. Premendo <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>PgUp</strong></span> e <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>PgDown</strong></span> si salta alla definizione di funzione precedente o successiva in questo file. </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="project-and-session-scope-navigation--semantic-navigation"></a>Navigazione dell'ambito della sessione e del progetto: navigazione semantica</h3></div></div></div><p>Come detto da altre parti, <span class="application">KDevelop</span> di solito non considera file sorgente individuali ma piuttosto guarda nel suo insieme ai progetti (o, piuttosto, a tutti i progetti che sono parte della sessione corrente). Di conseguenza, offre molti modi di attraversare interi progetti. Alcuni di questi sono derivati da quello che abbiamo già discusso nella sezione <a class="link" href="exploring-source-code.html" title="Esplorare il codice sorgente">Esplorare il codice sorgente</a> mentre altri sono molto diversi. Il tema comune è che queste caratteristiche di navigazione sono basate sulla <span class="emphasis"><em>comprensione semantica</em></span> del codice, cioè ti offrono qualcosa che richiede l'analisi di progetti interi e dei dati collegati.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Come hai visto nella sezione <a class="link" href="exploring-source-code.html" title="Esplorare il codice sorgente">Esplorare il codice sorgente</a>, puoi ottenere un suggerimento che spiega namespace, classi, funzioni o nomi di variabili passando sopra il tuo mouse o tenendo premuto per un po' il tasto <span class="keycap"><strong>Alt</strong></span>. Ecco un esempio: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-14.png"></div></div><p> Facendo clic sui collegamenti delle dichiarazioni di un simbolo o espandendo l'elenco degli usi questo consente di saltare in queste posizioni. Un effetto simile può essere ottenuto utilizzando lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Browser del codice</span></span> discusso anche in precedenza. </p></li><li class="listitem"><p>Un modo più veloce per passare alla dichiarazione di un simbolo senza dover fare clic sui collegamenti nel suggerimento consiste nell'abilitare temporaneamente la <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Modalità navigazione dei sorgenti</span></span> tendendo premuti i tasti <span class="keycap"><strong>Alt</strong></span> e <span class="keycap"><strong>Ctrl</strong></span>. In questo modo sarà possibile fare clic direttamente su qualsiasi simbolo nell'editor per passare alla sua dichiarazione. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura veloce</span></span>: un modo molto potente di saltare ad altri file o posizioni è usare i vari metodi di <span class="emphasis"><em>apertura rapida</em></span> in <span class="application">KDevelop</span>. Ci sono quattro versioni di questi: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura veloce classe</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apertura veloce classe</span></span> o <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span>): otterrai un elenco di tutte le classi in questa sessione. Inizia a digitare il nome (una parte) di una classe e l'elenco continuerà a ridursi a soltanto quelle classe che corrispondono a quello che hai scritto finora. Se l'elenco è abbastanza corto, seleziona un elemento usando i tasti su e giu e <span class="application">KDevelop</span> ti porterà dov'è dichiarata la classe. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura veloce funzione</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apertura veloce funzione</span></span> o <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>M</strong></span>): otterrai un elenco di tutte le funzioni (membro) che fanno parte del progetto in questa sessione, che puoi selezionare nello stesso modo visto sopra. Nota che questo elenco potrebbe includere sia la definizione della funzione che la dichiarazione della stessa. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura veloce file</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apertura veloce file</span></span> o <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>O</strong></span>): otterrai un elenco di tutti i file che sono parte dei progetti di questa sessione, che puoi selezionare nello stesso modo visto qui sopra. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura veloce universale</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apertura veloce</span></span> o <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Q</strong></span>): se ti dimentichi quale combinazione di tasti è associata ai comandi visti sopra, questo è il coltellino svizzero — che semplicemente ti presenta un elenco combinato di tutti i file, funzioni, classi e altre cose che hai selezionato. </p></li></ul></div><p>
</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Salta alla dichiarazione/definizione</span></span>: quando si implementa una funzione (membro), c'è spesso bisogno di ritornare al punto in cui è dichiarata la funzione, per esempio per tenere sincronizzato l'elenco degli argomenti delle funzioni tra dichiarazioni e definizioni, o per aggiornare la documentazione. Per farlo, metti il cursore sul nome della funzione e seleziona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Salta alla dichiarazione</span></span> (o premi <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>.</strong></span>) per raggiungere il posto in cui è dichiarata la funzione. Ci sono diversi modi per tornare dove si era prima: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Selezionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Salta alla definizione</span></span> (o premendo <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>,</strong></span>). </p></li><li class="listitem"><p>Selezionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Contesto visitato precedente</span></span> (o premendo <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Sinistra</strong></span>), come è stato descritto sopra. </p></li></ul></div><p>
</p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Saltare alla dichiarazione di un simbolo è qualcosa che non funziona solo quando si mette il cursore sul nome delle funzione che stai implementando al momento. In effetti, funziona anche per altri simboli: mettendo il cursore su una variabile (locale, globale o membro) e saltando alla sua dichiarazione si viene portati alla posizione della dichiarazione. Allo stesso modo puoi mettere il cursore sul nome della classe, per esempio su una variabile di una dichiarazione di funzione, e saltare nella posizione della sua dichiarazione.</p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Commuta tra definizione/dichiarazione</span></span>: nell'esempio precedente, per saltare al punto in cui è definita la funzione corrente, dovevi mettere prima il cursore sul nome della funzione. Per evitare questo passo, puoi selezionare <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Commuta definizione/dichiarazione</span></span> (o premere <span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span>) per saltare alla dichiarazione della funzione sul quale è presente il cursore. La selezione della stessa voce del menu una seconda volta ti riporterà nel posto in cui è definita la funzione. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Uso di precedente/successivo</span></span>: mettendo il cursore sul nome di una variabile locale e selezionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Uso successivo</span></span> (o premendo <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>Destra</strong></span>) si viene portati all'uso successivo di questa variabile nel codice. (Nota che questo non solo cerca l'occorrenza successiva del nome della variabile ma tiene conto del fatto che le variabili con lo stesso nome ma in differenti ambiti sono diverse). La stessa cosa vale per l'uso dei nomi delle funzioni. Selezionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Uso precedente</span></span> (o premendo <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>Sinistra</strong></span>) si viene portati all'uso precedente di un simbolo. </p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Per visualizzare un elenco di tutti gli usi di un nome, posiziona il cursore su di esso e apri lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Browser del codice</span></span> o premi e tieni premuto il pulsante <span class="keycap"><strong>Alt</strong></span>. Questo è spiegato in dettaglio nella sezione <a class="link" href="exploring-source-code.html#file-scope-information" title="Informazioni sul ambito del file">Esplorare il codice</a>. </p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>L'<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">elenco dei contesti</span></span>: i browser web hanno questa caratteristica con la quale si può andare indietro o avanti nell'elenco delle pagine visitate più di recente. <span class="application">KDevelop</span> ha lo stesso tipo di caratteristica, a parte il fatto che invece di pagine web si visitano <span class="emphasis"><em>contesti</em></span>. Un contesto è la posizione corrente del cursore, e puoi cambiarla allontanandoti da questa usando qualsiasi cosa eccetto i cursori — per esempio, facendo clic su una posizione fornita da un suggerimento nella vista strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Browser del codice</span></span>, una delle opzioni date nel menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navigazione</span></span>, o qualsiasi altro comando. Usando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Contesto visitato precedente</span></span> (<span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Sinistra</strong></span>) e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navigazione</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Contesto visitato successivo</span></span> (<span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Destra</strong></span>) si viene portati all'elenco dei contesti visitati proprio come i pulsanti <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">indietro</span></span> e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">avanti</span></span> di un browser ti portano alla pagina precedente o prossima tra quelle che hai visitato. </p></li><li class="listitem"><p>Infine, ci sono viste strumenti che ti permettono di navigare in posti diversi del tuo codice. Per esempio, lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classi</span></span> ti fornisce un elenco di tutti i namespace e classi di tutti i progetti della sessione corrente, e ti permette di espanderli per vedere le funzioni e variabili membro di ognuna di queste classi: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-17.png"><div class="caption"><p></p></div></div></div><p> Il doppio clic su un elemento (o scorrendo il menu contestuale usando il tasto destro del mouse) ti permette di saltare alla posizione della dichiarazione dell'elemento. Gli altri strumenti ti permettono di fare cose simili; per esempio, la vista strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Progetti</span></span> fornisce un elenco di file che sono parte di una sessione: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-13.png"><div class="caption"><p></p></div></div></div><p> Un ulteriore doppio clic su un file lo apre. </p></li></ul></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="exploring-source-code.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="writing-source-code.html">Avanti</a></td></tr><tr><td class="prevCell">Esplorare il codice sorgente </td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"> Scrivere codice sorgente</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="writing-source-code.html"><html><head><title>Scrivere codice sorgente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="working-with-source-code.html" title="Capitolo 3. Lavorare con il codice sorgente"><link rel="prev" href="navigating-in-source-code.html" title="Navigare nel codice sorgente"><link rel="next" href="modes-and-working-sets.html" title="Modalità e working set"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Scrivere codice sorgente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="navigating-in-source-code.html">Indietro</a></td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"><a accesskey="n" href="modes-and-working-sets.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="writing-source-code"></a>Scrivere codice sorgente</h2></div></div></div><p>Poiché <span class="application">KDevelop</span> interpreta il codice sorgente dei tuoi progetti, può essere d'aiuto nello scrivere più codice. Nel seguito vengono presentati alcuni dei modi nel quale questo può essere fatto.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="auto-completion"></a>Auto-completamento</h3></div></div></div><p>Probabilmente la caratteristica più utile di tutte nello scrivere nuovo codice è l'auto-completamento. Considera, per esempio, il seguente pezzo di codice:</p><pre class="programlisting">class Car {
  // ...
  public:
    std::string get_color () const;
};
void foo()
{
  Car my_ride;
  // ...do something with this variable...
  std::string color = my_ride.ge
</pre><p>Nell'ultima riga, <span class="application">KDevelop</span> ricorderà che la variabile <code class="varname">my_ride</code> è di tipo <code class="varname">Car</code>, e automaticamente proporrà di completare il nome della funzione membro <code class="varname">ge</code> come <code class="varname">get_color</code>. In realtà, tutto quello che devi fare è continuare a scrivere finché la funzione di auto-completamento ha ridotto le corrispondenze ad una, e poi premere il tasto <span class="keycap"><strong>Invio</strong></span>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-42.png"><div class="caption"><p></p></div></div></div><p>Nota che puoi fare clic sul suggerimento per avere più informazioni sulla funzione a parte il suo tipo di ritorno e se è pubblica:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-43.png"><div class="caption"><p></p></div></div></div><p>L'auto-completamento può salvarti dal digitare molti caratteri se il tuo progetto usa nomi lunghi per variabili e funzioni; inoltre, evita errori di ortografia (e i risultanti errori di compilazione) e rende più semplici da ricordare i nomi esatti delle funzioni; per esempio, se tutti i vostri getter iniziano con <code class="varname">get_</code>, allora la funzione di auto-completamento sarà capace solo di presentarti un elenco di getter possibili quando hai digitato le prime quattro lettere, probabilmente ricordandoti nel processo quale delle funzioni è quella giusta. Nota che affinché l'auto-completamento funzioni, né la dichiarazione della classe <code class="varname">Car</code> né quella della variabile <code class="varname">my_ride</code> devono essere nello stesso file in cui si stà scrivendo il codice. <span class="application">KDevelop</span> deve semplicemente sapere che queste classi e variabili sono connesse, cioè i file nei quali queste connessioni sono fatte devono essere parte del progetto sul quale stai attualmente lavorando.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p><span class="application">KDevelop</span> non sa sempre quando esserti d'aiuto nel completare il codice. Se il suggerimento dell'auto-completamento non si apre automaticamente, premi <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Spazio</strong></span> per aprire un elenco da cui sceglierne uno. In generale, affinché l'auto-completamento funzioni, <span class="application">KDevelop</span> deve analizzare i tuoi file sorgente. Questo viene fatto in background per tutti i file che fanno parte dei progetti della sessione corrente dopo che hai avviato <span class="application">KDevelop</span>, subito dopo aver smesso di scrivere (il ritardo può essere configurato).</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p><span class="application">KDevelop</span> analizza soltanto i file che considera codice sorgente, determinandolo dal tipo MIME del file. Questo tipo è stabilito la prima volta che il file viene salvato; di conseguenza, creare un nuovo file e iniziare a scriverci codice non avvierà l'analisi dell'auto-completamento fino a quando non lo si salva per la prima volta.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Come nella nota precedente, affinché l'auto-completamento funzioni, <span class="application">KDevelop</span> deve essere in grado di trovare le dichiarazioni nei file di intestazione. Per questo cerca in un numero di percorsi predefiniti. Se non trova automaticamente un file di intestazione, sottolinea il nome del file di intestazione in rosso; in questo caso, fai clic col tasto destro sul nome sottolineato per dire esplicitamente a <span class="application">KDevelop</span> dove trovare questi file e le informazioni che questi forniscono.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>La configurazione dell'auto-completamento è discussa in <a class="link" href="customizing-code-auto-completion.html" title="Personalizzare l'auto-completamento del codice">questa sezione del manuale</a>.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="adding-new-classes-and-implementing-member-functions"></a>Aggiungere nuove classi e implementare le funzioni membro</h3></div></div></div><p><span class="application">KDevelop</span> ha un assistente per aggiungere nuove classi. La procedura è descritta in <a class="link" href="code-generation-with-templates.html#creating-a-new-class" title="Creare una nuova classe">Creare una nuova classe</a>. Si può creare una semplice classe in C++ scegliendo il modello Base C++ dalla categoria <code class="filename">Classe</code>. Nell'assistente, si possono scegliere alcune funzioni membro predefinite, per esempio un costruttore vuoto, un costruttore di copie e un distruttore. </p><p>Dopo che l'assistente ha completato, i nuovi file vengono creati e aperti nell'editor. Il file di intestazione include già le include guard e le nuove classi hanno tutte le funzioni membro scelte. I successivi due passi sarebbero per documentare la classe e le sue funzioni membro e per la loro implementazione. Si discuterà degli aiuti per la documentazione delle classi e delle funzioni qui sotto. Per implementare le funzioni speciali già aggiunte, andare semplicemente nella scheda <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">bus.cpp</span></span> dove sono già forniti gli scheletri delle funzioni:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-30.png"><div class="caption"><p></p></div></div></div><p>Per aggiungere nuove funzioni membro, ritornare nella scheda <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">bus.h</span></span> e aggiungere il nome di una funzione. Per esempio, aggiungiamo questa:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-31.png"><div class="caption"><p></p></div></div></div><p>Nota come ho iniziato l'implementazione. Comunque, in molti stili di codifica, la funzione non dovrebbe essere implementata nel file di intestazione ma piuttosto nel corrispondente file .cpp. A tal fine, posizionare il cursore sul nome della funzione e selezionare <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Codice</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Sposta il sorgente</span></span> o premere <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>S</strong></span>. Questo rimuoverà il codice tra le parentesi graffe dal file di instestazione (e lo sostituirà con un punto e virgola allo scopo di terminare la dichiarazione della funzione) e lo sposterà nel codice sorgente:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-32.png"><div class="caption"><p></p></div></div></div><p>Nota che quello che volevo sottointendere è che la variabile <code class="varname">students</code> dovrebbe essere probabilmente una variabile membro della classe <code class="varname">Bus</code> ma che non ho ancora aggiunto. Nota pure come <span class="application">KDevelop</span> la sottolinea per rendere chiaro che non sa niente della variabile. Ma questo problema può essere risolto: facendo clic sul nome della variabile si ottiene il seguente suggerimento:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-33.png"><div class="caption"><p></p></div></div></div><p>(Lo stesso risultato può essere raggiunto facendo clic con il tasto destro su di esso e selezionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Risolvere: Dichiara come</span></span>.) Ora consideriamo <span class="quote">«<span class="quote">3 - private unsigned int</span>»</span> (o con il mouse, o premendo <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>3</strong></span>) e vediamo come viene fuori nel file di intestazione:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-34.png"><div class="caption"><p></p></div></div></div><p>Vale la pena notare che <span class="application">KDevelop</span> estrae il tipo della variabile che deve essere dichiarata dall'espressione usata per inizializzarla. Per esempio, se avessimo scritto la somma seguente in un modo piuttosto dubbio, avrebbe suggerito di dichiarare la variabile di tipo <code class="varname">double</code>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-35.png"><div class="caption"><p></p></div></div></div><p>Per concludere: il metodo che consiste nell'usare <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Codice</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Sposta il sorgente</span></span> non sempre inserisce la nuova funzione membro dove potresti volere. Per esempio, potresti volerla marcare come <code class="varname">inline</code> e metterla in fondo al file di intestazione. In un caso come questo, scrivi la dichiarazione e inizia a scrivere la definizione della funzione in questo modo:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-36.png"><div class="caption"><p></p></div></div></div><p><span class="application">KDevelop</span> automaticamente offre tutti i possibili completamenti del caso. La selezione di una delle due voci <code class="varname">add_students</code> produce il codice seguente che riempie già l'elenco completo degli argomenti:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-37.png"><div class="caption"><p></p></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Nell'esempio, accettando una delle scelte che lo strumento di auto-completamento offre viene prodotta la firma completa ma sfortunatamente cancella l'indicazione <code class="varname">inline</code> scritta in precedenza. Questo comportamento è stato riportato nel <a class="ulink" href="https://bugs.kde.org/show_bug.cgi?id=274244" target="_top">bug 274245 di <span class="application">KDevelop</span></a>.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="documenting-declarations"></a>Documentare le dichiarazioni</h3></div></div></div><p>Il buon codice è ben documentato, sia a livello dell'implementazione degli algoritmi delle funzioni che a livello dell'interfaccia — cioè, le classi, le funzioni (membro e locali) e le variabili devono essere documentate per spiegare a cosa servono, i possibili valori degli argomenti, pre e post condizioni, <abbr class="abbrev">ecc.</abbr>. Per quanto riguarda l'interfaccia della documentazione, <a class="ulink" href="http://www.doxygen.org" target="_top">doxygen</a> è diventato lo standard de facto per la formattazione dei commenti che poi possono essere estratti e visualizzati da pagine web ricercabili.</p><p><span class="application">KDevelop</span> supporta questo stile di commenti fornendo una scorciatoia per generare l'infrastruttura dei commenti che documenta una classe o una funzione membro. Per esempio, immagina di aver già scritto questo codice:</p><pre class="programlisting">class Car {
  public:
    std::string get_color () const;
};
</pre><p>
</p><p>Ora vuoi aggiungere la documentazione sia alla classe che alla funzione membro. A tal fine, sposta il cursore sulla prima riga e seleziona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Codice</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Documenta dichiarazione</span></span> o premi <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>D</strong></span>. <span class="application">KDevelop</span> risponderà in questo modo: </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-23.png"><div class="caption"><p></p></div></div></div><p>Il cursore si trova già nell'area in grigio in modo che tu possa scrivere una breve descrizione (dopo la parola chiave di doxygen <code class="varname">@brief</code>) di questa classe. Poi puoi continuare ad aggiungere documentazione a questo commento in modo da avere una panoramica più dettagliata di quello che fa la classe:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-24.png"><div class="caption"><p></p></div></div></div><p>Mentre l'editor si trova all'interno del commento, il testo del commento è evidenziato in verde (l'evidenziazione scompare quando sposti il cursore al di fuori del commento). Quando raggiungi la fine di una riga, premi <span class="keycap"><strong>Invio</strong></span> e <span class="application">KDevelop</span> inizierà automaticamente una nuova riga che inizia con un asterisco e posizionerà il cursore di un carattere rientrato.</p><p>Ora documentiamo la funzione membro, metti di nuovo il cursore sulla riga della dichiarazione e seleziona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Codice</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Documenta dichiarazione</span></span> o premi <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>D</strong></span>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-25.png"><div class="caption"><p></p></div></div></div><p>Di nuovo, <span class="application">KDevelop</span> genererà automaticamente lo scheletro di un commento, insieme alla documentazione della stessa funzione, in aggiunta al suo tipo di ritorno. In questo caso, il nome della funzione si spiega da sola, ma spesso gli argomenti della funzione potrebbero non essere documentati individualmente anche se dovrebbero. Per illustrare quanto appena detto, consideriamo una funzione un po' più interessante e il commento che <span class="application">KDevelop</span> genera automaticamente:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-26.png"><div class="caption"><p></p></div></div></div><p>Qui, il commento proposto contiene già tutti i campi per i parametri individuali di Doxygen, per esempio.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="renaming-variables-functions-and-classes"></a>Rinominare le variabili, le funzioni e le classi</h3></div></div></div><p>A volte, si vuole rinominare una funzione, una classe o una variabile. Per esempio, diciamo di avere già questo:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-38.png"><div class="caption"><p></p></div></div></div><p>Poi ci rendiamo conto di non essere contenti del nome <code class="varname">remove_students</code> e preferiremo chiamarlo, ad esempio, <code class="varname">throw_out_students</code>. Potremmo fare cerca e sostituisci il nome, ma questo ha due inconvenienti:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>La funzione potrebbe essere usata in più di un file. </p></li><li class="listitem"><p>In realtà vogliamo solo rinominare questa funzione e non toccare le funzioni che potrebbero avere lo stesso nome ma che sono dichiarate in altre classi o namespace. </p></li></ul></div><p>Antrambi questi problemi possono essere risolti spostando il cursore su una delle occorrenze del nome della funzione e selezionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Codice</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Rinomina dichiarazione</span></span> (o facendo clic con il tasto destro sul nome e selezionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Rinomina Bus::remove_students</span></span>). Questo fa apparire una finestra di dialogo in cui è possibile inserire il nuovo nome della funzione e dove si possono anche vedere tutti i posti in cui la funzione è effettivamente usata:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-39.png"><div class="caption"><p></p></div></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="code-snippets"></a>Frammenti di codice</h3></div></div></div><p>La maggior parte dei progetti hanno parti di codice che frequentemente devono essere scritte nel codice sorgente. Esempi sono: chi scrive compilatori, un ciclo su tutte le istruzioni; chi realizza interfacce utente, controllare che l'input dell'utente sia valido e se non aprire una finestra di errore; nel progetto dell'autore di queste righe, sarebbe codice del tipo</p><pre class="programlisting">for (typename Triangulation::active_cell_iterator
       cell = triangulation.begin_active();
     cell != triangulation.end(); ++cell)
  ... do something with the cell ...
</pre><p>
</p><p>Piuttosto che scrivere continuamente del testo simile (con tutti gli errori di battitura connessi che si introducono), qui può essere d'aiuto lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Frammenti</span></span> di <span class="application">KDevelop</span>. A tale fine, aprire la vista strumento (vedi <a class="link" href="working-with-source-code.html#tools-and-views" title="Strumenti e viste">Strumenti e viste</a> se il tasto corrispondente non è già nella finestra). Poi fare clic sul tasto <span class="quote">«<span class="quote">Aggiungi un deposito</span>»</span> (un nome improprio — ti consente di creare una raccolta di frammenti di codice sorgente di un tipo particolare con un nome, <abbr class="abbrev">ad es.</abbr> Sorgenti C++) e creare un deposito vuoto. Poi fare clic su <span class="inlinemediaobject"><img src="Icon-list-add.png"></span> per aggiungere un frammento, ottenendo una finestra di dialogo come la seguente:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-40.png"><div class="caption"><p></p></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Il nome del frammento potrebbe non vere spazi o altri caratteri speciali perché deve sembrare un normale nome di funzione o variabile (per ragioni che saranno chiare nel paragrafo successivo).</p></div><p>Per usare un frammento definito in questo modo, quando stai editando il codice, è sufficente scrivere il nome del frammento nello stesso modo in cui avresti scritto il nome di qualsiasi altra funzione o variabile. Questo nome diventerà disponibile all'auto-completamento — ciò significa che non c'è niente di male nell'uso di nomi lunghi e descrittivi per i frammenti come quello qui sopra — e quando accetti il suggerimento dell'auto-completamento (per esempio premento <span class="keycap"><strong>Invio</strong></span>), la parte del nome del frammento già inserito sarà rimpiazzata dal nome completo del frammento e sarà adeguatamente identata:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-41.png"><div class="caption"><p></p></div></div></div><p>Nota che affinché questo funzioni, deve essere aperta e visibile la vista strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Frammenti</span></span>: hai bisogno unicamente e solamente della vista strumento per definire dei nuovi frammenti. Un modo alternativo, anche se meno conveniente, di espandere un frammento consiste nel fare semplicemente clic sullo stesso nella relativa vista strumento.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>I frammenti sono molto più potenti di quanto appena spiegato. Per una completa descrizione di cosa puoi farci, vedi la <a class="ulink" href="https://userbase.kde.org/Special:myLanguage/KDevelop4/Manual/Tool_list/Snippets" target="_top">documentazione dettagliata dello strumento frammenti</a>.</p></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="navigating-in-source-code.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="modes-and-working-sets.html">Avanti</a></td></tr><tr><td class="prevCell">Navigare nel codice sorgente </td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"> Modalità e working set</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="modes-and-working-sets.html"><html><head><title>Modalità e working set</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="working-with-source-code.html" title="Capitolo 3. Lavorare con il codice sorgente"><link rel="prev" href="writing-source-code.html" title="Scrivere codice sorgente"><link rel="next" href="some-useful-keyboard-shortcuts.html" title="Alcune utili scorciatoie da tastiera"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Modalità e working set</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="writing-source-code.html">Indietro</a></td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="modes-and-working-sets"></a>Modalità e working set</h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop4_noworkingset.png"><div class="caption"><p></p></div></div></div><p>Se sei arrivato fino a questo punto, dai un'occhiata in alto a destra della finestra principale di <span class="application">KDevelop</span>: come mostrato in figura, vedrai che vi sono tre <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">modalità</span></span> in cui si può trovare <span class="application">KDevelop</span>: <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Codice</span></span> (la modalità di cui abbiamo discusso in questo capitolo), <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Debug</span></span> (vedi <a class="link" href="debugging-programs-in-kdevelop.html" title="Capitolo 7. Fare il debug dei programmi in KDevelop">Fare il debug dei programmi</a>) e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisione</span></span> (vedi <a class="link" href="working-with-version-control-systems.html" title="Capitolo 8. Lavorare con i sistemi di controllo versione">Lavorare con i sistemi di controllo versione</a>).</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop4_sessionsprojectsworkingsets.png"><div class="caption"><p></p></div></div></div><p>Ogni modalità ha il proprio insieme di strumenti disposti sulla finestra della stessa, e ogni modalità ha anche un <span class="emphasis"><em>working set</em></span> di documenti e file attualmente aperti. Inoltre, ogni working set è associato alla sessione corrente, cioè abbiamo la relazione mostrata sopra. Nota che i file nel working set provengono dalla stessa sessione, ma potrebbero venire da progetti diversi che fanno parte della stessa sessione.</p><p>Se apri per la prima volta <span class="application">KDevelop</span>, il working set è vuoto — non ci sono file aperti. Ma quando apri i file per la modifica (o per il debug, o per la revisione nelle altre modalità) il tuo working set diventa più grande. Il fatto che il tuo working set non è vuoto è indicato da un simbolo nella scheda, come mostrato qui sotto. Noterai che ogni volta che chiudi <span class="application">KDevelop</span> e poi lo riavvii, il working set viene salvato e ripristinato, cioè ottieni lo stesso insieme di file aperti.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-10.png"><div class="caption"><p></p></div></div></div><p>Se passi il mouse sul simbolo del working set, ottieni un suggerimento che ti mostra quali file sono aperti in questo working set (qui: i file <code class="varname">step-32.cc</code> and <code class="varname">step-1.cc</code>). Facendo clic sul segno meno di color rosso si chiude la scheda del file corrispondente. Forse ancora più importante, facendo clic sul pulsante con il nome corrispondente ti permette di <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">chiudere</span></span> tutto il working set in una volta (cioè chiudere tutti i file aperti). Il punto sulla chiusura di un working set, comunque, è che non chiude soltanto tutti i file, in realtà salva il working set e ne apre uno nuovo, ancora vuoto. Lo puoi vedere qui:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-11.png"><div class="caption"><p></p></div></div></div><p>Nota i due simboli a sinistra delle tre schede delle modalità (il cuore e il simbolo non identificabile alla sua sinistra). Ognuno di questi due simboli rappresenta un working set salvato, in aggiunta al working set aperto. Se passi il mouse sopra al cuore, avrai qualcosa del genere:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-12.png"><div class="caption"><p></p></div></div></div><p>Ti mostra che il working set corrispondente contiene due file con i rispettivi nomi: <code class="varname">Makefile</code> e <code class="varname">changes.h</code>. Facendo clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Carica</span></span> il working set corrente verrà chiuso e salvato (che come mostrato qui ha i seguenti file aperti <code class="varname">tria.h</code> e <code class="varname">tria.cc</code>) al posto di aprire il working set selezionato. Puoi anche cancellare per sempre un working set, questo lo rimuove dall'insieme dei working set salvati.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="writing-source-code.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts.html">Avanti</a></td></tr><tr><td class="prevCell">Scrivere codice sorgente </td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"> Alcune utili scorciatoie da tastiera</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="some-useful-keyboard-shortcuts.html"><html><head><title>Alcune utili scorciatoie da tastiera</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="working-with-source-code.html" title="Capitolo 3. Lavorare con il codice sorgente"><link rel="prev" href="modes-and-working-sets.html" title="Modalità e working set"><link rel="next" href="code-generation-with-templates.html" title="Capitolo 4. Generare codice con i modelli"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Alcune utili scorciatoie da tastiera</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="modes-and-working-sets.html">Indietro</a></td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"><a accesskey="n" href="code-generation-with-templates.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="some-useful-keyboard-shortcuts"></a>Alcune utili scorciatoie da tastiera</h2></div></div></div><p>L'editor di <span class="application">KDevelop</span> segue lo standard delle scorciatoie da tastiera per le operazioni di modifica usuali. Comunque, supporta anche un numero maggiore di operazioni avanzate quando si modifica il codice sorgente, alcune delle quali sono legate a particolari combinazioni di tasti. Le seguenti sono particolarmente utili:</p><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Saltare da un posto a un altro nel codice</th></tr></thead><tbody><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>O</strong></span></td><td>Apertura veloce file: inserire parte del nome di un file e selezionare tra tutti i file nell'albero delle cartelle di progetto della sessione corrente che corrisponde con la stringa; il file poi verrà aperto</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>C</strong></span></td><td>Apertura veloce classe: inserire parte del nome di una classe e selezionare tra tutti i nomi quello corrispondente; il cursore poi salterà alla dichiarazione della classe</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>M</strong></span></td><td>Apertura veloce funzione: inserire parte del nome di una funzione (membro) e selezionare tra tutti i nomi quello corrispondente; nota che l'elenco mostra sia le dichiarazioni che le definizioni e il cursore salterà alla voce selezionata</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Q</strong></span></td><td>Apertura veloce universale: digita qualsiasi cosa (nome di un file, nome di una classe, nome di una funzione) e otterai un'elenco di tutto quello che corrisponde</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>N</strong></span></td><td>Schema riassuntivo: fornisce un elenco di tutte le cose avvenute a questo file, <abbr class="abbrev">ad es.</abbr> dichiarazioni di classi e definizioni di funzioni</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>,</strong></span></td><td>Salta alla definizione di una funzione se il cursore è sulla dichiarazione di una funzione</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>.</strong></span></td><td>Salta alla dichiarazione di una funzione o variabile se il cursore è nella definizione di una funzione</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Pag↓</strong></span></td><td>Funzione successiva</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Pag↑</strong></span></td><td>Funzione precedente</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>G</strong></span></td><td>Vai alla riga</td></tr></tbody></table></div><p>
</p><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Cercare e sostituire</th></tr></thead><tbody><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>F</strong></span></td><td>Trova</td></tr><tr><td><span class="keycap"><strong>F3</strong></span></td><td>Trova successivo</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>R</strong></span></td><td>Sostituisci</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F</strong></span></td><td>Cerca-Sostituisci in file multipli</td></tr></tbody></table></div><p>
</p><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Altre cose</th></tr></thead><tbody><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>_</strong></span></td><td>Riduce un livello: rimuovi questo blocco dalla vista, per esempio se vuoi concentrarti sulla figura più grande all'interno di una funzione</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>+</strong></span></td><td>Espande un livello: annulla la riduzione</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>D</strong></span></td><td>Commenta il testo selezionato o la riga corrente</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>D</strong></span></td><td>Decommenta il testo selezionato o la riga corrente</td></tr><tr><td><span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>D</strong></span></td><td>Documenta la funzione corrente. Se il cursore è sulla dichiarazione di una classe o funzione allora premere questa combinazione di tasti creerà un commento in stile doxygen pre-popolato con una lista di tutti i parametri, valori di ritorno, <abbr class="abbrev">ecc.</abbr></td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>T</strong></span></td><td>Inverte il carattere corrente e quello precedente</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>K</strong></span></td><td>Cancella la riga corrente (nota: non è soltanti il <span class="quote">«<span class="quote">cancella da qui alla fine della riga</span>»</span> di emacs)</td></tr></tbody></table></div><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="modes-and-working-sets.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="code-generation-with-templates.html">Avanti</a></td></tr><tr><td class="prevCell">Modalità e working set </td><td class="upCell">Lavorare con il codice sorgente</td><td class="nextCell"> Generare codice con i modelli</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-projects-from-scratch.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="exploring-source-code.html">Avanti</a></td></tr><tr><td class="prevCell">Creare progetti da zero </td><td class="upCell"> </td><td class="nextCell"> Esplorare il codice sorgente</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="code-generation-with-templates.html"><html><head><title>Capitolo 4. Generare codice con i modelli</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="some-useful-keyboard-shortcuts.html" title="Alcune utili scorciatoie da tastiera"><link rel="next" href="creating-a-new-unit-test.html" title="Creare un nuovo unit test"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Generare codice con i modelli</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="creating-a-new-unit-test.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="code-generation-with-templates"></a>Capitolo 4. Generare codice con i modelli</h1></div></div></div><p><span class="application">KDevelop</span> usa i modelli per generare file di codice sorgente e per evitare di scrivere codice ripetibile. </p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-a-new-class"></a>Creare una nuova classe</h2></div></div></div><p>Il modo più banale di generare codice probabilmente è scrivere nuove classi. Per creare una nuova classe in un progetto esistente, fare clic con il tasto destro sulla cartella di un progetto e scegliere <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Crea da modello...</span></span>. Si può fare la stessa cosa dal menu facendo clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">File</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Nuovo da modello...</span></span>, ma usare la cartella del progetto ha il vantaggio di impostare un collegamento base per i file di output. Scegli <code class="filename">Classe</code> nella vista di selezione della categoria, ed il linguaggio e il modello desiderati nelle altre due viste. Dopo aver selezionato il modello della classe, dovrai specificare i dettagli della nuova classe. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-selection.png"></div></div><p>
</p><p>Come primo passo devi specificare un identificatore per la nuova classe. Questo può essere un nome semplice (come <code class="varname">Bus</code>) o un identificatore con un namespace (come <code class="varname">Transportation::Bus</code>). Nell'ultimo caso, <span class="application">KDevelop</span> analizzerà l'identificatore e separerà correttamente il namespace dal nome effettivo. Nella stessa pagina, puoi aggiungere classi di base alla nuova classe. Puoi notare che alcuni modelli scelgono una classe base da soli, sei libero di rimuoverla e/o aggiungerne altre. Qui dovresti scrivere il tipo di ereditarietà, indipendentemente dal linguaggio, come ad esempio <code class="varname">public QObject</code> per il C++, <code class="varname">extends SomeClass</code> per il PHP o semplicemente il nome della classe per il Python. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-inheritance.png"></div></div><p>
</p><p>Nella pagina seguente, ti verrà offerta una selezione di metodi virtuali dalle classi ereditate, così come alcuni costruttori, distruttori e operatori predefiniti. La selezione della casella di controllo accanto alla firma del metodo implementerà questo metodo nella nuova classe. </p><p>Facendo clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Successivo</span></span> si va ad una pagina dove puoi aggiungere membri ad una classe. A seconda del modello selezionato, questi possono apparire nella nuova classe come variabili membro, o il modello potrebbe creare per loro proprietà con setter e getter. In un linguaggio dove devono essere dichiarati i tipi di variabile, come il C++ ad esempio, devi specificare sia il tipo che il nome del membro, come <code class="varname">int number</code> o <code class="varname">QString name</code>. In altri linguaggi puoi non specificare il tipo, ma è buona norma specificarlo comunque, perché il modello scelto potrebbe ancora farne un certo uso. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-members.png"></div></div><p>
</p><p>Nelle pagine seguenti puoi scegliere una licenza per la tua nuova classe, impostare qualsiasi opzione personalizzata richiesta dal modello selezionato, e configurare dove salvare i file generati. Facendo clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Completa</span></span>, completi l'assistente e crei la nuova classe. I file generati saranno aperti nell'editor, in modo che tu possa iniziare ad aggiungere codice subito. </p><p>Dopo aver creato una nuova classe C++ ti sarà data la possibilità di aggiungere la classe al progetto scelto. Scegline uno dalle pagine della finestra, o chiudi la pagina e aggiungi manualmente i file ad un progetto. </p><p>Se hai scelto il modello <code class="filename">Qt Object</code>, controllato alcuni dei metodi predefiniti, e aggiunto due variabili membro, l'output dovrebbe essere simile alla seguente immagine. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-result.png"></div></div><p>
</p><p>Puoi vedere che i dati membro sono convertiti in proprietà Qt, con funzioni d'accesso e le macro Q_PROPERTY. Gli argomenti delle funzioni setter sono anche passati come const-reference, se del caso. Inoltre, è dichiarata una classe privata e un puntatore privato creato con Q_DECLARE_PRIVATE. Tutto questo è fatto dal modello, la scelta di un altro nel primo passo potrebbe cambiare completamente l'output. </p></div><FILENAME filename="creating-a-new-unit-test.html"><html><head><title>Creare un nuovo unit test</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="code-generation-with-templates.html" title="Capitolo 4. Generare codice con i modelli"><link rel="prev" href="code-generation-with-templates.html" title="Capitolo 4. Generare codice con i modelli"><link rel="next" href="other-files.html" title="Altri file"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Creare un nuovo unit test</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="code-generation-with-templates.html">Indietro</a></td><td class="upCell">Generare codice con i modelli</td><td class="nextCell"><a accesskey="n" href="other-files.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-a-new-unit-test"></a>Creare un nuovo unit test</h2></div></div></div><p>Anche se la maggior parte delle infrastrutture per i test richiedono che ogni test sia anche una classe, <span class="application">KDevelop</span> include un modo per semplificare la creazione di unit test. Per creare un nuovo test, fare clic col tasto destro sulla cartella di un progetto e scegliere <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Crea da modello...</span></span>. Nella pagina di selezione dei modelli scegliere <code class="filename">Test</code> come categoria, poi scegliere il linguaggio di programmazione e il modello e fare clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Successivo</span></span>. </p><p>Ti saranno chiesti il nome del test e un'elenco dei casi di test. Per i casi di test, devi solo specificare un elenco di nomi. Alcune infrastrutture per unit test come PyUnit e PHPUnit, richiedono che i casi di test inizino con un prefisso speciale. In <span class="application">KDevelop</span>, il modello è responsabile dell'aggiunta del prefisso, così non devi farlo tu. Dopo aver fatto clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Successivo</span></span>, indica la licenza e dove vengono generati i file, e il test verrà creato. </p><p>GlI unit test così creati non saranno aggiunti ad alcun obiettivo. Se stai usando CTest o qualche altra infrastruttura di test, accertati di aggiungere i nuovi file all'obiettivo. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="code-generation-with-templates.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="other-files.html">Avanti</a></td></tr><tr><td class="prevCell">Generare codice con i modelli </td><td class="upCell">Generare codice con i modelli</td><td class="nextCell"> Altri file</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="other-files.html"><html><head><title>Altri file</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="code-generation-with-templates.html" title="Capitolo 4. Generare codice con i modelli"><link rel="prev" href="creating-a-new-unit-test.html" title="Creare un nuovo unit test"><link rel="next" href="managing-templates.html" title="Gestire i modelli"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Altri file</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-a-new-unit-test.html">Indietro</a></td><td class="upCell">Generare codice con i modelli</td><td class="nextCell"><a accesskey="n" href="managing-templates.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="other-files"></a>Altri file</h2></div></div></div><p>Mentre le classi e gli unit test ricevono attenzioni speciali durante la generazione di codice dai modelli, lo stesso metodo può essere usato da qualsiasi tipo di file di codice sorgente. Per esempio, si potrebbe usare un modello per un modulo Find di CMake o per un file. desktop. Questo può essere fatto scegliendo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Crea da modello...</span></span>, e selezionando la categoria e il modello che si vuole. Se la categoria selezionata non è né <code class="filename">Classe</code> né <code class="filename">Test</code>, avrai solo la possibilità di scegliere la licenza, le opzioni personalizzate specificate dal modello e dove salvare i file. Come per le classi e per i test, concluso l'assistente verranno generati i file che saranno aperti nell'editor. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-a-new-unit-test.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="managing-templates.html">Avanti</a></td></tr><tr><td class="prevCell">Creare un nuovo unit test </td><td class="upCell">Generare codice con i modelli</td><td class="nextCell"> Gestire i modelli</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="managing-templates.html"><html><head><title>Gestire i modelli</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="code-generation-with-templates.html" title="Capitolo 4. Generare codice con i modelli"><link rel="prev" href="other-files.html" title="Altri file"><link rel="next" href="building-compiling-projects-with-custom-makefiles.html" title="Capitolo 5. Compilare progetti con Makefile personalizzati"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Gestire i modelli</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="other-files.html">Indietro</a></td><td class="upCell">Generare codice con i modelli</td><td class="nextCell"><a accesskey="n" href="building-compiling-projects-with-custom-makefiles.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="managing-templates"></a>Gestire i modelli</h2></div></div></div><p>Dall'assistente <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">File</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Nuovo da modello...</span></span>, puoi anche scaricare modelli aggiuntivi facendo clic sul pulsante <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Ottieni altri modelli...</span></span>. Questo apre una finestra Scarica le Novità, da dove puoi installare modelli aggiuntivi, così come aggiornarli o rimuoverli. C'è anche un modulo di configurazione per i modelli, che può essere raggiunto facendo clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Impostazioni</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configura <span class="application">KDevelop</span></span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Modelli</span></span>. Da lì, puoi gestire sia i modelli dei file (spiegato qui sopra) che i modelli di progetto (utilizzati per la creare nuovi progetti). </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-manager.png"></div></div><p>
</p><p>Naturalmente, se nessuno dei modelli disponibili è adatto al tuo progetto, puoi sempre crearne di nuovi. Il modo più semplice probabilmente consiste nel copiare e modificare un modello esistente, un breve <a class="ulink" href="https://techbase.kde.org/Development/Tutorials/KDevelop/Creating_a_class_template" target="_top">tutorial</a> e un più lungo <a class="ulink" href="https://techbase.kde.org/Projects/KDevelop4/File_template_specification" target="_top">documento dettagliato</a> ti saranno d'aiuto. Per copiare un modello installato, aprire il gestore di modelli facendo clic sul pulsante <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Impostazioni</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configura KDevelop...</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Modelli</span></span>, seleziona il modello che vuoi copiare, poi fai clic sul pulsante <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Estrai modello</span></span>. Seleziona la cartella di destinazione, poi fai clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">OK</span></span>, e il contenuto del modello verrà estratto nella cartella scelta. Ora puoi modificare il modello aprendo e modificando i file estratti. Dopo che hai finito, puoi importare il tuo nuovo modello in <span class="application">KDevelop</span> aprendo il gestore modelli, attivando la scheda appropriata (ne <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Modelli di progetto</span></span> ne <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Modelli di file</span></span>) e facendo clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Carica modello</span></span>. Aprire il file di descrizione del modello, che non è né <code class="varname">.kdevtemplate</code> né <code class="varname">.desktop</code>. <span class="application">KDevelop</span> comprimerà i file in un archivio per i modelli e importerà il modello. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Quando stai copiando un modello esistente, assicurati di rinominarlo prima di importarlo ancora. Altrimenti sovrascriverai il vecchio modello, o finirai con due modelli con lo stesso nome. Per rinominare un modello, rinomina il file di descrizione in qualcosa di unico (ma tieni il suffisso), e cambia la voce <code class="filename">Nome</code> nel file di descrizione. </p></div><p>
</p><p>Se vuoi scrivere un modello da zero, puoi iniziare con un campione di un modello di una classe C++ da <a class="link" href="creating-projects-from-scratch.html" title="Creare progetti da zero">creare un nuovo progetto</a> e selezionare il <code class="filename">Modello di classe C++</code> per i progetti nella categoria <code class="filename">KDevelop</code>. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="other-files.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="building-compiling-projects-with-custom-makefiles.html">Avanti</a></td></tr><tr><td class="prevCell">Altri file </td><td class="upCell">Generare codice con i modelli</td><td class="nextCell"> Compilare progetti con Makefile personalizzati</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="creating-a-new-unit-test.html">Avanti</a></td></tr><tr><td class="prevCell">Alcune utili scorciatoie da tastiera </td><td class="upCell"> </td><td class="nextCell"> Creare un nuovo unit test</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="building-compiling-projects-with-custom-makefiles.html"><html><head><title>Capitolo 5. Compilare progetti con Makefile personalizzati</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="managing-templates.html" title="Gestire i modelli"><link rel="next" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html" title="Selezionare una collezione di obiettivi Makefile per compilazioni ripetute"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Compilare progetti con Makefile personalizzati</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="managing-templates.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="building-compiling-projects-with-custom-makefiles"></a>Capitolo 5. Compilare progetti con Makefile personalizzati</h1></div></div></div><p>Molti progetti descrivono il modo in cui i file devono essere compilati (e quali file devono essere ricompilati una volta che viene modificato il file sorgente o d'intestazione) usando Makefile che sono interpretati da <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">make</span></span> (vedi, per esempio, <a class="ulink" href="https://www.gnu.org/software/make/" target="_top">GNU make</a>). Per progetti semplici, è spesso molto facile impostare questo file a mano. Progetti più grandi integrano spesso i loro Makefile con <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">GNU autotools</span></span> (autoconf, autoheader, automake). In questa sezione, assumiamo semplicemente di avere un Makefile per il tuo progetto e che tu vuoi istruire <span class="application">KDevelop</span> a interagire con questo.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p><span class="application">KDevelop</span> 4.x non sa molte cose su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">GNU autotools</span></span> nel periodo in cui questa sezione è stata scritta. Se il tuo progetto li usa, dovrai eseguire a mano su una riga di comando <code class="varname">./configure</code> o uno qualsiasi degli altri comandi correlati. Se vuoi fare in questo modo usando <span class="application">KDevelop</span>, apri lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Konsole</span></span> (se necessario aggiungilo alla finestra usando il menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Finestra</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Aggiungi vista strumento</span></span>) che ti fornisce un terminale ed esegui <code class="varname">./configure</code> dalla linea di comando ottenuta.</p></div><p>Il primo passo consiste nell'istruire <span class="application">KDevelop</span> sugli obiettivi del tuo Makefile. Ci sono due modi di farlo: selezionando obiettivi Makefile individuali, e scegliendo un insieme di obiettivi che potresti compilare di frequente. Per entrambi gli approcci, apri lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Progetti</span></span> facendo clic sul pulsante <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Progetti</span></span> nella finestra principale di <span class="application">KDevelop</span> (se non hai questo pulsante vedi sopra su come aggiungerlo). La finestra strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Progetti</span></span> ha due parti: la metà superiore — chiamata <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Progetti</span></span> — elenca tutto dei tuoi progetti e ti consente di espandere la struttura ad albero sottostante. La metà inferiore — chiamata <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Selezione progetto</span></span> — elenca un sottoinsieme di quei progetti che saranno compilati se scegli dal menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Progetto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Compila selezione</span></span> o premi <span class="keycap"><strong>F8</strong></span>; torneremo a questa punto sotto.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="building-individual-makefile-targets"></a>Compilare obiettivi Makefile individuali</h2></div></div></div><p>Nella parte superiore della vista progetto, espandi il sotto-albero di un progetto, diciamo quello di cui vuoi eseguire un particolare Makefile. Questo ti darà (i) delle cartelle sotto questo progetto, (ii) dei file nella cartella di livello superiore di questo progetto, (iii) dei Makefile che <span class="application">KDevelop</span> può identificare. Queste categorie sono mostrare nella figura a destra. Nota che <span class="application">KDevelop</span> <span class="emphasis"><em>interpreta</em></span> fino ad un certo punto la sintassi di Makefile e perciò ti può offire obiettivi definiti in questo Makefile (anche se questa interpretazione ha i suoi limiti se gli obiettivi sono composti o impliciti).</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-1a.png"><div class="caption"><p></p></div></div></div><p>Per compilare uno dei obiettivi elencati, fai clic con il tasto destro del mouse su di esso e seleziona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compila</span></span>. Per esempio, facendolo con <span class="quote">«<span class="quote">make</span>»</span> l'obiettivo semplicemente eseguirà <span class="quote">«<span class="quote">make clean</span>»</span>. Puoi vederlo accadere nella sottofinestra che si apre chiamata <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compila</span></span>, che mostra il comando e l'output.(Questa finistra corrisponde allo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compila</span></span>, così che tu possa chiudere e riaprire la finestra usando il pulsante dello strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compila</span></span>) nella finestra principale. Questo è mostrato in basso a destra nella figura).</p></div><FILENAME filename="selecting-a-collection-of-makefile-targets-for-repeated-building.html"><html><head><title>Selezionare una collezione di obiettivi Makefile per compilazioni ripetute</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="building-compiling-projects-with-custom-makefiles.html" title="Capitolo 5. Compilare progetti con Makefile personalizzati"><link rel="prev" href="building-compiling-projects-with-custom-makefiles.html" title="Capitolo 5. Compilare progetti con Makefile personalizzati"><link rel="next" href="what-to-do-with-error-messages.html" title="Cosa fare con i messaggi di errore"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Selezionare una collezione di obiettivi Makefile per compilazioni ripetute</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="building-compiling-projects-with-custom-makefiles.html">Indietro</a></td><td class="upCell">Compilare progetti con Makefile personalizzati</td><td class="nextCell"><a accesskey="n" href="what-to-do-with-error-messages.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="selecting-a-collection-of-makefile-targets-for-repeated-building"></a>Selezionare una collezione di obiettivi Makefile per compilazioni ripetute</h2></div></div></div><p>Fare clic destro sul singolo Makefile scelto ogni volta che si desidera compilare qualcosa, è una perdita di tempo. Invece, sarebbe bello avere obiettivi individuali per uno o più progetti della sessione che possiamo compilare più volte senza fare molto lavoro con il mouse. Da ciò viene il concetto di <span class="quote">«<span class="quote">Compila selezioni obiettivi</span>»</span>: si tratta di una collezione di obiettivi Makefile che sono compilati uno dopo l'altro ogni volta che premi il pulsante <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compila selezione</span></span> nell'elenco pulsanti in alto, seleziona la voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Progetto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Compila selezione</span></span>, oppure premi il tasto funzione <span class="keycap"><strong>F8</strong></span>.</p><p>L'elenco degli obiettivi Makefile selezionati è mostrato nella metà inferiore della vista strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Progetti</span></span>.</p><p>Per impostazione predefinita, la selezione contiene tutti i progetti, ma puoi cambiarla. Per esempio, se i tuoi progetti contengono tre progetti (una libreria base L e due applicazioni A e B), ma stai ancora lavorando al progetto A, allora potresti voler rimuovere il progetto B dalla selezione evidenziandolo nella selezione e premendo il pulsante <span class="inlinemediaobject"><img src="Icon-list-remove.png"></span>. Inoltre, probabilmente vorrai assicurarti che la libreria L sia compilata prima del progetto A spostando le voci nella selezione in alto o in basso usando i pulsanti a destra dell'elenco. Puoi anche usare un Makefile obiettivo particolare nella selezione facendo clic con il tasto destro su di esso e selezionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Aggiungi al buildset</span></span>, o evidenziandolo e premendo il pulsante <span class="inlinemediaobject"><img src="Icon-list-add.png"></span> appena sopra agli obiettivi selezionati.</p><p><span class="application">KDevelop</span> ti permette d configurare cosa fare ogni volta che compili la selezione. A tale fine usa la voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Progetto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apri configurazione</span></span>. Lì, puoi selezionare, per esempio, il numero di job che dovrebbe eseguire <span class="quote">«<span class="quote">make</span>»</span> — se il tuo computer ha, diciamo, un processore a 8 core, allora mettere 8 in questo campo sarebbe una scelta utile. In questa finestra di dialogo, l'<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">obiettivo make predefinito</span></span> è un obiettivo Makefile usato per <span class="emphasis"><em>tutti</em></span> gli obiettivi in questa selezione.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="building-compiling-projects-with-custom-makefiles.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="what-to-do-with-error-messages.html">Avanti</a></td></tr><tr><td class="prevCell">Compilare progetti con Makefile personalizzati </td><td class="upCell">Compilare progetti con Makefile personalizzati</td><td class="nextCell"> Cosa fare con i messaggi di errore</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="what-to-do-with-error-messages.html"><html><head><title>Cosa fare con i messaggi di errore</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="building-compiling-projects-with-custom-makefiles.html" title="Capitolo 5. Compilare progetti con Makefile personalizzati"><link rel="prev" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html" title="Selezionare una collezione di obiettivi Makefile per compilazioni ripetute"><link rel="next" href="running-programs-in-kdevelop.html" title="Capitolo 6. Eseguire programmi in KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Cosa fare con i messaggi di errore</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Indietro</a></td><td class="upCell">Compilare progetti con Makefile personalizzati</td><td class="nextCell"><a accesskey="n" href="running-programs-in-kdevelop.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="what-to-do-with-error-messages"></a>Cosa fare con i messaggi di errore</h2></div></div></div><p>Se il compilatore incontra un messaggio d'errore, fai clic sulla riga con il messaggio di errore e l'editor salterà in quella riga (e se disponibile la colonna) dove è stato segnalato l'errore. A seconda del messaggio di errore, <span class="application">KDevelop</span> potrebbe offrirti diverse possibili azioni per correggere l'errore, per esempio dichiarare una variabile non dichiarata in precedenza se è stato trovato un simbolo sconosciuto.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="running-programs-in-kdevelop.html">Avanti</a></td></tr><tr><td class="prevCell">Selezionare una collezione di obiettivi Makefile per compilazioni ripetute </td><td class="upCell">Compilare progetti con Makefile personalizzati</td><td class="nextCell"> Eseguire programmi in <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="managing-templates.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Avanti</a></td></tr><tr><td class="prevCell">Gestire i modelli </td><td class="upCell"> </td><td class="nextCell"> Selezionare una collezione di obiettivi Makefile per compilazioni ripetute</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="running-programs-in-kdevelop.html"><html><head><title>Capitolo 6. Eseguire programmi in KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="what-to-do-with-error-messages.html" title="Cosa fare con i messaggi di errore"><link rel="next" href="some-useful-keyboard-shortcuts0.html" title="Alcune utili scorciatoie da tastiera"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Eseguire programmi in <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-to-do-with-error-messages.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts0.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="running-programs-in-kdevelop"></a>Capitolo 6. Eseguire programmi in <span class="application">KDevelop</span></h1></div></div></div><p>Una volta che hai compilato un programma, lo vorrai eseguire. A tale scopo devi configurare per i tuoi progetti i <span class="emphasis"><em>Lanci</em></span>. Un <span class="emphasis"><em>Lancio</em></span> è formato dal nome di un eseguibile, un insieme di parametri della riga di comando, e un ambiente di esecuzione (ad esempio <span class="quote">«<span class="quote">esegui questo programma in una shell</span>»</span>, o <span class="quote">«<span class="quote">esegui questo programma in un debugger</span>»</span>).</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setting-up-launches-in-kdevelop"></a>Impostare i lanci in <span class="application">KDevelop</span></h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-2.png"><div class="caption"><p></p></div></div></div><p>Per impostarli vai alla voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Esegui</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configura i lanci</span></span>, e seleziona il progetto a cui vuoi aggiungere un lancio, e fai clic sul pulsante <span class="inlinemediaobject"><img src="Icon-list-add.png"></span>. Poi inserisci il nome dell'eseguibile, e il percorso dove vuoi eseguire il programma. Se l'esecuzione dell'eseguibile dipende dalla compilazione dell'eseguibile e/o da altre librerie, allora potresti volerle aggiungere all'elenco in basso: seleziona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compila</span></span> dal menu a discesa, poi premi il simbolo <span class="inlinemediaobject"><img src="Icon-folder.png"></span> a destra della casella di testo e seleziona qualunque obiettivo vuoi compilare. Nell'esempio qui sopra ho selezionato l'obiettivo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">tutto</span></span> dal progetto <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>1.deal.II</code></em></span> e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>step-32</code></em></span> dal progetto <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>1.step-32</code></em></span> per assicurarmi che sia la libreria base che il programma siano compilati e aggiornati prima che il programma sia effettivamente eseguito. Già che ci sei, potresti anche configurare il lancio del debug facendo clic sul simbolo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Debug</span></span> e aggiungere il nome del debugger; se è il debugger di sistema (<abbr class="abbrev">ad es.</abbr> <span class="application">gdb</span> on <span class="trademark">Linux</span>®), non hai bisogno di fare questo passo.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-3.png"><div class="caption"><p></p></div></div></div><p>Ora puoi cercare di eseguire il programma: seleziona dal menu della finestra principale di <span class="application">KDevelop</span> <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Esegui</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Esegui lancio</span></span> (o premi <span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>F9</strong></span>) e il tuo programma dovrebbe essere eseguito in una sottofinestra separata di <span class="application">KDevelop</span>. La figura qui sopra mostra il risultato: la nuova sottofinestra in basso relativa allo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Esegui</span></span> mostra l'output del programma in esecuzione, in questo caso il programma <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>step-32</code></em></span>.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Se hai configurato dei lanci multipli, puoi scegliere quale eseguire quando premi <span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>F9</strong></span> andando in <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Esegui</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurazione di lancio attuale</span></span>. Esiste un modo non ovvio per modificare il nome di una configurazione: nella finestra di dialogo che si ottiene quando selezioni <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Esegui</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurazione di lancio attuale</span></span>, il doppio clic sul nome della configurazione nella vista ad albero a sinistra, ti permetterà di modificare il nome della configurazione.</p></div></div><FILENAME filename="some-useful-keyboard-shortcuts0.html"><html><head><title>Alcune utili scorciatoie da tastiera</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="running-programs-in-kdevelop.html" title="Capitolo 6. Eseguire programmi in KDevelop"><link rel="prev" href="running-programs-in-kdevelop.html" title="Capitolo 6. Eseguire programmi in KDevelop"><link rel="next" href="debugging-programs-in-kdevelop.html" title="Capitolo 7. Fare il debug dei programmi in KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Alcune utili scorciatoie da tastiera</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="running-programs-in-kdevelop.html">Indietro</a></td><td class="upCell">Eseguire programmi in <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="debugging-programs-in-kdevelop.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="some-useful-keyboard-shortcuts0"></a>Alcune utili scorciatoie da tastiera</h2></div></div></div><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Eseguire un programma</th></tr></thead><tbody><tr><td><span class="keycap"><strong>F8</strong></span></td><td>Compila (chiama make)</td></tr><tr><td><span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>F9</strong></span></td><td>Esegui</td></tr><tr><td><span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F9</strong></span></td><td>Esegui il programma nel debugger; potresti voler impostare i breakpoint in anticipo, per esempio facenco clic con il tasto destro del mouse su una riga particolare nel codice sorgente</td></tr></tbody></table></div><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="running-programs-in-kdevelop.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="debugging-programs-in-kdevelop.html">Avanti</a></td></tr><tr><td class="prevCell">Eseguire programmi in <span class="application">KDevelop</span> </td><td class="upCell">Eseguire programmi in <span class="application">KDevelop</span></td><td class="nextCell"> Fare il debug dei programmi in <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-to-do-with-error-messages.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts0.html">Avanti</a></td></tr><tr><td class="prevCell">Cosa fare con i messaggi di errore </td><td class="upCell"> </td><td class="nextCell"> Alcune utili scorciatoie da tastiera</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="debugging-programs-in-kdevelop.html"><html><head><title>Capitolo 7. Fare il debug dei programmi in KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="some-useful-keyboard-shortcuts0.html" title="Alcune utili scorciatoie da tastiera"><link rel="next" href="attaching-the-debugger-to-a-running-process.html" title="Collegare il debugger ad un processo in esecuzione"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Fare il debug dei programmi in <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts0.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="attaching-the-debugger-to-a-running-process.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="debugging-programs-in-kdevelop"></a>Capitolo 7. Fare il debug dei programmi in <span class="application">KDevelop</span></h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="running-a-program-in-the-debugger"></a>Eseguire un programma nel debugger</h2></div></div></div><p>Una volta che hai un lancio configurato (vedi <a class="link" href="running-programs-in-kdevelop.html" title="Capitolo 6. Eseguire programmi in KDevelop">Eseguire programmi</a>), puoi anche eseguirlo in un debugger: seleziona la voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Esegui</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Debug del lancio</span></span>, o premi <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F9</strong></span>. Se hai familiarità con <span class="application">gdb</span>, l'effetto è lo stesso di avviare <span class="application">gdb</span> con l'eseguibile specificato nella configurazione di lancio e poi lanciare l'esecuzione con <code class="varname">Esegui</code>. Questo significa che se il programma chiama da qualche parte la funzione <code class="varname">abort()</code> (<abbr class="abbrev">ad es.</abbr> quando incappi in un'asserzione) o se c'è un segmentation fault, allora il debugger si fermerà. D'altra parte, se il programma viene eseguito fino alla fine (con o senza fare la cosa giusta) allora il debugger non si fermerà da solo prima che il programma sia finito. In quest'ultimo caso, vorrai impostare un breakpoint su tutte quelle righe del tuo codice nelle quali vuoi che il debugger si fermi prima di eseguire il debug del lancio. Questo puoi farlo spostando il cursore del mouse su una riga di quel tipo e selezionando la voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Esegui</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Attiva/Disattiva breakpoint</span></span>, o facendo clic con il tasto destro su una riga e selezionando dal menu contestuale <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Attiva/Disattiva breakpoint</span></span>.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-4.png"><div class="caption"><p></p></div></div></div><p>Eseguire un programma nel debugger porrà <span class="application">KDevelop</span> in una diversa modalità: rimpiazzerà tutti i pulsanti <span class="quote">«<span class="quote">Strumento</span>»</span> della finestra principale con quelli più appropriati per il debug, piuttosto che per la modifica. Puoi vedere in quale modalità sei guardando in alto a destra nella finestra: ci sono tabelle chiamate <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisione</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Debug</span></span>, e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Codice</span></span>; fare clic su queste ti permette di scegliere una delle tre modalità: ogni modalità ha un proprio insieme di viste strumento, che puoi configurare allo stesso modo in cui hai configurato lo strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Codice</span></span> nella sezione <a class="link" href="working-with-source-code.html#tools-and-views" title="Strumenti e viste">Strumenti e viste</a>.</p><p>Una volta che il debugger si ferma (ad un breakpoint, o in un punto dove viene chiamata la funzione <code class="varname">abort()</code>) puoi controllare una serie di informazioni riguardo il tuo programma. Per esempio, nella figura qui sopra, abbiamo selezionato lo strumento in basso <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Frame Stack</span></span> (più o meno equivalente ai comandi <span class="quote">«<span class="quote">backtrace</span>»</span> e <span class="quote">«<span class="quote">info threads</span>»</span> di <span class="application">gdb</span>) che mostra, sulla sinistra, i vari thread che sono attualmente in esecuzione nel tuo programma (qui in totale 8) e come, sulla destra, l'esecuzione ha raggiunto il punto di arresto (qui: <code class="varname">main()</code> called <code class="varname">run()</code>; l'elenco sarebbe più lungo se ci fossimo fermati su una funzione chiamata dalla stessa funzione <code class="varname">run()</code>). Sulla sinistra, possiamo controllare le variabili locali e l'oggetto corrente (l'oggetto puntato dalla variabile <code class="varname">this</code>).</p><p>Da qui ci sono diverse cose che puoi fare: puoi eseguire la riga corrente (<span class="keycap"><strong>F10</strong></span>, il comando <span class="quote">«<span class="quote">successivo</span>»</span> di <span class="application">gdb</span>), passare dentro le funzioni (<span class="keycap"><strong>F11</strong></span>, il comando <span class="quote">«<span class="quote">passo</span>»</span> di <span class="application">gdb</span>), o eseguire la funzione fino alla fine (<span class="keycap"><strong>F12</strong></span>, il comando <span class="quote">«<span class="quote">ferma</span>»</span> di <span class="application">gdb</span>). In ogni fase, <span class="application">KDevelop</span> aggiorna le variabili mostrate sulla sinistra con i valori attuali. Puoi anche passare il mouse sopra un simbolo del tuo codice, <abbr class="abbrev">ad es.</abbr> una variabile; <span class="application">KDevelop</span> mostrerà quindi il valore attuale di quel simbolo e chiederà di fermare il programma durante l'esecuzione la prossima volta che il valore di questa variabile cambierà. Se conosci <span class="application">gdb</span>, puoi anche fare clic sul pulsante strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">GDB</span></span> in basso e avere la possibilità di inserire comandi <span class="application">gdb</span>, per esempio al fine di cambiare il valore di una variabile (per la quale attualmente non sembra esserci altro modo).</p></div><FILENAME filename="attaching-the-debugger-to-a-running-process.html"><html><head><title>Collegare il debugger ad un processo in esecuzione</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="debugging-programs-in-kdevelop.html" title="Capitolo 7. Fare il debug dei programmi in KDevelop"><link rel="prev" href="debugging-programs-in-kdevelop.html" title="Capitolo 7. Fare il debug dei programmi in KDevelop"><link rel="next" href="some-useful-keyboard-shortcuts1.html" title="Alcune utili scorciatoie da tastiera"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Collegare il debugger ad un processo in esecuzione</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="debugging-programs-in-kdevelop.html">Indietro</a></td><td class="upCell">Fare il debug dei programmi in <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts1.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="attaching-the-debugger-to-a-running-process"></a>Collegare il debugger ad un processo in esecuzione</h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-9.png"><div class="caption"><p></p></div></div></div><p>A volte si vuole fare il debug di un programma che è già in esecuzione. Uno scenario di questo è il debug di programmi paralleli usando <a class="ulink" href="https://computing.llnl.gov/tutorials/mpi/" target="_top">MPI</a>, o per fare il debug di un processo in esecuzione da molto tempo in background. Per farlo, andare alla voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Esegui</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Collega al debugger</span></span>, questo aprirà una finestra come quella qui sopra. Vorrai selezionare il programma che corrisponde al progetto che hai aperto in questo momento in <span class="application">KDevelop</span> - nel mio caso questo sarebbe il programma step-32.</p><p>L'elenco dei programmi può confondere perché è spesso lungo come nel caso mostrato qui. Puoi rendere la tua vita un po' più semplice andando nella casella a tendina in alto a destra della finestra. Il valore predefinito è <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Processi utente</span></span>, cioè tutti i programmi in esecuzione degli utenti connessi al momento al computer (se questo è il tuo desktop o laptop, probabilmente sei l'unico utente, oltre gli account root e degli altri servizi); l'elenco, comunque, non include i processi eseguiti dall'utente root. Puoi limitare l'elenco per entrambi scegliendo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Processi propri</span></span>, rimuovendo tutti i programmi eseguiti dagli altri utenti. O meglio ancora: seleziona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Solo programmi</span></span>, questo rimuove molti processi che sono formalmente in esecuzione sotto il tuo nome ma con i quali non interagisci di solito, come il gestore delle finestre, le attività in background e così via, che sono candidati improbabili per il debug.</p><p>Una volta che hai selezionato un processo, collegandolo ti porterà nella modalità di debug di <span class="application">KDevelop</span>, aprendo tutte le solite viste strumento del debugger e fermando il programma nella posizione in cui sembrava essere quando lo hai collegato. Poi potresti voler impostare i breakpoint, i punti di vista, o qualsiasi altra cosa è necessaria e continuare l'esecuzione del programma andando alla voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Esegui</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Continua</span></span>.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="debugging-programs-in-kdevelop.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts1.html">Avanti</a></td></tr><tr><td class="prevCell">Fare il debug dei programmi in <span class="application">KDevelop</span> </td><td class="upCell">Fare il debug dei programmi in <span class="application">KDevelop</span></td><td class="nextCell"> Alcune utili scorciatoie da tastiera</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="some-useful-keyboard-shortcuts1.html"><html><head><title>Alcune utili scorciatoie da tastiera</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="debugging-programs-in-kdevelop.html" title="Capitolo 7. Fare il debug dei programmi in KDevelop"><link rel="prev" href="attaching-the-debugger-to-a-running-process.html" title="Collegare il debugger ad un processo in esecuzione"><link rel="next" href="working-with-version-control-systems.html" title="Capitolo 8. Lavorare con i sistemi di controllo versione"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Alcune utili scorciatoie da tastiera</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="attaching-the-debugger-to-a-running-process.html">Indietro</a></td><td class="upCell">Fare il debug dei programmi in <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="working-with-version-control-systems.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="some-useful-keyboard-shortcuts1"></a>Alcune utili scorciatoie da tastiera</h2></div></div></div><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Debugging</th></tr></thead><tbody><tr><td><span class="keycap"><strong>F10</strong></span></td><td>Passa oltre (<span class="quote">«<span class="quote">successivo</span>»</span> di gdb)</td></tr><tr><td><span class="keycap"><strong>F11</strong></span></td><td>Passa dentro (<span class="quote">«<span class="quote">passo</span>»</span> di gdb)</td></tr><tr><td><span class="keycap"><strong>F12</strong></span></td><td>Esci da (<span class="quote">«<span class="quote">finisci</span>»</span> di gdb)</td></tr></tbody></table></div><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="attaching-the-debugger-to-a-running-process.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="working-with-version-control-systems.html">Avanti</a></td></tr><tr><td class="prevCell">Collegare il debugger ad un processo in esecuzione </td><td class="upCell">Fare il debug dei programmi in <span class="application">KDevelop</span></td><td class="nextCell"> Lavorare con i sistemi di controllo versione</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts0.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="attaching-the-debugger-to-a-running-process.html">Avanti</a></td></tr><tr><td class="prevCell">Alcune utili scorciatoie da tastiera </td><td class="upCell"> </td><td class="nextCell"> Collegare il debugger ad un processo in esecuzione</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="working-with-version-control-systems.html"><html><head><title>Capitolo 8. Lavorare con i sistemi di controllo versione</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="some-useful-keyboard-shortcuts1.html" title="Alcune utili scorciatoie da tastiera"><link rel="next" href="customizing-kdevelop.html" title="Capitolo 9. Personalizzare KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Lavorare con i sistemi di controllo versione</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts1.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="customizing-kdevelop.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="working-with-version-control-systems"></a>Capitolo 8. Lavorare con i sistemi di controllo versione</h1></div></div></div><p>Se stai lavorando su progetti di grandi dimensioni, è probabile che il codice sorgente sia gestito da un sistema di controllo versione come <a class="ulink" href="https://subversion.apache.org/" target="_top">subversion</a> o <a class="ulink" href="https://git-scm.com/" target="_top">git</a>. La descrizione seguente è scritta prendendo in considerazione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">subversion</span></span> ma sarà altrettando vera se si usa <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">git</span></span> o qualsiasi altro sistema di controllo versione.</p><p>Per prima cosa, non è che se la cartella in cui si trova un progetto è sotto controllo versione, automaticamente <span class="application">KDevelop</span> lo rileva. In altre parole: non è necessario dire a <span class="application">KDevelop</span> di andare a prelevare un copia durante l'impostazione del progetto; ma è una buona scelta far puntare <span class="application">KDevelop</span> a una cartella nella quale si è in precedenza scaricato un progetto dopo averlo prelevato dal deposito. Se si ha sotto controllo versione una cartella di questo tipo, aprire la vista strumento <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Progetti</span></span>. Ci sono poi una serie di cose che si possono fare:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Se la cartella è diventata obsoleta, la puoi aggiornare dal deposito: fai clic col tasto destro del mouse sul nome del progetto, vai al menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> e seleziona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Aggiorna</span></span>. Questo aggiornerà tutti i file che appartengono a questo progetto a quelli presenti nel deposito. </p></li><li class="listitem"><p>Se vuoi limitare questa azione alle singole sottocartelle o file, allora espandi la vista ad albero del progetto al livello che vuoi e fai clic destro sul nome della sotto cartella o file, quindi fai lo stesso di sopra. </p></li></ul></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-8.png"><div class="caption"><p></p></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Se hai modificato uno o più file, espandi la vista di questo progetto alla cartella in cui questi file sono presenti e fai clic destro sulla cartella. Questo ti darà una voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> che ti proporrà diverse scelte. Scegli <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Mostra differenze</span></span> per vedere le differenze tra la versione che hai modificato e la versione nel deposito che hai prelevato in precedenza (la revisione <span class="quote">«<span class="quote">base</span>»</span>). La vista risultante mostrerà le <span class="quote">«<span class="quote">differenze</span>»</span> per tutti i file della cartella. </p></li><li class="listitem"><p>Se hai modificato solo un file, puoi anche ottenere il menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> per questo file facendo semplicemente clic sul nome corrispondente nella vista progetto. In modo più semplice, basta fare clic destro nella vista <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Editor</span></span> nella quale hai aperto questo file ottenendo anche questa opzione del menu. </p></li><li class="listitem"><p>Se vuoi inviare uno o più file modificati, fai clic destro o su un singolo file, sottocartella o su tutto il progetto e seleziona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Subversion</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Deposita</span></span>. Questo ti porterà nella modalità <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisione</span></span>, la terza modalità oltre a <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Codice</span></span> e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Debug</span></span> nell'angolo in alto a destra della finestra principale di <span class="application">KDevelop</span>. La figura sulla destra mostra com'è. Nella modalità <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisione</span></span>, la parte superiore mostra le differenze per l'intera/o sottocartella/progetto e ciascuno dei singoli file modificati con le modifiche evidenziate (vedi le varie tabelle di questa parte della finestra). Per impostazione predefinita, tutti i file modificati sono nel changeset che stai per depositare, ma puoi deselezionarne alcuni se le loro modifiche non sono legate a cosa vuoi depositare. Per esempio, nell'esempio sulla destra ho deselezionato <code class="varname">step-32.cc</code> e <code class="varname">step-32.prm</code> perché le modifiche in questi file non hanno niente a che fare con le altre che ho fatto nel progetto e che non voglio ancora depositare (potrei volerlo fare in un secondo momento). Dopo aver revisionato le modifiche puoi inserire un messaggio di deposito nella casella di testo e premere <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Deposita</span></span> sulla destra per inviare quello che vuoi. </p></li><li class="listitem"><p>Proprio come nella visualizzazione delle differenze, se vuoi inviare un unico file è sufficiente fare clic destro nella finestra dell'editor per avere la voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Subversion</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Deposita</span></span>. </p></li></ul></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts1.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="customizing-kdevelop.html">Avanti</a></td></tr><tr><td class="prevCell">Alcune utili scorciatoie da tastiera </td><td class="upCell"> </td><td class="nextCell"> Personalizzare <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-kdevelop.html"><html><head><title>Capitolo 9. Personalizzare KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="working-with-version-control-systems.html" title="Capitolo 8. Lavorare con i sistemi di controllo versione"><link rel="next" href="customizing-code-indentation.html" title="Personalizzare l'identazione del codice"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalizzare <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-version-control-systems.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="customizing-code-indentation.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="customizing-kdevelop"></a>Capitolo 9. Personalizzare <span class="application">KDevelop</span></h1></div></div></div><p>Quando vuoi cambiare l'aspetto o il comportamento predefinito di <span class="application">KDevelop</span>, per esempio perché sei abituato a differenti scorciatoie da tastiera o perché il tuo progetto richiede uno stile di identazione del codice sorgente diverso. Nelle sezioni seguenti, discuteremo brevemente i diversi modi in cui è possibile personalizzare <span class="application">KDevelop</span> per questi scopi.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-the-editor"></a>Personalizzare l'editor</h2></div></div></div><p>Ci sono molte cose utili che si possono configurare nell'editor di <span class="application">KDevelop</span>. L'uso più comune consiste nell'abilitare la numerazione delle righe usando la voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Editor</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Vista</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Mostra i numeri di riga</span></span>, il che rende più facile abbinare i messaggi di errore del compilatore o i messaggi di debug con le posizioni nel codice. Nello stesso sottomenu potresti voler anche abilitare il <span class="emphasis"><em>bordo delle icone</em></span> - una colonna alla sinistra del codice nella quale <span class="application">KDevelop</span> mostrerà le icone come ad esempio quella di un breakpoint su una riga.</p></div><FILENAME filename="customizing-code-indentation.html"><html><head><title>Personalizzare l'identazione del codice</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="customizing-kdevelop.html" title="Capitolo 9. Personalizzare KDevelop"><link rel="prev" href="customizing-kdevelop.html" title="Capitolo 9. Personalizzare KDevelop"><link rel="next" href="customizing-keyboard-shortcuts.html" title="Personalizzare le scorciatoie da tastiera"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalizzare l'identazione del codice</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-kdevelop.html">Indietro</a></td><td class="upCell">Personalizzare <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="customizing-keyboard-shortcuts.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-code-indentation"></a>Personalizzare l'identazione del codice</h2></div></div></div><p>A molti di noi piace il testo formattato in un modo particolare. Molti progetti obbligano ad usare un particolare stile di identazione. Alcuni di questi potrebbero non corrispondere agli stili predefiniti di <span class="application">KDevelop</span>. Tuttavia, questo può essere personalizzato: andare alla voce del menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Impostazioni</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurare <span class="application">KDevelop</span></span></span>, poi fare clic su <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Formattatore sorgenti</span></span> sulla sinistra. È possibile scegliere uno degli stili predefiniti di identazione, che sono quelli tra i più usati, o definirne uno proprio aggiungendo un nuovo stile e poi modificandolo. Potrebbe non esserci un modo di ricreare esattamente lo stile di identazione usato nei sorgenti di un progetto passato, ma ti ci puoi avvicinare usando le impostazioni di un nuovo stile; un esempio è mostrato nelle due figure qui sotto.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-5.png"><div class="caption"><p></p></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-6.png"><div class="caption"><p></p></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Con <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel"><span class="application">KDevelop</span> 4.2.2</span></span>, puoi creare un nuovo stile per un particolare tipo MIME (<abbr class="abbrev">ad es.</abbr> per i file di intestazione C++) ma questo stile potrebbe non apparire nella lista dei possibili stili per altri tipi MIME (<abbr class="abbrev">ad es.</abbr> per i file sorgente C++) anche se potrebbe essere utile usare lo stesso stile per entrambi i tipi di file. Perciò dovrai definire lo stile due volte, una volta per il file di intestazione e l'altra per i file sorgente. Questo comportamento è stato riportato come <a class="ulink" href="https://bugs.kde.org/show_bug.cgi?id=272335" target="_top">bug 272335 di <span class="application">KDevelop</span></a>.</p></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-kdevelop.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="customizing-keyboard-shortcuts.html">Avanti</a></td></tr><tr><td class="prevCell">Personalizzare <span class="application">KDevelop</span> </td><td class="upCell">Personalizzare <span class="application">KDevelop</span></td><td class="nextCell"> Personalizzare le scorciatoie da tastiera</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-keyboard-shortcuts.html"><html><head><title>Personalizzare le scorciatoie da tastiera</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="customizing-kdevelop.html" title="Capitolo 9. Personalizzare KDevelop"><link rel="prev" href="customizing-code-indentation.html" title="Personalizzare l'identazione del codice"><link rel="next" href="customizing-code-auto-completion.html" title="Personalizzare l'auto-completamento del codice"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalizzare le scorciatoie da tastiera</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-indentation.html">Indietro</a></td><td class="upCell">Personalizzare <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="customizing-code-auto-completion.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-keyboard-shortcuts"></a>Personalizzare le scorciatoie da tastiera</h2></div></div></div><p><span class="application">KDevelop</span> ha una lista quasi infinita di scorciatoie da tastiera (alcune di esse sono elencate nelle <span class="quote">«<span class="quote">Sezioni scorciatoie da tastiera utili</span>»</span> di diversi capitoli di questo manuale) che possono essere modificate a piacere attraverso il menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Impostazioni</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configura le scorciatoie</span></span>. Nella parte superiore della finestra di dialogo è possibile inserire una parola, una volta inserita saranno mostrate solo le scorciatoie corrispondenti alla parola, quindi è possibile modificare la combinazione dei tasti da associare alla scorciatoia.</p><p>Due che sono state considerate utili da cambiare riguardano l'impostazione di <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Align</span></span> per il <span class="keycap"><strong>Tab</strong></span> (molte persone non inseriscono i tab a mano e preferiscono piuttosto che l'editor scelga il layout del codice; con la scorciatoia modificata, la pressione di <span class="keycap"><strong>Tab</strong></span> fa sì che <span class="application">KDevelop</span> identi/deidenti/allinei il codice). La seconda è mettere <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Attiva/disattiva breakpoint</span></span> su <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>B</strong></span> perché è una operazione abbastanza comune.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-indentation.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="customizing-code-auto-completion.html">Avanti</a></td></tr><tr><td class="prevCell">Personalizzare l'identazione del codice </td><td class="upCell">Personalizzare <span class="application">KDevelop</span></td><td class="nextCell"> Personalizzare l'auto-completamento del codice</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-code-auto-completion.html"><html><head><title>Personalizzare l'auto-completamento del codice</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="customizing-kdevelop.html" title="Capitolo 9. Personalizzare KDevelop"><link rel="prev" href="customizing-keyboard-shortcuts.html" title="Personalizzare le scorciatoie da tastiera"><link rel="next" href="credits.html" title="Capitolo 10. Riconoscimenti e licenza"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalizzare l'auto-completamento del codice</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-keyboard-shortcuts.html">Indietro</a></td><td class="upCell">Personalizzare <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="credits.html">Avanti</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-code-auto-completion"></a>Personalizzare l'auto-completamento del codice</h2></div></div></div><p>Il completamento del codice è discusso nella <a class="link" href="writing-source-code.html#auto-completion" title="Auto-completamento">sezione che riguarda la scrittura del codice sorgente di questo manuale</a>. In <span class="application">KDevelop</span>, viene da due fonti: l'editor, e il motore di analisi. L'editor (<span class="application">Kate</span>) è una componente dell'ambiente KDE e offre l'auto-completamento basato sulle parole già viste in altre parti dello stesso documento. L'auto-completamento può essere identificato nel suggerimento dall'icona che lo precede:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-20.png"><div class="caption"><p></p></div></div></div><p>Il completamento del codice dell'editor può essere personalizzato con <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Impostazioni</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configura editor</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Modifica</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Completamento delle parole</span></span>. In particolare, puoi selezionare quanti caratteri di una parola è necessario scrivere prima che questa venga completata.</p><p>Però l'auto-completamento di <span class="application">KDevelop</span> è molto più potente in quanto tiene conto delle informazioni semantiche del contesto. Per esempio, sa quali funzioni membro proporre quando digiti <code class="varname">object.</code>, <abbr class="abbrev">ecc.</abbr>, come mostrato qui:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-42.png"><div class="caption"><p></p></div></div></div><p>Queste informazioni sul contesto provengono dalle varie estensioni di supporto linguaggio, che possono essere usate dopo che è stato salvato un dato file (in modo da poter poi controllare il tipo di file e utilizzare il supporto linguaggio corretto)</p><p>Il completamento di <span class="application">KDevelop</span> è impostato per comparire durante la digitazione, subito, praticamente ovunque ci sia bisogno di completare qualcosa. Questo è configurabile in <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Impostazioni</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configura <span class="application">KDevelop</span></span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Supporto linguaggio</span></span>. Se non è già impostato (come dovrebbe, per impostazione predefinita), assicurarsi che sia impostato <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Abilita l'invocazione automatica</span></span>.</p><p><span class="application">KDevelop</span> ha due modi per visualizzare un completamento: il <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Completamento automatico minimo</span></span> che mostra solo le informazioni base in suggerimenti di completamento (cioè i namespace, le classi, le funzioni, o nomi delle variabili). Questo sarà simile al completamento di <span class="application">Kate</span> (eccetto le icone).</p><p>Però, il <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Completamento totale</span></span> in aggiunta mostrerà il tipo di ogni voce, e in caso di funzioni, anche gli argomenti che prende. Inoltre se stai attualmente inserendo gli argomenti di una funzione, il completamento totale avrà un riquadro di informazioni aggiuntivo sopra il cursore che ti mostrerà l'argomento su cui stai lavorando adesso.</p><p>Il completamento del codice di <span class="application">KDevelop</span> dovrebbe evidenziare in verde tutti gli elementi di completamento che corrispondono al tipo attualmente previsto sia nel completamento minimo che totale, noto come <span class="quote">«<span class="quote">best-matches</span>»</span>.</p><p>Le tre possibili scelte per il livello di completamento nella finestra di dialogo della configurazione sono:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Sempre completamento minimo</span></span>: non mostra mai il <span class="quote">«<span class="quote">Completamento totale</span>»</span> </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Completamento automatico minimo</span></span>: mostra solo il <span class="quote">«<span class="quote">Completamento totale</span>»</span> quando l'auto-completamento è stato avviato automaticamente (cioè, ogni volta che premi <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Spazio</strong></span>) </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Sempre completamento totale</span></span>: mostra sempre il <span class="quote">«<span class="quote">Completamento totale</span>»</span> </p></li></ul></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-keyboard-shortcuts.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="credits.html">Avanti</a></td></tr><tr><td class="prevCell">Personalizzare le scorciatoie da tastiera </td><td class="upCell">Personalizzare <span class="application">KDevelop</span></td><td class="nextCell"> Riconoscimenti e licenza</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-version-control-systems.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"><a accesskey="n" href="customizing-code-indentation.html">Avanti</a></td></tr><tr><td class="prevCell">Lavorare con i sistemi di controllo versione </td><td class="upCell"> </td><td class="nextCell"> Personalizzare l'identazione del codice</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="credits.html"><html><head><title>Capitolo 10. Riconoscimenti e licenza</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, sviluppo, programmazione"><link rel="home" href="index.html" title="Manuale di KDevelop"><link rel="up" href="index.html" title="Manuale di KDevelop"><link rel="prev" href="customizing-code-auto-completion.html" title="Personalizzare l'auto-completamento del codice"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Riconoscimenti e licenza</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-auto-completion.html">Indietro</a></td><td class="upCell"> </td><td class="nextCell"></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="credits"></a>Capitolo 10. Riconoscimenti e licenza</h1></div></div></div><p>Copyright documentazione vedere <a class="ulink" href="https://userbase.kde.org/index.php?title=KDevelop4/Manual&amp;action=history" target="_top">KDevelop4/Manual: cronologia delle modifiche</a></p><p>Simone Solinas <code class="email">(ksolsim AT gmail.com)</code></p><p><a name="gnu-fdl"></a>Questa documentazione è concessa in licenza sotto i termini della <a class="ulink" href="help:/kdoctools5-common/fdl-license.html" target="_top">GNU Free Documentation
License</a>.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-auto-completion.html">Indietro</a></td><td class="upCell"><a accesskey="h" href="index.html">Partenza</a></td><td class="nextCell"></td></tr><tr><td class="prevCell">Personalizzare l'auto-completamento del codice </td><td class="upCell"> </td><td class="nextCell"> </td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="what-is-kdevelop.html">Avanti</a></td></tr><tr><td class="prevCell"> </td><td class="upCell"> </td><td class="nextCell"> Cosa è <span class="application">KDevelop</span>?</td></tr></table></div><div id="footer_text">Vuoi mandare un commento o contribuire all'aggiornamento di questa pagina?<br>Invia le tue segnalazioni alla <a href="mailto:kde-doc-english@kde.org" class="footer_email">Squadra di documentazione di KDE</a></div></div></div></body></html></FILENAME>

Generated by dwww version 1.15 on Thu Jun 27 23:05:38 CEST 2024.