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 l’affichage de texte actif actuel pour manipuler son texte de mémoire tampon de texte.
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 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 KnownMonikers
collection à l’aide de la fenêtre d’outil De l’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 buffer.GetFileName()
d’extension située dans l’espace Microsoft.VisualStudio.Text
de noms.
string fileName = buffer.GetFileName();
SolutionItem à partir d’un fichier
Recherchez le SolutionItem
chemin d’accès d’un fichier absolu.
string fileName = "c:\\file.txt";
PhysicalFile item = await PhysicalFile.FromFileAsync(fileName);