Compartilhar via


Trabalhando com arquivos e documentos em extensões do Visual Studio

Aqui está uma coleção de pequenos exemplos de código sobre diferentes maneiras de trabalhar com arquivos e documentos.

Obter vista de texto ativo

Obtenha o modo de exibição de texto ativo atual para manipular seu texto de buffer 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

Associações de ícones de arquivo

Para associar um ícone a uma extensão de arquivo no Gerenciador de Soluções, adicione o [ProvideFileIcon()] atributo à sua classe de pacote.

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

Veja os milhares de ícones disponíveis na KnownMonikers coleção usando a janela de ferramentas KnownMonikers Explorer. Encontre-o em Exibir > outras janelas no menu principal.

Abrir arquivo

Use a Microsoft.VisualStudio.Shell.VsShellUtilities classe auxiliar.

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

Abrir arquivo via projeto

Use esse método quando o arquivo aberto fizer parte da solução.

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

Abrir arquivo na guia Visualizar

A guia Visualização, também conhecida como guia Provisória, é uma guia temporária que se abre bem no lado direito do documento. Abra qualquer arquivo na guia Visualizar da seguinte maneira:

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

Obter nome de arquivo de ITextBuffer

Use o método buffer.GetFileName() de extensão localizado no Microsoft.VisualStudio.Text namespace.

string fileName = buffer.GetFileName();

SolutionItem do arquivo

Localize o SolutionItem a partir de um caminho de arquivo absoluto.

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