Partager via


Utilisation de fichiers et de documents dans les extensions Visual Studio

Voici une collection de petits exemples de code sur différentes façons d’utiliser des fichiers et des documents.

Obtenir l’affichage texte actif

Obtenez la vue de texte active actuelle pour manipuler son mémoire tampon.

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

Associations d’icônes de fichier

Pour associer une icône à une extension de fichier dans l’Explorateur de solutions, ajoutez l’attribut [ProvideFileIcon()] à votre classe de package.

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

Consultez les milliers d’icônes disponibles dans la collection KnownMonikers à l’aide de la fenêtre de l’outil Explorateur KnownMonikers. Recherchez-le sous Afficher > d’autres fenêtres dans le menu principal.

Ouvrir le fichier

Utilisez la classe d’assistance Microsoft.VisualStudio.Shell.VsShellUtilities .

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

Ouvrir un fichier via un projet

Utilisez cette méthode lorsque le fichier que vous ouvrez fait partie de la solution.

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

Ouvrir un fichier sous l’onglet Aperçu

L’onglet Aperçu, également appelé onglet Provisoire, est un onglet temporaire qui s’ouvre sur le côté droit du document. Ouvrez n’importe quel fichier sous l’onglet Aperçu comme suit :

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

Obtenir le nom de fichier à partir d’ITextBuffer

Utilisez la méthode d’extension buffer.GetFileName() située dans l'espace de noms Microsoft.VisualStudio.Text.

string fileName = buffer.GetFileName();

SolutionItem à partir d’un fichier

Trouvez le SolutionItem dans un chemin de fichier absolu.

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