Een nieuwe taal maken voor gebruik in Visual Studio

Ik wil een nieuwe sjabloontaal schrijven en ik wil dat Visual Studio deze “ondersteunt”. Wat ik moet weten is:

  1. Hoe kan ik mijn nieuwe taal ontleden?
    Gegeven wat code in mijn nieuwe sjabloontaal, hoe vertaal ik deze in HTML? Op dit moment gebruik ik reguliere expressies om het token voor token te ontleden, maar ik denk niet dat dit erg goed zal schalen omdat de taal ingewikkelder wordt en er geen foutcontrole is. Ik heb wel eens van ANTLR gehoord, maar nog nooit gebruikt. Zou dat het juiste gereedschap zijn voor deze klus, of is er misschien iets eenvoudiger? Idealiter zou ik syntaxisfouten naar het foutenvenster willen sturen met zoveel mogelijk informatie (regel #, type fout) zoals andere talen doen.
  2. Hoe maak ik een nieuw bestandstype voor Visual Studio?
  3. Hoe krijg ik syntaxisaccentuering?
    Kan ik dezelfde parser gebruiken die ik in stap 1 heb gemaakt, of is dit iets heel anders?
  4. Hoe krijg ik Intellisense?

Ik zou mijn parser liever in C# schrijven.


Antwoord 1, autoriteit 100%

Ik zou eens kijken naar een andere taal die de integratie met Visual Studio al heeft gedaan. Een goed voorbeeld is Bo. De taal- en Visual Studio-integratie zijn open source. Zo kun je precies zien wat ze moesten doen.

De Boo Syntax Highlighting voor VS2010 bevat enkele aanbevolen links op de homepage, die ik zal kopiëren voor gemakkelijke referentie:


Antwoord 2, autoriteit 48%

Wat betreft de aspecten van Visual Studio, wat u nodig hebt, is een “taalservice”, de entiteit die het kleuren, intellisense, enz. voor een bepaalde bestandsextensie/-type afhandelt.

Voor een inleiding, zie dit artikel
En voor een codevoorbeeld zie hier

Wat betreft het ontleden, er zijn veel technologieën en ik zal geen mening/advies geven.

Pas op, er komt behoorlijk wat werk bij kijken, hoewel het naar mijn mening veel eenvoudiger is in VS2010 dan in eerdere versies van Visual Studio om dit soort extensies te bieden.

Zie ook

Visual Studio 2010 Uitbreidbaarheid, MPF en taalservices


Antwoord 3, autoriteit 15%

Ik heb een VS Language Service geschreven met dit artikel als basis:
http://www.codeproject.com/KB/recipes/VSLanguageService.aspx

Het was niet erg als je een basiskennis van grammatica hebt.


Antwoord 4, autoriteit 3%

Er is een voorbeeld in de VS SDK met de meeste functies die u zoekt.


Antwoord 5, autoriteit 3%

Ik gebruikte VS met eigen taal en had dringend een syntax highlightnodig. Ik heb de mijne gebouwd op basis van deze tutorial: https://mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/

Ik weet dat de tutorial in VS2010 is. Ik heb de mijne gemaakt in VS2012 met geen of zeer kleine haperingen. (werkte ook in VS2013) Onlangs ben ik overgestapt op VS2015 en de oplossing kan zonder problemen worden bewerkt, gebouwd.


Antwoord 6, autoriteit 3%

Ik vond deze zeer nuttige verzameling recente voorbeelden voor Visual Studio 2013 SDK:
http://blogs .msdn.com/b/vsx/archive/2014/05/30/vs-2013-sdk-samples-released.aspx

Het bevat ook de recente versie van OokLanguage die veelbelovend klinkt.

We hebben ANTLR 4 gebruikt om onze taal te ontleden, wat als een zonnetje werkt en directe interactie met C#-code mogelijk maakt. Kan het absoluut aanbevelen.


Antwoord 7

Zoals vermeld in andere antwoorden, is het meest interessante codevoorbeeld de Ook taalextensievoor de nieuwste versie van Visual Studio (op het moment van schrijven van 2017).

Zie voor VS 2015 het voorbeeld in de VS2015-tak.

Als u de SDK voor 2015 of later wilt installeren, moet u de VS-installatie opnieuw uitvoeren. In 2015 heet het “Visual Studio Extensibility Tools Update 3”.

Other episodes