2011-10-22 11 views
42

Il compilatore C++ clang richiede di essere costruito per, tra le altre cose, una migliore integrazione di IDE fornendo un'API per l'IDE da utilizzare per attività come l'analisi del codice.C++ IDE multipiattaforma basato su clang?

Quindi, ci sono dei buoni IDE C++ che usano clang per fornire funzionalità come l'evidenziazione semantica, il refactoring e la ricerca e la visualizzazione degli errori semantici in tempo reale?

Ho usato Eclipse CDT, ma il suo parser C++ è pieno di imperfezioni che fanno sì che l'IDE presenti molti fastidiosi errori falsi positivi nel codice. Mi piacerebbe avere un IDE che segnala un errore se e solo se il compilatore segnalasse lo stesso errore, quindi il mio interesse per un IDE che è costruito all'interno di un compilatore.

Sono principalmente interessato a cross-platform IDE, anche se non mi dispiacerebbe sapere su quelli single-platform per Windows o Linux (in modo da non Xcode), purché siano FOSS (altro motivo per cui non Xcode).

risposta

4

hai provato clang complete?

se sei punk rock, quindi vim è sufficiente ide;)

Lavoro spesso con Xcode così ... non può davvero condividere in prima persona l'esperienza, ma sapevo della sua esistenza.

+0

@lurscher siete i benvenuti - sto anche andando a provare a dare un colpo questo fine settimana. – justin

15

Qt Creator sta basando il loro codice di nuova generazione di analisi e funzionalità associate a Clang:

http://blog.qt.digia.com/blog/2011/10/19/qt-creator-and-clang/

sembra molto, molto promettente!

+0

Bella cattura! Appena annunciato anche qualche giorno fa. – HighCommander4

+1

HighCommander4: aiuta se sei sulla mailing list di Clang ;-) – rubenvb

+0

Speravo che ci sarebbe stato di più ... ma immagino che clang sia un progetto abbastanza giovane, e altri arriveranno in tempo. Per ora, risposta accettata :) – HighCommander4

3

Sembra che CodeLite v3.5 starts supporti Clang in modo nativo. Tuttavia non ho trovato è possibile impostare LLVM come back-end.

+0

E sembra (10 minuti di test) funzionare ... – g2mk

+0

incredibile !! per favore non astenersi dall'aggiornare questa risposta in caso di problemi – lurscher

1

Non FOSS, ma JetBrains (di IDEA e ReSharper fama) stanno costruendo il loro prodotto in un AppCode full C++ IDE supporting Win/Linux/Mac and using clang.

Yes, really.

+0

Avete prove che questo sia basato su clang, oltre ad essere integrato con l'analizzatore statico clang? – HighCommander4

+0

Non so se usa clang o defers per la toolchain della piattaforma per la build effettiva, ma non è quello che riguardava la tua domanda originale. Sono sicuro che userà clang per tutto il resto, però - questo è ciò per cui è progettato Clang, e non è che ci siano alternative valide. – mrec

+0

Mi riferivo a funzionalità come il completamento del codice, la navigazione del codice, l'evidenziazione della sintassi e il refactoring alimentato da clang. Questo non è il caso di nessuno degli altri IDE C++ che conosco - Eclipse, Code :: Blocks, CodeLite, NetBeans, KDevelop, Qt Creator - eccetto XCode e il creatore di Qt di prossima generazione di cui @rubenvb parlava, quindi questo è perchè ho chiesto – HighCommander4

3

KDevelop ha ora il supporto per cl C++ c, inclusa l'analisi semantica e il completamento automatico. È principalmente per Linux ma (a partire da ottobre 2016) ha una versione beta anche per Windows e Mac.

Per emacs ci sono irony-mode e rtags che forniscono funzionalità come il completamento automatico, il controllo degli errori di volo e il salto al simbolo. Se combinati con cmake-ide sono strumenti molto potenti e un esperto di emacs può essere altamente produttivo in questo ambiente.

3

Un nuovo sviluppo rilevante in questo settore nel progetto Language Server Protocol (LSP), che si propone di essere un'API indipendente dal linguaggio che consente di separare gli editor/IDE dai backend che forniscono codice di analisi/analisi.

È in corso un lavoro per creare un backend C++ basato su clang chiamato Clangd.

Sono inoltre in corso lavori su several editors/IDEs per supportare l'LSP come client.

Una volta che l'implementazione del back-end è matura, tutti gli editor che supportano l'LSP, in linea di principio, saranno in grado di sfruttare le funzionalità di clang esposte attraverso Clangd.