So erstellen Sie eine neue Sprache zur Verwendung in Visual Studio

102

Ich möchte eine neue Vorlagensprache schreiben und Visual Studio soll sie "unterstützen". Was ich wissen muss ist:

  1. Wie analysiere ich meine neue Sprache?
    Wie übersetze ich Code in meiner neuen Vorlagensprache in HTML? Im Moment verwende ich reguläre Ausdrücke, um es Token für Token zu analysieren, aber ich denke nicht, dass dies sehr gut skaliert werden kann, da die Sprache komplizierter wird und es keine Fehlerprüfung gibt. Ich habe von ANTLR gehört, es aber nie benutzt. Wäre das das richtige Werkzeug für diesen Job oder gibt es vielleicht etwas Einfacheres? Idealerweise möchte ich Syntaxfehler mit möglichst vielen Informationen (Zeilennummer, Fehlertyp) an das Fehlerfenster senden, wie dies in anderen Sprachen der Fall ist.
  2. Wie erstelle ich einen neuen Dateityp für Visual Studio?
  3. Wie erhalte ich eine Syntaxhervorhebung?
    Kann ich denselben Parser verwenden, den ich in Schritt 1 erstellt habe, oder ist das etwas ganz anderes?
  4. Wie bekomme ich Intellisense?

Ich würde meinen Parser lieber in C # schreiben.

mpen
quelle

Antworten:

62

Ich würde mir eine andere Sprache ansehen, die bereits die Integration in Visual Studio erledigt hat. Ein gutes Beispiel ist Boo. Die Sprache und die Visual Studio-Integration sind Open Source. So können Sie genau sehen, was sie zu tun hatten.

Das Boo Syntax Highlighting für VS2010 enthält einige empfohlene Links auf seiner Homepage, die ich zum einfachen Nachschlagen kopieren werde:

James Kovacs
quelle
29

In Bezug auf die Visual Studio-Aspekte benötigen Sie einen "Sprachdienst", bei dem es sich um die Entität handelt, die das Kolorieren, Intellisense usw. für eine bestimmte Dateierweiterung / einen bestimmten Dateityp übernimmt.

Ein Intro finden Sie in diesem Artikel
. Ein Codebeispiel finden Sie hier

In Bezug auf das Parsen gibt es viele Technologien, und ich werde keine Meinung / Ratschläge geben.

Beachten Sie, dass eine Menge Arbeit erforderlich ist, obwohl es meiner Meinung nach in VS2010 viel einfacher ist, diese Art von Erweiterung bereitzustellen, als in früheren Versionen von Visual Studio.

Siehe auch

Visual Studio 2010-Erweiterungs-, MPF- und Sprachdienste

Brian
quelle
2

Das VS SDK enthält ein Beispiel, das die meisten Funktionen zeigt, nach denen Sie suchen.

Leppie
quelle
2

Ich benutzte VS mit eigener Sprache und brauchte dringend ein Syntax-Highlight . Ich habe meine basierend auf diesem Tutorial erstellt: https://mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/

Ich weiß, dass das Tutorial in VS2010 ist. Ich habe meine in VS2012 ohne oder mit sehr kleinen Schluckaufen gemacht. (funktionierte auch in VS2013) Vor kurzem habe ich zu VS2015 gewechselt und die Lösung kann bearbeitet und problemlos erstellt werden.

DDan
quelle
2

Ich fand diese sehr nützliche Sammlung aktueller Beispiele für das Visual Studio 2013 SDK: http://blogs.msdn.com/b/vsx/archive/2014/05/30/vs-2013-sdk-samples-released.aspx

Es enthält auch die aktuelle Version der OokLanguage, die vielversprechend klingt.

Wir haben ANTLR 4 verwendet, um unsere Sprache zu analysieren, die wie ein Zauber wirkt und eine direkte Interaktion mit C # -Code ermöglicht. Kann es nur empfehlen.

Alexander Pacha
quelle
0

Wie in anderen Antworten erwähnt, ist das interessanteste Codebeispiel die Ook-Spracherweiterung für die neueste Version von Visual Studio (2017 zum Zeitpunkt des Schreibens).

Für VS 2015 siehe das Beispiel in der VS2015-Verzweigung .

Um das SDK für 2015 oder höher zu installieren, müssen Sie das VS-Setup erneut ausführen. Im Jahr 2015 heißt es "Visual Studio Extensibility Tools Update 3".

Andreas Haferburg
quelle