Можно ли скрыть / удалить произвольные пункты контекстного меню в Eclipse (3.6) - PullRequest
19 голосов
/ 14 августа 2010

Мой вопрос можно разделить на три:

Можно ли скрывать / удалять произвольные элементы контекстного меню в Eclipse (3.6) с помощью ...

  1. Стандартный интерфейс?
  2. какой-нибудь существующий плагин?
  3. Пользовательский плагин?

Мне не удалось найти способы сделать это методами 1 и 2. Если единственным вариантом является создание собственного плагина, может кто-нибудь подтолкнуть меня в правильном направлении, с чего начать (у меня есть некоторый опыт работы с Java, но Плагины Eclipse).

1 Ответ

19 голосов
/ 14 августа 2010

Вы можете скрыть меню или пункты меню через стандартный графический интерфейс: см. Справку

Чтобы скрыть пункт меню или кнопку панели инструментов:

  • Переключитесь на перспективу, которую вы хотите настроить.
  • Выбрать Window > Customize Perspective....
  • Откройте вкладку Видимость меню или Видимость панели инструментов.
  • Найдите предмет, который вы хотите скрыть.
  • Снимите флажок рядом с элементом. Снимите флажок с меню, чтобы скрыть всех его детей.
  • Нажмите кнопку ОК, чтобы изменения вступили в силу.

Но это скроет эту запись из всех меню (контекстного или нет), в котором она присутствует.
Так что это может быть не так детально, как вы хотите через графический интерфейс.


Вы также можете попробовать через плагин (см. Также Вклад меню )

Первые шаги довольно стандартны для использования расширений в Eclipse.

  • Откройте файл plugin.xml и добавьте org.eclipse.ui.activities extension.
  • Затем создайте узел активности и присвойте ему уникальный идентификатор.
  • Затем создайте узел activityPatternBinding и используйте уникальный идентификатор для действия, чтобы найти узел шаблона для узла действия.
    Для узла activityPatternBinding необходимо указать регулярное выражение для строки идентификатора элемента пользовательского интерфейса, который вы хотите скрыть.

Проблема в том, что, по-видимому, существует как минимум 3 способа добавления элементов меню и кнопок панели инструментов в пользовательский интерфейс.

  • Первый способ - через новые расширения команд / меню.
  • Второй путь - через старое расширение ActionSets.
  • Кроме того, существуют другие элементы пользовательского интерфейса, которые, по-видимому, жестко запрограммированы в Workbench, не имеют строк идентификаторов и не могут быть скрыты с помощью расширения операций. К счастью, этого третьего элемента пользовательского интерфейса немного.

Учитывая, что вы говорите о последнем Eclipse, я скопирую только первый способ:

1 / Используйте Plug-In Spy

Первый способ - использовать Plug-In Spy.
Нажмите alt - shift - F2 и щелкните по элементу меню или кнопке панели инструментов, которые вы хотите скрыть.
Если под заголовком «идентификатор определения активного действия» есть строка идентификатора, то вам повезло.
Этот элемент был добавлен с использованием расширения команды, и вы можете использовать этот идентификатор в качестве аргумента шаблона для расширения деятельности.
Но не все элементы, которые были добавлены с использованием расширения команды, представляют строку идентификатора шпиону плагина.

В качестве примечания, строки идентификаторов разделены точкой.
Например, идентификатор кнопки может быть «org.eclipse.ui.navigate.backwardHistory».
Регулярные выражения используют точку для обозначения любого символа. К счастью, точка, используемая в качестве символа подстановки, совпадает с действительными символами периода, поэтому вам не нужно избегать их, если вы этого не хотите. Я считаю, что это немного облегчает чтение, если их не экранировать, и маловероятно, что это вызовет какие-либо неоднозначные совпадения.

...