Pregunta

He escrito una extensión LanguageService básica para Visual Studio 2008 para lenguaje de script propio de mi estudio. Funciona perfectamente bien, y he implementado una tabla de símbolos básicos para realizar un seguimiento de las definiciones de secuencias de comandos y llamadas que permiten la funcionalidad Goto definición.

El problema que he encontrado es que yo sólo sé cómo analizar la vista activa, y me gustaría para escanear el contenido de toda la solución para que el usuario pueda valla a la definición de un guión definido en un archivo que todavía tienen que abrir y han analizado. He descubierto cómo generar una lista de todos los archivos de la solución, pero ahora tengo que crear una nueva Microsoft.VisualStudio.Package. Fuente que requiere una Microsoft.VisualStudio.TextManager.Interop. IVsTextLines y no tengo idea de cómo crear una nueva sede fuera del archivo que tengo.

Tal vez voy por el problema por el camino equivocado y alguien me puede apuntar hacia una mejor manera de hacer que un archivo sea analizado por el LanguageService.

Saludos, Colin

¿Fue útil?

Solución

Empuje de I alrededor encontró que la razón de Visual Studio necesita una nueva fuente es que se trata de mantener una lista interna de ellos, y son como la vista en el archivo de texto en poder del editor.

Me llegó a la conclusión de que los archivos que son lo cerrada que IVsTextLines no necesita o que se introducirán en la lista interna de VS Los archivos de origen, porque no estoy haciendo ninguna operación directamente de ellos, toda la atención sobre lo que en este caso es construir una tabla de símbolos y sus correspondientes TextSpan. Así que en lugar creé una nueva API para mi programa de análisis que acaba de tomar en una cadena y construido mi AST en vez de agarrar el texto de un ParseRequest, y sólo se preocupaba por determinados tipos de símbolos que necesitaba para grabar. entonces me empujó esto en un BackgroundWorker.

Así que supongo que iba sobre el problema de la manera incorrecta. A pesar de que lo hace parecer extraño que no puedo acaba de desencadenar un archivo que se abrirá en la lista Fuente.

Es interesante que me hizo esta pregunta a Microsoft en sus foros de soporte y me aconsejó que tenía que comprar un poco de plan de servicio y apoyo para que puedan responder a mi pregunta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top