Frage

Ich habe eine grundlegende Sprachenservice-Erweiterung für Visual Studio 2008 geschrieben für mein Studio-eigene Skriptsprache. Es funktioniert völlig in Ordnung, und ich habe eine grundlegende Symboltabelle, um zu verfolgen Skript Definitionen und Anrufe unter Berücksichtigung GOTO Definition Funktionalität implementiert.

Das Problem, das ich in laufen habe ist, dass ich nur wissen, wie die aktuelle aktive Ansicht zu analysieren, und ich möchte die gesamte Lösung des Inhalt scannen, so dass der Benutzer die Definition eines in einer Datei definiert Skript liest sie noch zu öffnen und analysiert hat. Ich habe herausgefunden, wie eine Liste aller Dateien in der Lösung zu erzeugen, aber jetzt brauche ich ein neues Microsoft.VisualStudio.Package erstellen. Quelle , die eine Microsoft.VisualStudio.TextManager.Interop erfordert. IVsTextLines , und ich habe keine Ahnung, wie ein neues erstellen der Datei basiert weg ich habe.

Vielleicht werde ich in die falsche Richtung und kann mich jemand deuten auf eine bessere Art und Weise eine Datei zu veranlassen, durch den Sprachenservice über das Problem analysiert werden.

Viele Grüße, Colin

War es hilfreich?

Lösung

stochern Ich fand, dass der Grund, Visual Studio muss eine neue Quelle ist, dass es eine interne Liste von ihnen zu halten, und sie sind wie der Blick in die Textdatei vom Herausgeber statt.

Ich kam zu dem Schluss, dass Dateien, die geschlossen sind nicht brauchen IVsTextLines oder in die VS interne Liste der Quelldateien eingegeben werden, weil ich bin nicht alle Vorgänge direkt auf sie zu tun, alles, was ich kümmern uns um in diesem Fall zu eine Tabelle der Symbole und ihre entsprechenden TextSpan bauen. Anstatt also habe ich eine neue API für mein Parser, dass nur in einem String nahm und baute meine AST statt den Text aus einem ParseRequest Grabben, und nur besorgt über bestimmte Arten von Symbolen, die ich aufnehmen musste. Ich habe dann diese in einen Background geschoben.

Also ich denke, ich über das Problem in der falschen Richtung ging. Auch wenn es seltsam scheint kann ich nicht nur eine Datei auslösen, um in die Quellenliste geöffnet werden.

Interessanterweise fragte ich diese Frage zu Microsoft auf ihren Support-Foren und sie riet mir, ich hatte einige Service- und Support-Plan zu kaufen für sie meine Frage zu beantworten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top