<chapter id="kdevelop-scripting">

<chapterinfo>
  <authorgroup>
    <author
><firstname
>Ian</firstname
><surname
>Geiser</surname
></author>
    <!-- ROLES_OF_TRANSLATORS -->
  </authorgroup>
</chapterinfo>

<title
>Usare gli script in KDevelop</title>

<sect1 id="running-scripts">
<title
>Eseguire gli script</title>
<para
>Per accedere agli script disponibili in &kdevelop; selezionare la voce <menuchoice
><guimenu
>Strumenti</guimenu
><guimenuitem
>Script</guimenuitem
></menuchoice
>. Se questa voce non è presente significa che non ci sono script disponibili. </para>
</sect1>

<sect1 id="adding-scripts">
<title
>Aggiungere Script</title>
<para
>Dopo aver aggiunto il supporto per KScript nella propria applicazione è semplice inserire degli script. Essi sono composti da due parti: un file desktop che contiene i metadati e lo script vero e proprio. Questo metodo viene usato per motivi di sicurezza e semplicità: il file desktop fornisce le meta-informazioni per i menu e il tipo di script, in modo che l'applicazione host non debba verificare lo script ogni volta che viene caricato. Di seguito viene mostrato un esempio di questo file:  </para>
<para
>Il precedente esempio mostra le parti principali che vengono esaminate da KScript. La prima voce "Name" è il nome che verrà visualizzato all'utente nell'applicazione host e la voce "Comment" contiene un commento che viene visualizzato in un aiuto. La voce "Type" è la più importante. È usata per selezionare lo script engine appropriato per eseguire lo script; attualmente in KDE sono disponibili "ShellScript/bash" e "JavaScript/kjs". Successivamente si deve creare lo script vero e proprio. Nell'esempio precedente il tipo di script usato è "ShellScript/bash". L'engine shellscript fornisce alcuni strumenti allo sviluppatore. Il primo elemento è l'ID DCOP dell'applicazione host, che viene passato allo script come primo argomento. Nello script, il valore "$1" restituirà l'ID DCOP dell'host. Di seguito viene mostrato un script shell di esempio: </para>

<para
>Questo script è piuttosto semplice: esegue un comando ed imposta come testo del primo documento l'output del comando "ls -l"</para>

<para
>L'applicazione KDCOP è uno degli strumenti più importanti nello sviluppo di script. </para>
<figure id="screenshot-kdcop" float="1">
  <title
>Navigazione nelle interfacce DCOP in &kdevelop; con KDCOP</title>
  <mediaobject>
    <imageobject
><imagedata fileref="kdcop_browsing.png"/></imageobject>
  </mediaobject>
</figure>

<para
>KDCOP permette agli sviluppatori di script la navigazione e il debug delle interfacce dell'applicazione host. Inoltre fornisce anche la possibilità di selezionare un metodo e trascinare il codice in un editor di testo, in modo da semplificare l'uso per chi non capisce i metodi DCOP del linguaggio host. Per l'accesso a DCOP vengono attualmente supportati i linguaggi KJSEmbed, Python e shell UNIX.</para>

<para
>Una volta che lo script è completato può essere installato. Gli sviluppatori di applicazioni dovrebbero documentare la posizione che verrà esaminata per cercare gli script. Nell'esempio precedente gli script di Kate sono contenuti in "$KDEDIRS/share/apps/kate/scripts".</para>

<figure id="screenshot-scripts" float="1">
  <title
>Script &kdevelop; nel filesystem</title>
  <mediaobject>
    <imageobject
><imagedata fileref="script_location.png"/></imageobject>
  </mediaobject>
</figure>

<para
>Il file desktop e lo script associato dovrebbero essere contenuti nella stessa directory. Viene raccomandato agli sviluppatori di script di inserire nella stessa directory anche tutte le altre risorse per gli script come i file UI o i file di dati. Nell'esempio precedente gli script verranno visualizzati nel menu Strumenti->Script. È importante notare che gli script non dovrebbero effettuare operazioni che possono bloccarsi per un lungo periodo di tempo, o entrare in un loop di eventi perché la versione attuale dell'interfaccia degli script è adattata per compiti automatizzati che vengono eseguiti fino al loro termine. Essa verrà successivamente estesa in KDE 4. </para>

</sect1>


</chapter>
