L'extension de Visual Studio 2010 de l'éditeur par l'ajout d'un élément de menu contextuel pour manipuler le texte sélectionné
J'aimerais créer une extension pour Visual Studio qui permettra à quelqu'un pour sélectionner tout le texte dans un éditeur de texte, faites un clic droit pour obtenir le menu contextuel, puis effectuer une action sur le texte en cliquant sur un élément de menu personnalisé.
Par exemple, disons que mon élément de menu personnalisé est appelé "e-Mail...". Le nouveau menu contextuel de l'éditeur pourrait ressembler à quelque chose comme ceci:
Point d'arrêt
Exécuter jusqu'au Curseur
Couper
Copie
Coller
E-Mail...
Décrivant
J'aimerais aussi ajouter un pop-up (la parure?) avec des options. Dans ce cas, il pourrait être des choses comme To
, Subject
, et CC
champs.
Je pense que cela peut être fait avec MEF à l'aide de l'éditeur d'extensions, comme le message et le code pour le tir d'un email. Mais il semble que j'ai besoin d'un VSPackage
pour ajouter l'élément de menu contextuel. De ce que j'ai lu, je peux le bundle de la MEF de la pièce et de la VSPackage
ensemble.
C'est là que je suis coincé. J'ai besoin d'une profondeur de référence avec des détails pour mettre en œuvre les deux parties, mais j'ai aussi besoin d'informations sur la façon de les intégrer. MSDN a moi de tourner en rond.
Est-il un bon exemple de code ou de la documentation (livres) que je peux apprendre d'?
- Mais pas une réponse directe, j'ai encore envie de partager un utile lien pour des ressources qui plonge dans VS paquet de développement et d'extensions.
Vous devez vous connecter pour publier un commentaire.
1) Vous pouvez créer toujours obtenir une référence à EnvDTE dans une extension.
2) À l'ajouter directement, un élément de menu dans le prolongement de paradigme. Vous avez juste besoin de modifier l' ".VSCT de fichier". Tout d'abord, la commande de menu est défini dans un groupe de menu. Dans le VSCT, le fichier de définition du groupe ressemble à ce que généré:
Pour déplacer le “e-Mail” entrée de menu pour le menu contextuel, tout ce que nous devons faire est de spécifier le code contextuel de la fenêtre de l'éditeur en tant que parent pour le groupe de menu, à l'aide de l'identificateur de IDM_VS_CTX_CODEWIN:
J'ai basé cette exemple à partir d'un joli tutoriel sur la façon de l'auto-tweet ou blog un extrait de code de visual studio: http://solutions.developer.com/ms/web-dev/visual-studio/codeblog-writing-a-blogging-extension-for-visual-studio-2010.html
J'ai totalement mis au rebut mon idée de traiter avec le MEF, VSIX fichiers, etc. Au lieu de cela, je suis allé avec un Visual Studio add-in qui a été beaucoup plus facile.
J'ai combiné du code à partir de diverses ressources comme L'ajout d'Éléments de Menu dans les menus contextuels à l'intérieur de Visual Studio .NET IDE et Visual Studio Add-in : de la Création de Menus contextuels qui sont un peu ancien et le nécessaire de nettoyage, mais ils ont travaillé très bien.