Visual Studio-Sprachdienst mit C # intellisense

9

Letztes Jahr schrieb ich einen Sprachdienst für Visual Studio, der Syntax-Highlighting für NHaml-Dateien hinzufügte: Ссылка .

Um zu verdeutlichen, ist NHaml eine HTML-Vorlagensprache, die Codeelemente wie eine aspx-Datei mischen kann. Dieses Plugin fügt der IDE Unterstützung für die Bearbeitung von NHaml-Dateien hinzu, fügt aber im Grunde nur Syntax-Highlighting hinzu.

Ich habe mich gefragt, ob jemand weiß, wie man inline c # intellisense zum Service hinzufügt, wie man es jetzt in einer aspx-Datei bekommt. Ich hoffe, dass das möglich wäre, ohne die ganze c # Grammatik zu machen, die für das Plugin spezifisch ist.

Hat jemand einen Sprachdienst geschrieben, der Sprachen mischt?

UPDATE: Es sieht so aus, als hätten die Spark-View-Engine-Typen hier einige Fortschritte gemacht. Ich untersuche ihre Implementierung.

    
whatupdave 11.04.2009, 03:55
quelle

4 Antworten

2

Ich habe die Spark-View-Engine überprüft, und sie scheinen einen generischen ATL-Code (SparkLanguagePackageLib) erstellt zu haben, der in der Tat anscheinend nichts Spark-spezifisches enthält. Es scheint nur eine generische C # -Intellisense-Bibliothek zu sein, die Folgendes benötigt:

  • Der ursprüngliche Code
  • Die C # -Quelle, die aus dem ursprünglichen Code generiert wird
  • Die Positionszuordnungen zwischen den beiden (z. B. wird der Code in Zeile 2 Pos. 5 in der Ausgabe in Zeile 4 Pos. 10 usw. abgebildet.)
  • Einige andere Dinge, wie Gemälde (?)

Und danach können Sie anrufen:

%Vor%

Ich habe versucht, Spark-spezifische Sachen in dieser C ++ - Bibliothek zu finden, aber ich konnte nichts finden: alles, was mit Funken zu tun hat, wird in eine separate C # -Codedatei aufgeteilt. Ich denke, das ist gut, weil:

  • Sie müssen die C ++ - Dateien nicht bearbeiten
  • Wenn die Intellisense-Unterstützung der Spark-View-Engine installiert ist, kann sie auch von anderen View-Engines verwendet werden
  • Sie müssen nur eine Klasse erstellen, die zwischen der ursprünglichen nhaml-Datei und ihrem generierten C # -entsprechenden Code liegt.

Übrigens. Arbeiten Sie noch an dieser NHaml Intellisense-Bibliothek? Wenn nicht, werde ich versuchen, ihre Implementierung zu patchen, in der Hoffnung, dass sie leicht in NHaml konvertiert werden kann.

    
SztupY 20.06.2009, 22:45
quelle
1

Das sieht so aus, als könnte es helfen

Ссылка

    
Simon 17.04.2009 02:28
quelle
1

Ich habe es endlich geschafft, den Code zu modifizieren, um NHaml zu unterstützen. Es war überhaupt nicht so schwer. Leider unterstützt die ursprüngliche NHaml-Bibliothek nicht alles, was benötigt wurde. Daher musste ich einen neuen Parser für NHaml erstellen. Es unterstützt nicht alle Konstrukte, aber es unterstützt die meisten von ihnen (genug, um NHaml Programmierung zu erleichtern)

Download: Ссылка

Screencast: Ссылка

    
SztupY 08.02.2010 02:39
quelle
0

Sie können Keywords hinzufügen , indem Sie einen Benutzertyp erstellen oder ändern. Datendatei. Sehen Sie sich hier für einige Anweisungen zum Anhängen an bestimmte Dateierweiterungen an. Das könnte Ihnen zumindest einen Teil des Weges bringen, ohne die komplette c # -Syntax zu wiederholen.

(In der Tat bin ich nicht sicher, was Sie in diesem Zusammenhang genau mit "Syntax-Highlighting" meinen. Ich bin mir sicher, dass Sie zum Beispiel im Editor die Klammer-Hervorhebung kostenlos erhalten).

    
Ofek Shilon 12.04.2009 20:50
quelle