Funzionalità
Linguaggi supportati
I seguenti linguaggi sono completamente supportati, il che significa che hanno evidenziazione semantica della sintassi, navigazione e completamento del codice:
- C/C++ e ObjC (tramite le librerie Clang/LLVM)
- Incluse alcune funzionalità extra per il Framework Qt
- Incluso supporto per i linguaggi CUDA e OpenCL
- Qt QML e JavaScript
- Python (estensione opzionale)
- PHP (estensione opzionale)
Per tutti i linguaggi non supportati, sono comunque disponibili le funzionalità di base di evidenziazione della sintassi e di completamento del codice basato sul testo.
Sistemi di controllo della versione supportati
I seguenti sistemi di controllo della versione hanno un integrazione grafica:
- Git
- Bazaar
- Subversion
- CVS
- Mercurial (hg) (estensione opzionale)
- Perforce (dalla 5.1)
Una funzione specialmente utile è il bordo Annota, che mostra chi ha modificato per ultimo una riga e quando. Per visualizzare la differenza che ha introdotto la modifica è sufficiente un clic!
Sistemi di compilazione
I seguenti sistemi di compilazione sono supportati, il che significa che KDevelop può ottenere automaticamente gli obiettivi di esecuzione e di compilazione e i percorsi di inclusione da essi:
- CMake
- QMake
- Makefile personalizzati (parzialmente)
- Sistema di compilazione generico (nessun rilevamento automatico del percorso di inclusione)
KDevelop sa come invocare strumenti di automazione della compilazione come make e ninja e ha pagine di configurazione dedicate per loro.
Funzionalità di supporto per i linguaggi
Per tutti i linguaggi supportati, KDevelop supporta le seguenti funzionalità:
Navigazione rapida nel codice
L'oggetto di navigazione appare quando si sposta il mouse sugli elementi o quando si preme Alt con il cursore del testo su di essi. Esso consente la navigazione, cioè si può ad esempio navigare verso la classe genitore della classe che si sta visualizzando per vedere l'oggetto di navigazione di quella classe genitore.
- Trova gli usi dei simboli (variabili, tipi, etc.)
- Vai alla dichiarazione / definizione
- Apertura Rapida, permette di cercare qualsiasi funzione, classe o file nell'intero progetto.
- Navigatore di progetti, classi e funzioni
La modalita di navigazione del codice (premere Ctrl mentre si clicca su un simbolo) rende facile navigare una base di codice sconosciuta.
Notevole capacità di comprensione del codice
KDevelop è sempre stato orgoglioso del suo supporto all'avanguardia per i linguaggi C/C++. Con l'adozione di Clang nella versione 5.0, abbiamo una funzionalità di analisi del codice corretta al 100%, il che significa che l'IDE è in grado di controllare accuratamente i difetti di codifica anche senza dover invocare il compilatore! Non solo C/C++, tutti i linguaggi supportati condividono le seguenti caratteristiche.
- Evidenziazione semantica: Evidenziazione che tiene conto della semantica del linguaggio, e ad esempio evidenzia i nomi delle classi in modo diverso rispetto ai nomi delle variabili, anche se questo non può essere riconosciuto dalla sola sintassi del codice.
- Evidenziazione arcobaleno: evidenzia ogni occorrenza della stessa variabile in un colore specifico, cambiando in base alla variabile. Provalo, lo adorerai una volta che ti ci abituerai. Opzionale.
- Completamento del codice semantico sensibile al contesto: KDevelop ha sofisticate euristiche progettate per presentarti i suggerimenti più probabili nella posizione corrente del cursore. Per Python, PHP e JS, questi completamenti sono generati dalla rappresentazione del codice memorizzato nella cache di KDevelop e sono quindi disponibili istantaneamente, senza ritardi evidenti.
Cache persistente nel disco per il database del codice. In base alla dimensione e complessità del tuo progetto, l'analisi potrebbe occupare un pò di tempo all'inizio; tuttavia, dopo la prima volta, tutto è memorizzato nella cache su disco e caricato in pochi secondi ad ogni avvio successivo dell'IDE.
Personalizzabile
![KDevelop con un tema scuro](/images/kdevelop-darktheme-small.png
È facile addattarlo al tuo stile!
- Sei libero di riordinare, abilitare o disabiliatare qualsiasi pulsante nella barra dei menù
- Divisione arbitraria delle viste
- Disposizione arbitraria delle viste degli strumenti all'interno della finestra principale
- Configura lo schema di colori, separatamente per l'applicazione e per l'editor.
- Possibilità di assegnare scorciatoie per quasi tutte le azioni nell'IDE
Documentazione integrata
KDevelop offre una perfetta integrazione con diversi provider di documentazione. I sistemi supportati sono:
- File di documentazione QtHelp (QCH)
- Pagine Man (quelle che si possono visualizzare con
man
a riga di comando) - Pagine di aiuto di CMake
Puoi aprire una pagina di documentazione passando il mouse su un simbolo e selezionando "Mostra documentazione per..."
Inoltre
- Avvio veloce e normalmente utilizzo limitato della memoria.
- In generale è stato progettato per comportarsi come un semplice editor di testo in molti casi, ad esempio è possibile eseguire kdevelop file.cpp dal terminale e il file verrà aperto nella sessione corrente.
- Frammenti di codice potenti e completamente gestibili via script con campi modello (premere Tab per scorrere tra i campi definiti dall'utente, può avere campi con contenuti gestibili via script, ecc.). Questi possono anche essere configurati per essere visualizzati nell'elenco di completamento del codice
- Potente funzione di ricerca e sostituzione, anche su interi progetti, opzionalmente con espressioni regolari
- Test unitari integrati
- Vista dei problemi filtrabile, che mostra tutti i problemi (errori di sintassi e semantici, TODO, ecc.)
- Supporto per debugger grafico (C/C++ e Python, PHP tramite un'estensione)
- Supporto per i formattatori di codice (diversi predefiniti per C/C++ e Python, oltre a script di formattazione personalizzati)
- Modelli di file e di progetti (modelli extra possono essere scaricati e installati)
- È possibile visualizzare quasi qualsiasi tipo di file come un documento nell'IDE tramite KParts (es. un PDF)
- Terminale integrato
- Supporto per script esterni
- Modalità Vim