Condividi tramite


Informazioni su VisualStudio.Extensibility (anteprima)

VisualStudio.Extensibility è un nuovo framework per lo sviluppo di estensioni di Visual Studio incentrate principalmente sulle estensioni che eseguono out-of-process dall'IDE per migliorare le prestazioni e l'affidabilità. Offre un'API moderna asincrona semplificata e accuratamente progettata per ottimizzare la produttività degli sviluppatori. VisualStudio.Extensibility è in fase di sviluppo attivo ed è disponibile come anteprima.

Con l'anteprima corrente è possibile sviluppare un'ampia gamma di estensioni per Visual Studio, tra cui, a titolo esemplificativo:

  • Creazione di comandi
  • Uso del codice o del testo nell'editor
  • Visualizzazione di prompt o dialoghi all'utente
  • Creazione di visualizzatori del debugger

VisualStudio.Extensibility mira a risolvere molti dei problemi riscontrati dagli sviluppatori durante l'uso e la scrittura di estensioni in Visual Studio. La scrittura di estensioni con VisualStudio.Extensibility offre i vantaggi seguenti:

  • maggiore affidabilità: Visual Studio rimane reattivo e non si arresta in modo anomalo se un'estensione si arresta in modo anomalo o si blocca.
  • complessità dell'API ridotta: VisualStudio.Extensibility offre un'architettura semplificata, API coerenti e una documentazione chiara.
  • funzionalità di caricamento a caldo: Non è necessario riavviare Visual Studio quando si installano le estensioni.

Infine, sarà possibile usare VisualStudio.Extensibility SDK per scrivere qualsiasi estensione che è possibile scrivere usando Visual Studio SDK. Tuttavia, fino a quel momento, potrebbero verificarsi situazioni in cui la funzionalità necessaria nell'estensione non è ancora disponibile in VisualStudio.Extensibility. In tal caso, è possibile usare VisualStudio.Extensibility SDK insieme a Visual Studio SDK in esecuzione in-process per coprire eventuali gap di funzionalità. Per altre informazioni, vedere estensioni in-proc.

Le informazioni più recenti su VisualStudio.Extensibility sono disponibili nel repository GitHub VSExtensibility all'indirizzo annunci.

Articolo Descrizione
Installare VisualStudio.Extensibility Scaricare e installare l'anteprima più recente di VisualStudio.Extensibility.
Introduzione Iniziare con le guide introduttive per principianti e le esercitazioni introduttive se non è stata sviluppata un'estensione in precedenza.
concetti Creare il modello mentale di funzionamento dell'SDK e delle estensioni.
Panoramiche Per saperne di più, leggere le sintesi di ciascuna principale area di funzionalità.
esempi di Esplorare il codice di esempio che illustra le funzionalità principali.
informazioni di riferimento sulle API Esplorare la documentazione dell'API VisualStudio.Extensibility.
API sperimentali e cambiamenti significativi Informazioni sull'approccio alle API stable-vs-experimental e sulle modifiche di rilievo rispetto alla versione precedente.
problemi noti Visualizzare i problemi noti con VisualStudio.Extensibility SDK.
argomenti avanzati Informazioni dettagliate sull'implementazione di VisualStudio.Extensibility SDK.

Installare VisualStudio.Extensibility

L'anteprima corrente di VisualStudio.Extensibility funziona con Visual Studio 2022 versione 17.9 Preview 1 o successiva con il carico di lavoro Visual Studio extension development da installare.

Inizia

Gli articoli seguenti consentono di orientarsi e iniziare"

Per comprendere come usare VisualStudio.Extensibility, è consigliabile comprendere in modo approfondito programmazione asincrona con async e await e l'inserimento delle dipendenze. Inoltre, l'interfaccia utente in VisualStudio.Extensibility si basa su Windows Presentation Foundation (WPF), quindi è consigliabile esaminare la documentazione di WPF .

Concetti

Se si ha familiarità con Visual Studio SDK, vedere Introduzione a VisualStudio.Extensibility per gli utenti di VSSDK.

Per creare il modello mentale del funzionamento delle estensioni di Visual Studio, vedere parti di una nuova estensione di Visual Studio per informazioni sull'architettura di un'estensione. Ulteriori informazioni sull'injectione delle dipendenze , utilizzata per condividere componenti tra i componenti di un'estensione.

Per informazioni su cosa è incluso nell'SDK, vedere aree funzionali dell'SDK.

Quando e dove dovrebbe essere visualizzata l'estensione nell'IDE? Le estensioni di Visual Studio vengono visualizzate nell'IDE quando vengono soddisfatte determinate condizioni. Per controllare come e quando l'estensione viene visualizzata nell'IDE, vedere vincoli di attivazione basati su regole.

Le estensioni di Visual Studio rendono disponibili le funzionalità per Visual Studio tramite contributi. Per altre informazioni, vedere Contributi

Scopri il modello dell'interfaccia utente remota usato in VisualStudio.Extensibility.

Panoramiche

