Création de concepteurs et éditeurs personnalisésCreating Custom Editors and Designers

L’environnement de développement intégré (IDE) Visual Studio peut héberger des différents types d’éditeur :The Visual Studio integrated development environment (IDE) can host different types of editor:

  • L’éditeur principal de Visual StudioThe Visual Studio core editor

  • Éditeurs personnalisésCustom editors

  • Éditeurs externesExternal Editors

  • ConcepteursDesigners

    Les informations suivantes vous permettent de choisir le type de l’éditeur que vous avez besoin.The following information helps you choose the type of editor you need.

Types de l’éditeurTypes of Editor

Pour plus d’informations sur l’éditeur principal de Visual Studio, consultez étendre l’éditeur et les Services de langage.For information about the Visual Studio core editor, see Extending the Editor and Language Services.

Éditeurs personnalisésCustom Editors

Un éditeur personnalisé est celle qui est conçu pour fonctionner dans des circonstances particulières.A custom editor is one that is designed to work in specialized circumstances. Par exemple, vous pouvez créer un éditeur dont la fonction consiste à lire et écrire des données dans un référentiel spécifique, tel qu’un serveur Microsoft Exchange.For example, you might create an editor whose function is to read and write data to a specific repository, such as a Microsoft Exchange server. Choisissez un éditeur personnalisé si vous souhaitez un éditeur qui fonctionne avec votre type de projet uniquement ou si vous souhaitez un éditeur qui a uniquement quelques commandes spécifiques.Choose a custom editor if you want an editor that works with your project type only or if you want an editor that has only a few specific commands. Notez, toutefois, que les utilisateurs ne seront pas en mesure d’utiliser un éditeur personnalisé pour modifier la norme Visual StudioVisual Studio projets.Note, however, that users will not be able to use a custom editor to edit standard Visual StudioVisual Studio projects.

Un éditeur personnalisé peut utiliser une fabrique d’éditeur et ajouter des informations sur l’Éditeur du Registre.A custom editor can use an editor factory and add information about the editor to the registry. Toutefois, le type de projet associé à l’éditeur personnalisé peut instancier l’éditeur personnalisé par d’autres moyens.However, the project type associated with the custom editor can instantiate the custom editor in other ways.

Un éditeur personnalisé permet d’effectuer l’activation sur place ou incorporation simplifié pour implémenter une vue.A custom editor can use either in-place activation or simplified embedding to implement a view.

Éditeurs externesExternal Editors

Éditeurs externes sont des éditeurs qui ne sont pas intégrées dans Visual Studio, tels que Microsoft Word, le bloc-notes ou Microsoft FrontPage.External editors are editors that are not integrated into Visual Studio, such as Microsoft Word, Notepad, or Microsoft FrontPage. Vous pouvez appeler un éditeur de ce type si, par exemple, vous sont texte en lui passant à partir de votre VSPackage.You might call such an editor if, for example, you are passing text to it from your VSPackage. Éditeurs externes s’inscrivent elles-mêmes et peuvent être utilisés en dehors de Visual Studio.External editors register themselves and can be used outside Visual Studio. Lorsque vous appelez un éditeur externe, et qu’il peut être incorporé dans une fenêtre hôte, il apparaît dans une fenêtre dans l’IDE.When you call an external editor, and it can be embedded in a host window, then it appears in a window in the IDE. Si ce n’est pas le cas, puis l’interface IDE crée une fenêtre distincte pour celle-ci.If not, then the IDE creates a separate window for it.

Le IsDocumentInProject méthode définit la priorité du document à l’aide de la VSDOCUMENTPRIORITY énumération.The IsDocumentInProject method sets the document priority by using the VSDOCUMENTPRIORITY enumeration. Si le DP_External valeur est spécifiée, le fichier peut être ouvert par un éditeur externe.If the DP_External value is specified, the file can be opened by an external editor.

Décisions de conception de l’éditeurEditor Design Decisions

