Как программно определить привязку ключа комманд для плагинов Eclipse? - PullRequest
3 голосов
/ 22 декабря 2009

Я расширяю Eclipse с помощью инфраструктуры плагинов Eclipse, и у меня возникла проблема, я не могу понять, как обойти:

У меня есть команда с горячей клавишей. У меня также есть редактор, который должен украсть привязки клавиш из Eclipse (отключение фильтра ключей в IBindingService). Тем не менее, эта команда достаточно важна, и горячая клавиша для нее все еще должна работать. В настоящее время, в этом конкретном редакторе, в той части, где я слушаю ключевые события, я проверяю, что является связыванием клавиш по умолчанию для этой команды, и вручную запускаю ее, если она обнаруживает. Очевидная проблема для этого состоит в том, что, если привязка ключа для команды изменена, она все еще использует привязку по умолчанию только в этом редакторе. Есть ли какой-то способ, которым я могу легко получить доступ к привязке клавиш конкретной команды, чтобы я мог проверить это вместо простой по умолчанию?

Я понимаю, что это решение не переносимо между разными редакторами, но это единственный редактор, в котором я должен беспокоиться об этом, поэтому я не против особого случая этого.

1 Ответ

5 голосов
/ 22 декабря 2009

Вам нужно использовать org.eclipse.ui.keys.IBindingService, получая это немного хитро, через org.eclipse.ui.PlatformUI:

IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class);
bindingService.getBestActiveBindingFormattedFor(CMDID); 

CMDID - это идентификатор команды, который вы определили в своем plugin.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...