Compartir a través de


Trabajar con archivos y documentos en extensiones de Visual Studio

Esta es una colección de pequeños ejemplos de código en diferentes formas de trabajar con archivos y documentos.

Obtener la vista de texto activa

Obtenga la vista de texto activa actual para manipular el contenido del búfer de texto.

DocumentView docView = await VS.Documents.GetActiveDocumentViewAsync();
if (docView?.TextView == null) return; //not a text window
SnapshotPoint position = docView.TextView.Caret.Position.BufferPosition;
docView.TextBuffer?.Insert(position, "some text"); // Inserts text at the caret

Asociaciones de iconos de archivo

Para asociar un icono a una extensión de archivo en el Explorador de soluciones, agregue el atributo [ProvideFileIcon()] a la clase de paquete.

[ProvideFileIcon(".abc", "KnownMonikers.Reference")]
public sealed class MyPackage : ToolkitPackage
{
    ...
}

Vea los miles de iconos disponibles en la KnownMonikers colección mediante la ventana de herramientas KnownMonikers Explorer. Busque en Ver > otras ventanas en el menú principal.

Abrir archivo

Use la Microsoft.VisualStudio.Shell.VsShellUtilities clase auxiliar.

string fileName = "c:\\file.txt";
await VS.Document.OpenAsync(fileName);

Abrir archivo a través del proyecto

Use este método cuando el archivo que abra forma parte de la solución.

string fileName = "c:\\file.txt";
await VS.Documents.OpenViaProjectAsync(fileName);

Abrir archivo en la pestaña Vista previa

La pestaña Vista previa, también conocida como pestaña Provisional, es una pestaña temporal que se abre en el lado derecho del documento. Abra cualquier archivo en la pestaña Vista previa de este modo:

string fileName = "c:\\file.txt";
await VS.Documents.OpenInPreviewTabAsync(fileName);

Obtener el nombre de archivo de ITextBuffer

Utilice el método de extensión buffer.GetFileName() ubicado en el espacio de nombres Microsoft.VisualStudio.Text.

string fileName = buffer.GetFileName();

Elemento de la solución del archivo

Encuentra el SolutionItem en una ruta de acceso de archivo absoluta.

string fileName = "c:\\file.txt";
PhysicalFile item = await PhysicalFile.FromFileAsync(fileName);