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 exibição de texto ativo

Obtenha a visualização de texto ativa atual para manipular o 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 ícone de arquivo

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

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

Consulte os milhares de ícones disponíveis na KnownMonikers coleção usando a janela de ferramentas do KnownMonikers Explorer. Localize-o em Exibir > Outras Janelas no menu principal.

Abrir arquivo

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

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

Abrir arquivo por meio do projeto

Use esse método quando o arquivo que você abre faz parte da solução.

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

Abrir arquivo na guia Visualização

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

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

Obter o nome do arquivo do ITextBuffer

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

string fileName = buffer.GetFileName();

Item da Solução do arquivo

Localize o SolutionItem de um caminho de arquivo absoluto.

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