Les questions de conception suivantes vous aideront à choisir le type de l’éditeur de meilleures adapté à votre application :The following design questions will help you to choose the type of editor best suited to your application:

  • Votre application enregistrera ses données dans des fichiers ou pas ?Will your application save its data in files or not? Si elle sera enregistré ses données dans les fichiers, sera-t-il dans un format standard ou personnalisé ?If it will save its data in files, will they be in a custom or standard format?

    Si vous utilisez un format de fichier standard, les autres types de projets en plus de votre projet sera capable d’ouvrir et en lecture/écriture aux données pour les.If you use a standard file format, other project types in addition to your project will be able to open and read/write data to them. Toutefois, si vous utilisez un format de fichier personnalisé, seulement votre type de projet sera capable d’ouvrir et en lecture/écriture aux données pour les.If you use a custom file format, however, only your project type will be able to open and read/write data to them.

    Si votre projet utilise des fichiers, vous devez personnaliser l’éditeur standard.If your project uses files, then you should customize the standard editor. Si votre projet n’utilise pas de fichiers, mais utilise à la place les éléments dans une base de données ou autre référentiel, vous devez créer un éditeur personnalisé.If your project does not use files, but rather uses items in a database or other repository, then you should create a custom editor.

  • Votre éditeur n’a besoin pour héberger des contrôles ActiveX ?Does your editor need to host ActiveX controls?

    Si votre éditeur héberge des contrôles ActiveX, puis implémenter un éditeur d’activation en place, comme indiqué dans Activation en Place.If your editor hosts ActiveX controls, then implement an in-place activation editor, as outlined in In-Place Activation. Si elle n’héberge pas de contrôles ActiveX, puis utiliser un éditeur d’incorporation simplifié, ou personnaliser la Visual StudioVisual Studio éditeur par défaut.If it does not host ActiveX controls, then either use a simplified embedding editor, or customize the Visual StudioVisual Studio default editor.

  • Votre éditeur prend en charge plusieurs vues ?Will your editor support multiple views? Si vous souhaitez que les vues de votre éditeur soient visibles en même temps que l’éditeur par défaut, vous devez prendre en charge plusieurs vues.You must support multiple views if you want views of your editor to be visible at the same time as the default editor.

    Si votre éditeur doit prendre en charge plusieurs vues, les données du document et les objets de vue de document pour l’éditeur doivent être des objets distincts.If your editor needs to support multiple views, the document data and document view objects for the editor must be separate objects. Pour plus d’informations, consultez prenant en charge plusieurs vues de Document.For more information, see Supporting Multiple Document Views.

    Si votre éditeur prend en charge plusieurs vues, vous prévoyez d’utiliser le Visual StudioVisual Studio implémentation de mémoire tampon de texte de l’éditeur de base (VsTextBuffer objet) pour l’objet de données de document ?If your editor supports multiple views, do you plan to use the Visual StudioVisual Studio core editor's text buffer implementation (VsTextBuffer object) for your document data object? Autrement dit, vous souhaitez prendre en charge votre éditeur vue côte à côte avec la Visual StudioVisual Studio éditeur principal ?That is, do you want to support your editor view side-by-side with the Visual StudioVisual Studio core editor? La possibilité de procéder est la base du Concepteur de formulaires...The ability to do this is the basis of the forms designer..

  • Si vous avez besoin pour héberger un éditeur externe, l’éditeur incorporable dans Visual StudioVisual Studio?If you need to host an external editor , can the editor be embedded inside Visual StudioVisual Studio?

    S’il peut être incorporé, vous devez créer une fenêtre hôte pour l’éditeur externe et appelez ensuite la IsDocumentInProject (méthode) et définissez la VSDOCUMENTPRIORITY valeur d’énumération pour DP_External.If it can be embedded, you should create a host window for the external editor and then call the IsDocumentInProject method and set the VSDOCUMENTPRIORITY enumeration value to DP_External. Si l’éditeur ne peut pas être incorporé, l’IDE crée automatiquement une fenêtre distincte pour celle-ci.If the editor cannot be embedded, the IDE will automatically create a separate window for it.

Dans cette sectionIn This Section

Procédure pas à pas : Création d’un éditeur personnaliséWalkthrough: Creating a Custom Editor
Explique comment créer un éditeur personnalisé.Explains how to create a custom editor.

Procédure pas à pas : Ajout de fonctionnalités à un éditeur personnaliséWalkthrough: Adding Features to a Custom Editor
Explique comment ajouter des fonctionnalités à un éditeur personnalisé.Explains how to add features to a custom editor.

Initialisation du concepteur et configuration des métadonnéesDesigner Initialization and Metadata Configuration
Explique comment initialiser un concepteur.Explains how to initialize a designer.

Fourniture de la prise en charge de l’annulation pour les concepteursSupplying Undo Support to Designers
Explique comment fournir la prise en charge de l’annulation pour les concepteurs.Explains how to provide undo support for designers.

Couleurs de syntaxe dans les éditeurs personnalisésSyntax Coloring in Custom Editors
Explique la différence entre les couleurs dans l’éditeur principal et dans les éditeurs personnalisés de syntaxe.Explains the difference between syntax coloring in the core editor and in custom editors.

Données de documents et affichage de documents dans les éditeurs personnalisésDocument Data and Document View in Custom Editors
Explique comment implémenter des données du document et les vues de document dans les éditeurs personnalisés.Explains how to implement document data and document views in custom editors.

Interfaces héritées dans l’éditeurLegacy Interfaces in the Editor
Explique comment accéder à l’éditeur principal au moyen de l’API héritée.Explains how to access the core editor by means of the legacy API.

Développement d’un service de langage héritéDeveloping a Legacy Language Service
Explique comment implémenter un service de langage.Explains how to implement a language service.

Extension d’autres parties de Visual StudioExtending Other Parts of Visual Studio
Explique comment créer des éléments d’interface utilisateur qui correspondent au reste de Visual StudioVisual Studio.Explains how to create UI elements that match the rest of Visual StudioVisual Studio.

Voir aussiSee Also

IVsEditorFactory