# GNOME Builder

GNOME Builder è un ambiente di sviluppo integrato (IDE) multilinguaggio di programmazione per la piattaforma GNOME, progettato principalmente per aiutare la scrittura di applicazioni basate su GNOME. Lo slogan dell'applicazione è "A toolsmith for GNOME-based applications" (in italiano: "Un fabbro per applicazioni basate su GNOME").
È stato inizialmente rilasciato il 24 marzo 2015.

## Caratteristiche

GNOME Builder si è rivolto sin dal suo sviluppo agli sviluppatori delle applicazioni GNOME, e mira a integrarsi bene con altri strumenti di sviluppo desktop GNOME.
Di seguito alcune delle funzionalità:
* Supporto integrato per GNOME Devhelp;
* Il sistema di controllo della versione git può essere utilizzato per evidenziare aggiunte e modifiche al codice;
* Supporto per lo sviluppo di applicazioni flatpak;
* Supporta l'evidenziazione della sintassi per molti linguaggi di programmazione utilizzando GtkSourceView;
* Il completamento del codice è disponibile per i linguaggi C (C, C++, ecc...), Python e Rust, con linguaggi aggiuntivi in fase di sviluppo;
* Supporto per il debugging del codice con GDB
* Plugin che possono essere scritti in C, Python 3 o Vala;
* Supporto di base per molti linguaggi di programmazione e offrirà funzionalità aggiuntive per i linguaggi supportati da GObject Introspection.
Al GUADEC 2016 Christian Hergert ha fornito una demo, su YouTube. di una prossima versione di GNOME Builder. Il componente sysprof è stato biforcato e il suo numero di versione è passato da 1.2.0 a 3.20 ed è stato integrato nella versione 3.22.
GNOME Builder utilizza GNOME Code Assistance per fornire la diagnostica del codice per CSS, HTML, JS, JSON, Python, Ruby, SCSS, script di shell e XML. Jedi viene utilizzato per il completamento del codice per Python. Clang viene utilizzato per l'assistenza al codice per i linguaggi simili a C. La diagnostica di Rust viene fornita utilizzando il protocollo Language Server per comunicare con Rust Language Server.

## Interfaccia utente

La maggior parte dell'interfaccia è focalizzata sull'editor di codice sorgente. L'editor riconosce automaticamente la maggior parte dei linguaggi di programmazione ed evidenzierà il testo di conseguenza. Quando viene utilizzato un sistema di controllo della versione, le barre colorate accanto ai numeri di riga indicano le modifiche apportate a tali righe. Per le lingue supportate, simboli aggiuntivi evidenziano le righe che contengono errori o codice mal formattato.
Builder può alternare le associazioni di tastiera di Builder, simili a Vim o Emacs.
Intorno all'editor di codice, è possibile attivare o disattivare la visualizzazione di pannelli aggiuntivi. Questi includono un albero del progetto, una finestra di terminale e un browser di aiuto. L'albero del progetto consente all'utente di eseguire operazioni su file e cartelle.

## Sviluppo

Lo sviluppo di GNOME Builder è stato finanziato in crowdfunding nel gennaio 2015 sulla piattaforma Indiegogo. La campagna ha raggiunto il 187% ($ 56.245) del suo obiettivo di finanziamento di $ 30.000.

## Cronologia delle versioni

| Numero della versione | Data di rilascio | Appunti |
| 3.16.0 | 24 marzo 2015 | Rilascio "anteprima" iniziale |
| 3.16.1 | 13 aprile 2015 | Inclusi miglioramenti all'interfaccia utente, alla gestione dei file e all'evidenziazione della sintassi. |
| 3.16.2 | 16 aprile 2015 | Apportate principalmente correzioni di bug e alcuni miglioramenti alla gestione dei progetti. |
| 3.16.3 | 18 maggio 2015 | Inclusa una mappa panoramica del sodice sorgente con scorrimento e aggiornamenti alla sezione delle preferenze. |
| 3.18.0 | 23 settembre 2015 | È stato rilasciato con il resto di GNOME 3.18. |
| 3.18.1 | 15 ottobre 2015 | Apportati miglioramenti al completamento del codice Vala e all'indicazione degli errori. Anche il plug-in Jedi per il completamento del codice Python è stato migliorato. |
| 3.20 | 23 marzo 2016 | È stato rilasciato con GNOME 3.20. |
| 3.20.4 | 6 maggio 2016 | Inclusi miglioramenti della stabilità e delle prestazioni, inclusa la reimplementazione del supporto per l'apertura di file remoti. |
| 3.22.2 | 2 novembre 2016 | Introdotto il supporto preliminare per Rust e le sue associazioni GTK. |
| 3.22.4 | 22 dicembre 2016 | Inclusi vari miglioramenti del sistema di compilazione e un migliore supporto per la creazione di pacchetti Flatpak. |
| 3.32.0 | 3 marzo 2019 | Importante refactoring del codice dell'applicazione. Inclusa l'integrazione con GDB migliorata e un'integrazione iniziale di Glade. |