Мне потребовалось некоторое время, чтобы решить эту проблему прямо сейчас, поэтому я поставлю ответ на вопрос ОП (добавьте в меню Файл-> Новое).
Где внести свой вклад (common.new.menu)
благодаря этому сообщению я обнаружил, что вы хотите внести свой вклад в popup: common.new.menu? After = new. почему ты спрашиваешь? черт, если я знаю; но это работает.
Результат
(когда C / C ++ активная перспектива)
(когда «не» C / C ++ как активная перспектива)
Вот мой пример плагина:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="com.justin.debug.SampleHandler"
id="com.justin.debug.commands.sampleCommand"
name="Sample Command">
</command>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:common.new.menu?after=new">
<command
commandId="com.justin.debug.commands.sampleCommand"
icon="icons/sample.gif"
label="New Root Command From Justin"
style="push">
<visibleWhen
checkEnabled="false">
<with
variable="activeWorkbenchWindow.activePerspective">
<equals
value="org.eclipse.cdt.ui.CPerspective">
</equals>
</with>
</visibleWhen>
</command>
</menuContribution>
<menuContribution
locationURI="popup:common.new.menu?after=new">
<menu
id="org.ecilpse.ui.navigator.ProjectExplorer.helloJustin"
label="Hello Justin">
<command
commandId="com.justin.debug.commands.sampleCommand"
icon="icons/sample.gif"
label="New Submenu Command From Justin"
style="push">
</command>
</menu>
</menuContribution>
</extension>
</plugin>
Я добавил здесь важную часть, параметр visibleWhen. Это только показывает Новая команда Root от Джастина в перспективе C / C ++. Оказывается, это сложно понять, поэтому я включу в пример. Вот полезные ресурсы, которые я выкопал, исследуя это:
Я выкопал имя C Perspective org.eclipse.cdt.ui.CPerspective , мучительно копаясь в plugin.xml плагина org.eclipse.cdt.ui.
Теперь, если кто-нибудь скажет мне, как легко найти эти uri / resources / properties в будущем ... омг.