2011-07-06 12 views
7

Estoy creando una extensión de Visual Studio 2010 con el VS 2010 SDK SP1 que abrirá los archivos de código fuente en el editor de código. La extensión es una ventana de herramienta que está acoplada donde se encuentra el Explorador de soluciones.Abrir el documento de código fuente sin archivo en el editor de código de la extensión VS 2010

La extensión consume un servicio WCF donde recupera los archivos de código fuente y muestra la jerarquía en un TreeView. Cuando se hace doble clic en el archivo de código, debe cargar el código fuente asociado en la ventana del editor de código de forma muy similar a como lo hace el Explorador de soluciones.

He estado leyendo acerca de la extensión VS y la automatización de DTE desde hace un tiempo y he progresado muy poco. Parece que puedo acceder a WpfTextViews ya abierto o activo sin problemas, pero no entiendo cómo abrir un nuevo TextView en el área del documento del IDE. Tenga en cuenta que estos no son archivos de código fuente reales guardados en el disco, sino que se recuperan del servicio WCF y se almacenan en la memoria.

¿Alguien podría dar un ejemplo o darme alguna orientación sobre cómo implementar esto, por favor? Gracias.

Respuesta

1

¿Qué tal crear un archivo temporal, rellenarlo con el código fuente y cargar ese archivo temporal? (O la creación de nuevos archivos temporales, de añadir a la IDE y después inserte su código fuente allí ...)

Tal vez eso no es exactamente lo que quería, pero que va a hacer el truco ...

(Si crea un nuevo archivo en VS (Archivo -> Nuevo ...), VS también creará un archivo temporal y solicitará la ubicación "correcta" cuando desee guardar el archivo por primera vez.)

+0

Pensé en hacer eso pero no pude averiguar qué código usar para que realmente funcione. Parte del problema es que a VS no le gusta abrir archivos que no forman parte de una jerarquía de soluciones, por lo que quiere que especifique el proyecto o la solución a la que pertenece el archivo. Si el archivo no se abre como parte de un proyecto, no obtendrá ningún beneficio de intellisense o cualquier otra característica útil del editor de código. Me pregunto si hay una forma de referenciar bibliotecas o DLL que intellisense pueda usar para construir su base de datos. Si tiene un código de ejemplo para abrir una ventana de código, por favor compártalo. – Paccc

1

¿Por qué no crear un caché de todo el árbol de fuentes en la unidad local y luego simplemente cargar la solución desde el archivo en lugar de desde la memoria?

Cuestiones relacionadas