Procédure pas à pas : Extension de Visual Studio pour MacExtending Visual Studio for Mac Walkthrough

Cette rubrique vous guide à travers la création d’un package d’extension simple.This topic guides you through building a simple extension package. Le package d’extension crée une nouvelle commande pour le menu Edition de Visual Studio pour Mac, qui permet à l’utilisateur d’insérer la date et l’heure actuelles dans un document texte ouvert.The extension package will create a new Command in Visual Studio for Mac's Edit menu that allows the user to insert the current date and time into an open text document.

Cet exemple utilise Add-in Maker.This example uses the Add-in Maker. Add-in Maker crée un modèle de projet et le remplit avec les fichiers nécessaires pour notre package d’extension personnalisé.The Add-In Maker creates a new Project template and populates it with the required files for our custom extension package.

  1. Commencez par lancer Visual Studio pour Mac, s’il n’est pas déjà ouvert :Begin by launching Visual Studio for Mac if it's not already open:

    Capture d’écran de Visual Studio pour Mac

  2. Installez le package d’extension Add-in Maker en utilisant le Gestionnaire d’extensions.Install the Add-in Maker extension package using the Extension Manager. Dans le menu Visual Studio, choisissez Extensions...  :From the Visual Studio menu, choose Extensions...:

    Onglet Gestionnaire de compléments

  3. Accédez à l’onglet Galerie et tapez Addin Maker dans la barre de recherche en haut à droite.Navigate to the Gallery tab and type Addin Maker into the top-right search bar. Sélectionnez Addin Maker dans la catégorie Développement de compléments et cliquez sur Installer.Select Addin Maker from the Add-in Development category and click Install. Si rien ne s’affiche, cliquez sur Actualiser et relancez la recherche :If nothing shows up, hit Refresh and search again:

    Gestionnaire de compléments

  4. Maintenant qu’Addin Maker est installé, vous pouvez démarrer la création d’un package d’extension.Now that the Addin Maker is installed, you can start building an extension package. Commencez par créer une solution.Start by creating a new solution.

  5. Dans la boîte de dialogue Nouvelle solution, choisissez le modèle Autre > Divers > Général > Xamarin Studio Addin > C# et, sur l’écran suivant, nommez la nouvelle solution DateInserter :From the New Solution dialog, choose Other > Miscellaneous > General > Xamarin Studio Addin > C# template and on the following screen name the new Solution DateInserter:

    Création d’une solution

  6. Visual Studio pour Mac remplira une nouvelle solution :Visual Studio for Mac will populate a new Solution:

    Solution remplie

  7. Supprimez le code du modèle dans Manifest.addin.xml et remplacez-le par le code suivant :Remove the template code in Manifest.addin.xml and replace it with the following:

    <?xml version="1.0" encoding="UTF-8"?>
       <ExtensionModel>
           <Extension path = "/MonoDevelop/Ide/Commands/Edit">
               <Command id = "DateInserter.DateInserterCommands.InsertDate"
                   _label = "Insert Date"
                   defaultHandler = "DateInserter.InsertDateHandler" />
           </Extension>
    
           <Extension path = "/MonoDevelop/Ide/MainMenu/Edit">
               <CommandItem id="DateInserter.DateInserterCommands.InsertDate" />
           </Extension>
       </ExtensionModel>
    
  8. Vous devez maintenant configurer les fichiers qui vont au final gérer l’insertion de la date et de l’heure dans l’éditeur de texte.Now you need to set up the files that will eventually handle inserting the date and time into the text editor. Cliquez avec le bouton droit sur le nœud du projet et ajoutez un nouveau fichier.Right-Click on the project node and add a new file. Sélectionnez Général > Classe vide et nommez le nouveau fichier InsertDateHandler :Select General > Empty Class and name the new file InsertDateHandler:

    Gestionnaire d’insertion de date

  9. Supprimons le code du modèle dans InsertDateHandler.cs et remplaçons-le par le code suivant :Let's remove the template code from InsertDateHandler.cs and replace it with the following code:

    using MonoDevelop.Components.Commands;
    using MonoDevelop.Ide;
    using MonoDevelop.Ide.Gui;
    using System;
    
    namespace DateInserter
    {
       class InsertDateHandler : CommandHandler
       {
           protected override void Run()
           {
    
           }
    
           protected override void Update(CommandInfo info)
           {
    
           }
       }
    }
    

    Nous développerons ces deux méthodes d’espace réservé plus tard.We'll expand these two placeholder methods later.

  10. Cliquez avec le bouton droit sur le projet DateInserter et sélectionnez Ajouter > Nouveau fichier.Right-click on the DateInserter Project and select Add > New File. Sélectionnez Général > Énumération vide, puis nommez le nouveau fichier DateInserterCommands :Select General > Empty Enumeration, and then name the new file DateInserterCommands:

    DateInserterCommands

  11. Ajoutez la commande InsertDate en tant que nouvelle énumération dans le fichier DateInserterCommands.cs :Add the InsertDate Command as a new enumeration in the DateInserterCommands.cs file:

    using System;
    
    namespace DateInserter
    {
      public enum DateInserterCommands
      {
          InsertDate,
      }
    }
    
  12. À ce stade, vous devez avoir un package d’extension fonctionnel.At this point, you should have a working extension package. Vous pouvez le tester en enregistrant votre travail et en exécutant l’application.You can test it out by saving your work and running the application. L’IDE lancera une nouvelle instance de Visual Studio pour Mac avec le nouveau package d’extension installé.The IDE will launch a new instance of Visual Studio for Mac with the new extension package installed. Si vous accédez au menu Edition, vous voyez que Visual Studio pour Mac a une nouvelle option appelée Insert Date (Insérer la date), comme illustré par la capture d’écran ci-dessous :If you navigate to the Edit menu, you'll see that Visual Studio for Mac has a new option called Insert Date, as illustrated by the screenshot below:

    Commande Insert date

    Notez que la sélection d’Insert Date à partir du menu n’a aucun effet, car l’implémentation actuelle a seulement des méthodes d’espace réservé.Note that selecting Insert Date from the menu has no effect as the current implementation only has placeholder methods.

  13. Le framework est en place pour le package d’extension, et il est temps d’écrire le code qui permet l’insertion de la date.The framework is in place for the extension package, and it's time to write the code that powers inserting the date. Vérifiez d’abord que la commande Insert Date est activée seulement quand l’utilisateur a un fichier texte ouvert en remplaçant la méthode Update dans InsertDateHandler.cs par le code suivant :First, make sure that the Insert Date Command is only enabled when the user has a text file open by replacing the Update method in InsertDateHandler.cs with the following code:

    protected override void Update(CommandInfo info)
    {
      info.Enabled = IdeApp.Workbench.ActiveDocument?.Editor != null;
    }
    
  14. Mettez à jour la méthode Run de la commande pour qu’elle insère la date et l’heure avec le code suivant :Update the Command's Run method to insert the date and time with the following code:

    protected override void Run () {
      var editor = IdeApp.Workbench.ActiveDocument.Editor;
      var date = DateTime.Now.ToString ();
      editor.InsertAtCaret (date);
    
    }
    
  15. Enfin, exécutons notre package d’extension pour le tester.Finally, let's run our extension package to test it. Dans la nouvelle instance de Visual Studio pour Mac, sélectionnez Edition > Insert Date.In the new instance of Visual Studio for Mac, select Edit > Insert Date. La date et l’heure actuelles sont insérées à notre point d’insertion, comme illustré par la capture d’écran ci-dessous :The current date and time is inserted at our caret, as illustrated by the screenshot below:

    Capture d’écran - Insérer la date

Voir aussiSee also