Leggere una panoramica delle aree dell'SDK che potrebbero essere necessarie per i progetti di sviluppo di estensioni.

  • Creare comandi ed esporli agli utenti nell'IDE, vedere Comandi.
  • Lavora con i contenuti di file e documenti, vedi le estensioni dell'editor .
  • Lavora con la rappresentazione in memoria di quei documenti stessi, vedere Documenti.
  • Usare la finestra di output in un'estensione, vedere finestra di output.
  • Usare le finestre degli strumenti, le finestre ancorabili all'interno dell'IDE di Visual Studio, consultare finestre degli strumenti.
  • Usare i prompt con pulsanti personalizzabili per interagire con l'utente, vedere richieste utente.
  • Utilizzare i dialoghi con un'interfaccia utente personalizzata per interagire con l'utente, consulta i dialoghi .
  • Creare visualizzazioni di dati personalizzate durante il debug, vedere Debugger Visualizer
  • Eseguire query o modificare informazioni su progetti e soluzioni, vedere Project Query
  • Definire, leggere e aggiornare le impostazioni, vedere Impostazioni
  • Usare i server di lingua/LSP per il supporto linguistico aggiuntivo, vedere Language Server Provider

Esempi ed esercitazioni

È possibile trovare una soluzione di Visual Studio che contiene tutti gli esempi in Samples.sln.

Campione Descrizione
gestore comandi semplice Illustra le nozioni di base sull'uso dei comandi. Vedi anche il tutorial Crea la tua prima estensione di Visual Studio.
Inserisci estensione guid Illustra come inserire testo o codice nell'editor di codice, come configurare un comando con una condizione di attivazione specifica e come usare un file di risorse per la localizzazione. Vedi anche il tutorial 'Crea la tua semplice estensione'.
genitorialità autoritaria Illustra come creare un comando che può essere associato a diversi aspetti dell'IDE.
selettore di documenti Illustra come creare un'estensione dell'editor applicabile solo ai file che corrispondono a un modello di percorso di file.
finestra di output Mostra l'uso più basilare dell'API della finestra di output
finestra degli strumenti Illustra come creare una finestra degli strumenti e popolarla con il contenuto.
richiesta utente Mostra come visualizzare una richiesta all'utente.
finestra di dialogo Mostra come visualizzare una finestra di dialogo con l'interfaccia utente personalizzata per l'utente.
margine di conteggio di Word Illustra come creare un'estensione del margine dell'editor che visualizza il conteggio delle parole in un documento.
markdown linter Illustra in che modo più componenti possono interagire insieme all'interno di un'estensione e in che modo è possibile estendere aree diverse di Visual Studio.
query di progetto Mostra diversi tipi di query di sistema del progetto che è possibile eseguire.
rimuovere i commenti Illustra come usare servizi di visual Studio SDK tramite l'inserimento delle dipendenze .NET e usare le API VisualStudio.Extensibility per comandi, prompt e report sullo stato.
RegexMatchDebugVisualizer Mostra come utilizzare l'interfaccia utente remota per creare un visualizzatore del debugger in grado di visualizzare le corrispondenze delle espressioni regolari che verranno lanciate in una finestra di dialogo modale.
memoryStreamDebugVisualizer Illustra come creare un visualizzatore del debugger per visualizzare gli oggetti MemoryStream che si avviano in una finestra dello strumento non modale.
RustLanguageServiceProvider Illustra come creare un'estensione del provider del server di linguaggio Rust che aggiunge IntelliSense e descrizioni comando quando si apre un file Rust.

API sperimentali e modifiche di rilievo

A partire dalla versione 17.9, siamo pronti per etichettare la maggior parte delle API come stabili. In altre parole, non si prevede di apportare modifiche di rilievo a queste API. Eventuali modifiche che interrompono la compatibilità, ad esempio quelle richieste dal feedback degli utenti sull'usabilità, verranno formalmente comunicate in anticipo sulla nostra pagina modifiche che interrompono la compatibilità con ampio preavviso.

Ci sono alcune delle nostre API che non soddisfano ancora questo standard di stabilità, per uno dei diversi motivi:

  • L'area delle funzionalità è nuova e le funzionalità aggiuntive e le modifiche sono previste nelle versioni future.
  • L'API è nuova e si vuole incorporare il feedback degli utenti nella progettazione prima di contrassegnarla stabile.
  • È stato ricevuto un feedback che un'API specifica è difficile da usare, quindi si prevede di aggiornarla nelle versioni future.

Queste API vengono etichettate in modo esplicito usando l'attributo [Experimental] per consentire agli autori di estensioni di creare le estensioni con sicurezza nell'SDK.

Per altre informazioni, tra cui come usare le API sperimentali, vedere la pagina API sperimentali.

Problemi noti

Microsoft apprezza il feedback e i report sui bug nell'Issues Trackere microsoft lavora per risolvere eventuali problemi rilevati nell'SDK.

Visita la pagina Problemi noti per informazioni sui problemi attualmente conosciuti.

Argomenti avanzati

Articolo Descrizione
Altri concetti relativi all'interfaccia utente remota Argomenti aggiuntivi relativi all'uso del modello di interfaccia utente remota
L'interfaccia utente remota avanzata Informazioni approfondite sul modello di interfaccia utente remota
estensioni in-proc Panoramica rapida sulle diverse opzioni per l'uso di VisualStudio.Extensibility SDK all'interno del processo

Documentazione api

Inviare commenti e suggerimenti

Stiamo cercando attivamente commenti e suggerimenti e coinvolgimento. La fase di anteprima è un ottimo momento per ottenere l'input della community per consentirci di identificare problemi e opportunità. È possibile fornire commenti e suggerimenti e segnalare bug nel tracker dei problemi .