Compartir vía


Trabajar con archivos y documentos en las 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 texto 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 Explorador de soluciones, agregue el atributo a la clase de [ProvideFileIcon()] 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

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

string fileName = buffer.GetFileName();

SolutionItem del archivo

Busque desde SolutionItem una ruta de acceso de archivo absoluta.

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