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);