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);