Question

J'ai écrit une extension de base pour Visual Service des langues Studio 2008 pour le langage de script propriétaire de mon studio. Il fonctionne parfaitement bien, et je l'ai mis en place une table de symboles de base pour garder la trace des définitions de script et d'appels permettant goto fonctionnalité de définition.

Le problème que j'ai rencontré est que je ne sais comment analyser la vue active actuelle, et je voudrais analyser le contenu de l'ensemble de la solution afin que l'utilisateur peut goto la définition d'un script défini dans un fichier qu'ils doivent encore ouvrir et ont analysé. J'ai compris comment générer une liste de tous les fichiers dans la solution, mais maintenant je dois créer un nouveau Microsoft.VisualStudio.Package. Source qui nécessite une Microsoft.VisualStudio.TextManager.Interop. IVsTextLines et je ne sais pas comment créer une nouvelle base hors du fichier que j'ai.

Peut-être que je vais sur le problème de la mauvaise façon et que quelqu'un peut me diriger vers une meilleure façon de faire un fichier à analyser par le Service des langues.

Cordialement, Colin

Était-ce utile?

La solution

farfouillé je trouve que la raison pour Visual Studio a besoin d'une nouvelle source est qu'il est maintenant une liste interne d'entre eux, et ils sont comme la vue dans le fichier texte détenu par l'éditeur.

Je suis venu à la conclusion que les fichiers qui sont fermés ne ont pas besoin IVsTextLines ou à saisir dans la liste interne VS des fichiers source parce que je ne fais aucune opération directement sur eux, tous les soins que je dans cette affaire est à construire une table de symboles et de leur TextSpan correspondant. Ainsi, au lieu que j'ai créé une nouvelle API pour mon analyseur qui vient de se dans une chaîne et construit mon AST au lieu de saisir le texte d'un ParseRequest, et seulement inquiet sur les types de symboles spécifiques dont je avais besoin pour enregistrer. Je poussai alors cela dans un BackgroundWorker.

Je suppose que je vais sur le problème de la mauvaise façon. Bien qu'il ne semble bizarre que je ne peux pas déclencher juste un fichier à ouvrir dans la liste Source.

Il est intéressant que je pose cette question à Microsoft sur leurs forums de support et ils me conseillé je devais acheter pour eux un plan de service et de soutien pour répondre à ma question.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top