Это верно, но я бы предложил небольшую оптимизацию реструктуризации:

аюсь настроить видимость команды в контекстном меню с помощью выражения visibleWhen в menuContribution. Я пытаюсь сделать команду видимой в контекстном меню, только если вы:

Щелкните правой кнопкой мыши определенные типы файлов (ресурсы) в представлении ресурсов (или представлении пакета)Щелкните правой кнопкой мыши соответствующий редактор с открытым типом файла. Он может обнаружить, что мой редактор открыт или что у редактора открыт определенный ресурс.

Я выполнил сначала, используя 'visibleWhen'> 'selection (with)'> 'iterate'> 'org.eclipse.core.resources.IResource (adapt)', затем проверил расширение файла для ресурса. Код указан ниже. Однако я не уверен, как заставить ту же команду появляться, только когда вы щелкнете правой кнопкой мыши на правильном редакторе, в котором открыт файл с правильными расширениями - ext1, ext2.

Проверка, активен ли мой редактор, решает вторую проблему, но, похоже, не помогает, поскольку, если я нажму на файлы не моего типа, она все равно покажет команду в контекстном меню.

Любые рекомендации? «Eclipse Plug-ins (3rd Edition)» показывает некоторый пример для контекстного меню редактора, но он использует действия, и я хочу придерживаться команд.

Спасибо!!

  <menuContribution
        allPopups="false"
        locationURI="popup:org.eclipse.ui.popup.any?before=additions">
     <separator
           name="com.test.ide.separator1"
           visible="true">
     </separator>
     <menu
           icon="icons/sample.gif"
           label="Test Menu">
        <command
              commandId="com.test.commands.testCommand1"
              icon="icons/sample.gif"
              label="testCommand1"
              style="push"
              tooltip="This is a test command">
           <visibleWhen
                 checkEnabled="false">
              <with
                    variable="selection">
                 <iterate
                       ifEmpty="false"
                       operator="or">
                    <adapt
                          type="org.eclipse.core.resources.IResource">
                       <or>
                          <test
                                property="org.eclipse.core.resources.extension"
                                value="ext1">
                          </test>
                          <test
                                property="org.eclipse.core.resources.extension"
                                value="ext2">
                          </test>
                       </or>
                    </adapt>
                 </iterate>
              </with>
           </visibleWhen>
        </command>
     </menu>
  </menuContribution>

Ответы на вопрос(1)

Ваш ответ на вопрос