2010-09-09 13 views
3

J'ai un paquet VSIP VS2010 avec plusieurs commandes, ces commandes sont ajoutées au menu contextuel de l'éditeur javascript, et je suis en utilisantComment étendre le menu contextuel de l'éditeur vs2010 pour le fichier .js?

<Group guid="guidPrettyJsCmdSet" id="ContextMenuGroup" priority="0x0600"> 
     <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/> 
    </Group> 

mais il fonctionne uniquement le fichier C#, comment le faire fonctionner pour le fichier .js ?

Répondre

12

Les éditeurs de code HTML/CSS/JS affichent en réalité différents menus contextuels que l'éditeur de code principal. Malheureusement, les paires Guid/ID pour ces menus contextuels ne sont pas publiées ou définies dans Visual Studio SDK.

Cependant, il existe un hook de débogage (depuis VS 2005 SP1) qui vous permet d'identifier le Guid/ID de presque n'importe quel élément de menu qui pourrait vous intéresser. Voir this blog post pour savoir comment faire.

En utilisant la technique décrite dans ce poste, si je CTRL + SHIFT + clic droit dans l'éditeur Javascript, je reçois le dialogue suivant:

alt text

Dans les < symboles section > de mon fichier VSCT, Je peux mettre:

<GuidSymbol name="htmlEditorCommandSet" value="{D7E8C5E1-BDB8-11D0-9C88-0000F8040A53}"> 
    <IDSymbol name="jsContextMenu" value="0x0034"/> <!-- 52 in hex is 0x0034 --> 
</GuidSymbol> 

Ensuite, il est juste une question de la parentalité à ce Guid/ID:

<Group guid="guidPrettyJsCmdSet" id="ContextMenuGroup" priority="0x0600"> 
    <Parent guid="htmlEditorCommandSet" id="jsContextMenu"/> 
    </Group> 
+0

merci beaucoup, ça marche. – guaike