2017-10-05 10 views
1

Mon éditeur Eclipse personnalisé remplace createAction, où il enregistre un IAction avec l'éditeur. Puis, dans editorContextMenuAboutToShow j'ajoute cette action au menu.Eclipse: comment ajouter une liaison de clé à une action dans un menu contextuel de l'éditeur

Tout fonctionne correctement, dans la mesure où l'action apparaît dans le menu contextuel de l'éditeur; et je suis capable d'invoquer l'action du menu lui-même.

Maintenant, je voudrais ajouter une liaison de clé pour cette action. Jusqu'à présent, j'ai ajouté trois extensions à mon plugin.xml: une commande, une liaison et un contexte. Je peux réellement voir la commande/liaison/contexte apparaître dans la préférence de clés. En ce qui concerne la liaison de la commande à mon action, j'ai passé l'ID de commande déclaré dans le fichier plugin.xml comme paramètre à après avoir créé l'action elle-même dans createActions. Inutile de dire que la liaison de touches n'invoque pas l'action, d'où cette question. Quelles sont les étapes qui me manquent?

+0

J'ai réussi à faire fonctionner cela, en plaçant le 'contextId' de mes commandes à' org.eclipse.ui.contexts.window' au lieu de l'id à un contexte que j'avais défini .... la question devient alors comment puis-je "lier" mon contexte à mon éditeur ??? – biosbob

Répondre

1

Dans un éditeur basé TextEditor, j'ai dû toucher ces endroits afin de fournir une action avec une liaison clé:

  • définir une commande, clé de liaison et la portée (comme vous l'avez fait)

  • définir le actionDefinitionId pour correspondre à l'ID de commande (comme vous l'avez fait)

  • après avoir créé l'action en createActions(), je devais appeler setAction(myAction.getActionDefinitionId(), myAction);

  • définir le champ d'application dans initializeKeyBindingScopes() avec setKeyBindingScopes(new String[]{ "org.example.myScope" });

Est-ce que l'aide?

+0

oui, ça l'a fait .... c'était surcharger 'initializeKeyBindScopes' que j'avais manqué .... – biosbob