Creare editor e finestre di progettazione personalizzati

L'ambiente di sviluppo integrato (IDE) di Visual Studio può ospitare diversi tipi di editor:

  • Editor principale di Visual Studio

  • Editor personalizzati

  • Editor esterni

  • Finestre di progettazione

Le informazioni seguenti consentono di scegliere il tipo di editor necessario.

Tipi di editor

Per informazioni sull'editor principale di Visual Studio, vedere Estendere l'editor e i servizi di linguaggio.

Editor personalizzati

Un editor personalizzato è un editor progettato per funzionare in circostanze specializzate. Ad esempio, è possibile creare un editor la cui funzione consiste nel leggere e scrivere dati in un repository specifico, ad esempio un server di Microsoft Exchange. Scegliere un editor personalizzato se si desidera un editor che funzioni solo con il tipo di progetto o se si desidera un editor con solo alcuni comandi specifici. Si noti, tuttavia, che gli utenti non potranno usare un editor personalizzato per modificare i progetti standard di Visual Studio.

Un editor personalizzato può usare una factory dell'editor e aggiungere informazioni sull'editor al Registro di sistema. Tuttavia, il tipo di progetto associato all'editor personalizzato può creare un'istanza dell'editor personalizzato in altri modi.

Un editor personalizzato può usare l'attivazione sul posto o l'incorporamento semplificato per implementare una visualizzazione.

Editor esterni

Gli editor esterni sono editor non integrati in Visual Studio, ad esempio Microsoft Word, Blocco note o Microsoft FrontPage. È possibile chiamare un editor di questo tipo se, ad esempio, si passa il testo dal pacchetto VSPackage. Gli editor esterni si registrano e possono essere usati all'esterno di Visual Studio. Quando si chiama un editor esterno e può essere incorporato in una finestra host, viene visualizzato in una finestra nell'IDE. In caso contrario, l'IDE crea una finestra separata.

Il IsDocumentInProject metodo imposta la priorità del documento utilizzando l'enumerazione VSDOCUMENTPRIORITY . Se il DP_External valore viene specificato, il file può essere aperto da un editor esterno.

Decisioni di progettazione dell'editor

Le domande di progettazione seguenti consentono di scegliere il tipo di editor più adatto all'applicazione:

  • L'applicazione salverà o meno i dati nei file? Se i dati verranno salvati nei file, saranno in un formato personalizzato o standard?

    Se si usa un formato di file standard, altri tipi di progetto oltre al progetto saranno in grado di aprirli e leggere/scrivere dati. Se si usa un formato di file personalizzato, tuttavia, solo il tipo di progetto sarà in grado di aprirli e leggere/scrivere dati.

    Se il progetto usa file, è necessario personalizzare l'editor standard. Se il progetto non usa file, ma usa elementi in un database o in un altro repository, è necessario creare un editor personalizzato.

  • L'editor deve ospitare controlli ActiveX?

    Se l'editor ospita controlli ActiveX, implementare un editor di attivazione sul posto, come descritto in Attivazione sul posto. Se non ospita controlli ActiveX, usare un editor di incorporamento semplificato o personalizzare l'editor predefinito di Visual Studio.

  • L'editor supporterà più visualizzazioni? È necessario supportare più visualizzazioni se si desidera che le visualizzazioni dell'editor siano visibili contemporaneamente all'editor predefinito.

    Se l'editor deve supportare più visualizzazioni, i dati del documento e gli oggetti visualizzazione documento per l'editor devono essere oggetti separati. Per altre informazioni, vedere Supportare più visualizzazioni documento.

    Se l'editor supporta più visualizzazioni, si prevede di usare l'implementazione del buffer di testo dell'editor principale di Visual Studio (VsTextBuffer oggetto) per l'oggetto dati del documento? In altri termini, si vuole supportare la visualizzazione dell'editor side-by-side con l'editor principale di Visual Studio? La possibilità di eseguire questa operazione è la base della finestra di progettazione dei moduli.

  • Se è necessario ospitare un editor esterno, è possibile incorporare l'editor in Visual Studio?

    Se può essere incorporato, è necessario creare una finestra host per l'editor esterno e quindi chiamare il IsDocumentInProject metodo e impostare il valore di VSDOCUMENTPRIORITY enumerazione su DP_External. Se l'editor non può essere incorporato, l'IDE creerà automaticamente una finestra separata.

In questa sezione

Procedura dettagliata: Creare un editor personalizzato
Viene illustrato come creare un editor personalizzato.

Procedura dettagliata: Aggiungere funzionalità a un editor personalizzato
Viene illustrato come aggiungere funzionalità a un editor personalizzato.

Inizializzazione e configurazione dei metadati della finestra di progettazione
Viene illustrato come inizializzare una finestra di progettazione.

Fornire supporto per annullare l'annullamento per le finestre di progettazione
Viene illustrato come fornire supporto di annullamento per le finestre di progettazione.

Colorazione della sintassi negli editor personalizzati
Illustra la differenza tra la colorazione della sintassi nell'editor principale e negli editor personalizzati.

Dati documento e visualizzazione documento in editor personalizzati
Viene illustrato come implementare i dati dei documenti e le visualizzazioni documento negli editor personalizzati.