Condividi tramite


Uso di file e documenti nelle estensioni di Visual Studio

Ecco una raccolta di piccoli esempi di codice in diversi modi per usare file e documenti.

Ottenere la visualizzazione testo attiva

Ottiene la visualizzazione testo attiva corrente per modificare il testo del buffer di testo.

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

Associazioni di icone di file

Per associare un'icona a un'estensione di file in Esplora soluzioni, aggiungere l'attributo [ProvideFileIcon()] alla classe del pacchetto.

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

Vedere le migliaia di icone disponibili nella KnownMonikers raccolta usando la finestra degli strumenti KnownMonikers Explorer. Trovarlo in Visualizza > altre finestre nel menu principale.

Aprire il file

Usare la Microsoft.VisualStudio.Shell.VsShellUtilities classe helper.

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

Aprire il file tramite il progetto

Utilizzare questo metodo quando il file aperto fa parte della soluzione.

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

Aprire il file nella scheda Anteprima

La scheda Anteprima, nota anche come scheda Provvisoria, è una scheda temporanea che si apre sul lato destro dell'area del documento. Aprire qualsiasi file nella scheda Anteprima come segue:

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

Ottenere il nome file da ITextBuffer

Usare il metodo buffer.GetFileName() di estensione che si trova nello spazio dei Microsoft.VisualStudio.Text nomi .

string fileName = buffer.GetFileName();

SolutionItem dal file

Trovare da SolutionItem un percorso di file assoluto.

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