[Qt Creator] E possibile aggiungere un linguaggio?
-
Salve a tutti
Come da titolo vorrei sapere se e' possibile aggiungere un linguaggio definito dall'utente, nel senso che vorrei poter decidere anche le regole della sintassi in modo che l'IDE mi segnali eventuali errori.
Vi dico subito che vorrei configurare l'IDE per scriverci software destinati al compilatore "SDCC":http://sdcc.sourceforge.net/
Sapete se è possibile fare una cosa simile?
Se si, cosa dovrei fare?Grazie in anticipo per l'eventuale risposta =)
-
Mi sembra di capire che tu stia chiedendo se è possibile aggiungere un nuovo modulo linguistico a Qt Creator, cioè un "sottosistema" editor+compilatore che permetta di usare un linguaggio diverso da C++ all'interno dell'IDE (in sostituzione od in aggiunta del C++).
In questo caso, posso dirti che è possibile (anche se non l'ho mai fatto). Come puoi vedere dal link seguente, Qt Creator può essere esteso in vari modi ed è esplicitamente prevista la possibilità di sviluppare ed installare nuovi editor (con completamento automatico ed altre funzionalità):
"Extending Qt Creator Manual":http://doc.qt.nokia.com/qtcreator-extending/
Vedi in particolare le sezioni "Custom Text Editors" e "Other Custom Editors"
Per quello che riguarda il compilatore, Qt Creator permette di invocare strumenti esterni sia durante la fase di build che in altri momenti (sistemi di versioning, etc.) e quindi non dovresti avere problemi ad utilizzare il compilatore SDCC così com'è. Vedi la sezione "Running External Tools" del documento già citato.
In ogni caso, puoi sempre intervenire sul codice di Qt Creator in modo diretto (anche Qt Creator è un progetto open source, come le Qt).
Riguardo al come fare una cosa del genere, posso solo suggerirti di leggere la documentazione che ho citato, buttar giù una bozza di progetto ed un po' di codice e poi chiedere consigli nei forum mano a mano che ti sorgono dei dubbi e che incontri delle difficoltà. Per quanto ne so, non esiste un "how-to" od un manuale specifico su questo tema, al di là di quello già citato.
PS: Per far in modo che l'IDE segnali eventuali errori sintattici, è necessario che sia disponibile un parser del linguaggio. Non so se SDCC metta a disposizione un parser che tu possa riutilizzare (o se tu possa riutilizzare il parser C/C++ interno di Qt Creator). Scrivere un parser da zero ed integrarlo in un IDE può non essere una cosa semplice. Ti consiglio di chiedere informazioni a quelli di SDCC su questo punto.
Buona fortuna
-
Ciao a tutti, sfrutto questo post come presentazione.
Uso Qt da circa 4 anni, prima ho compinciato con pyqt e poi con Qt/C++.
Ho sviluppato avrdudequi (cerca su gittorius) dove ho usato per la prima volta il caricamento dinamico delle gui.Anche io sviluppo embedded con MCU atmel e mi necessità un IDE per GNU/Linux. Varie strade ho provato e l'ideale sarebbe proprio QtCreator.
Sono riuscito ad usare QtCreator e Qmake per compilare codice con avr-gcc, il makefile genera staticlib o ihex file a seconda del template.
Il fastprocessor di QtCreator è davvero rapido ma è pensato per il toolkit Qt, se si potesse snellire sarebbe anche più comprensibile così da risultare più agevolo metterci le mani.
Tempo a dietro ho provato con sdcc e qtcreator con risultati negativi, ora non ricordo con precisione il perche del mancato funzionamento però ricordo che si deve creare un extracompiler target perchè quello di default va bene solo per gcc e ci sono argomenti passati a questo che non sono riconosciuti da sdcc.
Di recente ho studiato il codice interne di QtCreator al fine di imparare dal questo codice con risultati poco redditizi, la difficoltà sta nella quantità di codice e indirezzioni usate per astrarre, allora sono partito con la versione 1.0 di qtcreator che è più snella e anche più comprensibile.
Ora sono fermo su un elemento del menu build install project, mi serviva per installare le librerie statiche in sviluppo. Mi spiego, se sviluppo una lib per avr ti servirà poi provarla e quindi installarla in un percorso prestabilito ad esempio la dir .avr in home utente. Nel caso di progetto o sub progetto con template app non deve eseguire il make install.
Da shell il make install funziona solo nel caso delle lib e la variabile INSTALL viene popolata in automatico se il template è lib.
alexbottoni in parte a già risposto, io aggiungo che per fare un lavoro ben fatto si deve creare un plugin a partire da QtProjectPlugin presente nel tree. In merito al parser c'è da dire che l'editor per cpp usa il fastprocessor e sintaxhighlighter e c'è anche macro epsansione ed è dura mettere le mani con cognizione di causa, però a me l'editor cpp funziona senza problemi anche con codice non qt, sono anche riuscito ad abilitare l'help online sulle funzioni della avrlibc, ma alle volte premendo F1 dice di non trovare alcuna documentazione mentre altre volte lavora.
Ok, scusate il lungo post.
Se non sono qui, potete beccarmi su Arduino forum, o su http://www.electroit.tk/index.php
Ciao.