2009-04-24 3 views

risposta

12

Ho iniziato a this one. Era passato un anno quando l'ho usato, ma i concetti sono rimasti gli stessi.

La cosa migliore che posso suggerire al posto di un how-to sarebbe trovare un linguaggio già integrato e vedere come lo fanno. Ecco il vero consiglio: non sceglierne uno con il nome di un pacchetto che inizia con org.eclipse (come quello della formica). Il supporto fornito da Eclipse è molto più semplice, è molto più facile vedere quale codice è necessario scrivere se inizia con un altro prefisso del pacchetto. Prova ad esaminare i plugin groovy o scala, ad esempio.

Nella mia esperienza, è l'errore che evidenzia il più difficile da eseguire con precisione; il più difficile è l'assistenza ai contenuti.

Se si ha il controllo del compilatore o del runtime del linguaggio che si sta scrivendo un editor, rende la vita molto più semplice se si riesce a ottenere dal compilatore tutti i dati necessari all'IDE per presentarlo per l'utente (ad es. elenco di token - per la colorazione della sintassi, suggerimenti, l'assistenza per i contenuti sarà molto meglio, perché non stai simulando un compilatore, ma usando quello reale, lo stesso con l'evidenziazione degli errori).

L'IDE ha il compito relativamente facile di errori solo la visualizzazione, e la colorazione, ecc

Una volta che avete verso il basso per visualizzare solo, l'editor XML di esempio sembra abbastanza utile.

Gran parte delle regole di partizionamento che ho trovato meno utili; Ho sempre finito per costruire il mio - la ricerca binaria su un elenco di token è estremamente utile.

6

Probabilmente stai cercando qualcosa come questo articolo sulla costruzione Eclipse editors with JFace text. Ha abbastanza per iniziare e passa attraverso l'evidenziazione della sintassi, l'assistenza ai contenuti, la struttura del contenuto e gli indicatori di errore.

11

Il migliore che ho visto per un editor standard Eclipse basato sul testo è

http://www.ibm.com/developerworks/edu/os-dw-os-ecl-commplgin1.html

(è necessario registrarsi per un account gratuito di IBM). Prashant Deva, autore di un plugin ANTLR2 davvero carino, ha fatto questo.

Si potrebbe anche voler guardare in strumenti che generano un editore:

Eclipse Modeling progetto (EMF/TMF/GMF)

http://www.eclipse.org/modeling/

TMF aiuta a costruire gli editor testuali; GMF aiuta a costruire editor grafici. un buon libro è disponibile (anche sui libri safari)

Esercitazione a: http://wiki.eclipse.org/index.php/GMF_Tutorial

Una buona introduzione sul GMF: http://www.ibm.com/developerworks/opensource/library/os-ecl-gmf/

dinamici Lingue Tool Kit

http://www.eclipse.org/dltk/

Esercitazioni disponibili da quel sito. Si noti che è possibile utilizzare DLTK anche per la modifica del linguaggio statico; la parte "dinamica" deriva dalla configurazione e dal lancio dell'interprete.

xtext (ora parte di TMF)

http://wiki.eclipse.org/Xtext

Nota: buon contenuto assist può essere molto difficile; comporta davvero un'analisi di follow-set per ogni terminale della tua grammatica. Puoi semplificarlo un po 'semplicemente tenendo traccia dei simboli e delle parole chiave definiti e suggerendo semplicemente tutto ciò che corrisponde al prefisso esistente. I generatori di cui sopra rendono questo un po 'più facile, ma non sono perfetti.

Buona fortuna!

1

Tutte queste risposte sono buone e ho esaminato e utilizzato le esercitazioni collegate sopra me stesso.

aggiungerei this one, dall'università Carlo di Praga. È stato aggiornato di recente, mentre quelli sopra menzionati sono di 5-10 anni fa.

In realtà non sono sicuro che le cose siano cambiate così tanto, ma dato che mi è stato utile, lo aggiungo qui.