# Strumenti di editing

## Frammenti di codice

### Caratteristiche (panoramica preliminare)

- SnippetPart aggiunge una vista che viene agganciata a destra

- L'aggiunta, la modifica e la rimozione di frammenti di codice può essere fatta attraverso un menu a comparsa

- Facendo doppio clic su una porzione di codice la inserirà nella vista attiva nella posizione attuale del cursore

- Gli aiuti mostrano i contenuti di un frammento di codice

- I frammenti di codice sono memorizzati nella cartella home, quindi ogni utente può avere i propri.

- I frammenti di codice possono contenere variabili sotto forma di $`NOMEVARIABILE`$. Quando vengono usati sarà chiesto all'utente di fornire i valori sostitutivi per le variabili

## Tasti Speciali

Di seguito verranno elencate le scorciatoie dell'editor di default. Possono essere configurate a piacimento.

Sinistra | Si muove di un carattere a sinistra
Destra | Si muove di un carattere a destra
&Ctrl; Sinistra | Si muove di una parola a sinistra
&Ctrl; Destra | Si muove di una parola a destra
Su | Si muove in alto di una linea
Giù | Si muove in basso di una linea
Page Up | Si muove in alto di una pagina
Page Down | Si muove in basso di una pagina
&Ctrl; Page Down | Si muove all'inizio del file
&Ctrl; Page Down | Si muove alla fine del file
Home | Si muove all'inizio della linea
End | Si muove alla fine della linea

Per tutti le combinazioni sopra elencate, può essere premuto in aggiunta il tasto &Shift; per selezionare dalla posizione attuale a quella seguente.

Backspace | Cancella il carattere a sinistra
Delete | Cancella il carattere sotto al cursore
&Ctrl; C | Copia il testo selezionato negli appunti
&Ctrl; V | Incolla il testo selezionato negli appunti
&Ctrl; X | Cancella il testo selezionato e lo mette negli appunti
&Ctrl; Z | Annulla
&Shift;&Ctrl; Z | Ripete

## Reporter di problema

(... da scrivere ...)

## Cercare e usare grep

### cercare il testo

&Ctrl;F- Trova &Ctrl;R- Sostituisci

### ISearch

La ricerca tradizionale con il comando Modifica Trova richiede di specificare l'intero termine da cercare prima di avviare la ricerca. Spesso è molto più veloce cercare in modo incrementale. Se si fa clic nel campo chiamato ISearch nella barra degli strumenti, la ricerca verrà effettuata mentre si digita. Spesso il termine desiderato viene trovato dopo aver scritto 3 o 4 lettere.

### Grep

Entrambi i meccanismi di ricerca descritti prima sono limitati all'interno di un file sorgente. Attraverso la voce Trova nei file... nel menu Modifica è disponibile uno strumento aggiuntivo che permette di cercare attraverso un insieme (anche grande) di file. Fondamentalmente è un frontend per il programma &grep;(1).

Nella finestra di dialogo si può specificare in quali file effettuare la ricerca. In una casella a scelta multipla sono disponibili parecchi caratteri jolly. In questo modo si può facilmente restringere il meccanismo di ricerca ai file header. Inoltre, si può specificare la directory da dove far partire la ricerca. Se si seleziona la casella Ricorsivo, la ricerca proseguirà in tutte le sottodirectory della gerarchia sottostante alla directory specificata.

Generalmente il termine da cercare è un'espressione regolare che segue la sintassi POSIX. Per esempio, si può usare il termine `"\<K.*"` per trovare tutte le parole che iniziano con la lettera K. I seguenti caratteri sono interpretati in maniera speciale:

`.` | Corrisponde ad ogni carattere
`^` | Corrisponde all'inizio di una linea
`$` | Corrisponde alla fine di una linea
`\<` | Corrisponde all'inizio di una parola
`\>` | Corrisponde alla fine di una parola
`?` | L'elemento precedente è presente meno di una volta
`*` | L'elemento precedente è presente zero o più volte
`+` | L'elemento precedente è presente una o più volte
`{n}` | L'elemento precedente è presente esattamente n volte
`{n,}` | L'elemento precedente è presente n o più volte
`{,n}` | L'elemento precedente è presente meno di n volte
`{n,m}` | L'elemento precedente è presente almeno `n` volte ma meno di `m` volte

I riferimenti alle espressioni tra parentesi sono disponibili tramite la notazione `\n`.

In aggiunta per i programmatori C++ ci sono alcuni modelli di ricerca tipici. Questi permettono ad esempio di cercare tutte le chiamate alle funzioni membro di un certo oggetto.

Quando si avvia una ricerca facendo clic sul pulsante Trova, essa verrà effettuata da un processo asincrono esterno. Tutti gli elementi trovati appariranno nella vista chiamata Grep. Si può saltare direttamente all'elemento trovato facendo clic su di esso. Notare che grep scansiona i file come sono memorizzati nel file system. Se si hanno versioni modificate di questi file nel proprio editor si potrebbero ricevere errori nel numero di linea o alcuni elementi potrebbero non essere validi — si possono evitare questi problemi salvando anticipatamente tutti i file.

## Completamento del codice

(... da scrivere ...)

## Creare nuovi file e classi

(... da scrivere ...)

### Modificare i modelli

(... da scrivere ...)