Come creare una nuova lingua da utilizzare in Visual Studio


102

Desidero scrivere un nuovo linguaggio per i modelli e desidero che Visual Studio lo "supporti". Quello che ho bisogno di sapere è:

  1. Come posso analizzare la mia nuova lingua?
    Dato del codice nel mio nuovo linguaggio per modelli, come lo traduco in HTML? In questo momento sto usando espressioni regolari per analizzarlo token per token, ma non credo che scalerà molto bene poiché il linguaggio diventa più complicato e non c'è controllo degli errori. Ho sentito parlare di ANTLR ma non l'ho mai usato. Sarebbe lo strumento giusto per questo lavoro o forse c'è qualcosa di più semplice? Idealmente vorrei inviare eventuali errori di sintassi alla finestra di errore con quante più informazioni possibili (riga #, tipo di errore) come fanno gli altri linguaggi.
  2. Come si crea un nuovo tipo di file per Visual Studio?
  3. Come ottengo l'evidenziazione della sintassi?
    Posso usare lo stesso parser che ho creato nel passaggio 1 o è qualcosa di completamente diverso?
  4. Come ottengo Intellisense?

Preferisco scrivere il mio parser in C #.

Risposte:


62

Vorrei dare un'occhiata a un altro linguaggio che ha già svolto il lavoro di integrazione con Visual Studio. Un ottimo esempio è Boo. Il linguaggio e l'integrazione di Visual Studio sono open source. Quindi puoi dare un'occhiata esattamente a quello che dovevano fare.

L'evidenziazione della sintassi Boo per VS2010 include alcuni collegamenti consigliati sulla sua homepage, che copierò per una facile consultazione:


29

Per quanto riguarda gli aspetti di Visual Studio, ciò di cui hai bisogno è un "servizio linguistico", che è l'entità che gestisce la colorazione, l'intellisense, ecc. Per una data estensione / tipo di file.

Per un'introduzione, vedere questo articolo
e per un esempio di codice vedere qui

Per quanto riguarda l'analisi, ci sono molte tecnologie e non offrirò un'opinione / consiglio.

Attenzione, c'è una discreta quantità di lavoro, anche se a mio parere è molto più semplice in VS2010 rispetto alle versioni precedenti di Visual Studio fornire questo tipo di estensione.

Guarda anche

Visual Studio 2010 Extensibility, MPF e servizi linguistici



2

C'è un esempio in VS SDK che mostra la maggior parte delle funzionalità che stai cercando.


2

Stavo usando VS con il proprio linguaggio e avevo un disperato bisogno di evidenziare la sintassi . Ho costruito il mio sulla base di questo tutorial: https://mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/

So che il tutorial è in VS2010. Ho fatto il mio in VS2012 senza intoppi o molto piccoli. (ha funzionato anche in VS2013) Recentemente sono passato a VS2015 e la soluzione può essere modificata, costruita senza problemi.



0

Come accennato in altre risposte, l'esempio di codice più interessante è l' estensione del linguaggio Ook per l'ultima versione di Visual Studio (2017 al momento della scrittura).

Per VS 2015, vedere l' esempio nel ramo VS2015 .

Per installare l'SDK per il 2015 o versioni successive, è necessario rieseguire l'installazione di VS. Nel 2015 si chiama "Visual Studio Extensibility Tools Update 3".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.