Java 为什么不是';我的Eclipse插件ICommand和IParameter的值是否显示在首选项/关键点设置中?

Java 为什么不是';我的Eclipse插件ICommand和IParameter的值是否显示在首选项/关键点设置中?,java,eclipse,eclipse-plugin,key-bindings,Java,Eclipse,Eclipse Plugin,Key Bindings,我正在尝试开发一个Eclipse插件,它将启动特定的目标作为关键的可绑定命令 下面是plugin.xml <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.4"?> <plugin> <extension point="org.eclipse.ui.commands"> <category name="Custom Launcher" id="Eclip

我正在尝试开发一个Eclipse插件,它将启动特定的目标作为关键的可绑定命令

下面是plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>

   <extension point="org.eclipse.ui.commands">
      <category name="Custom Launcher" id="Eclipse_Keybound_Launch_Plugin.commands.category"/>
      <command
            categoryId="Eclipse_Keybound_Launch_Plugin.commands.category"
            defaultHandler="eclipse_keybound_launch_plugin.handlers.CustomLaunchCommandHandler"
            description="Launch/terminate then relaunch a custom target in debug mode"
            id="Eclipse_Keybound_Launch_Plugin.commands.terminateLaunch"
            name="Launch">
            <commandParameter
                  id="Eclipse Keybound Launch Plugin.launchTarget"
                  name="target"
                  optional="false"
            />
      </command>
   </extension>

   <extension point="org.eclipse.ui.bindings">
      <key  commandId="Eclipse_Keybound_Launch_Plugin.commands.terminateLaunch"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            contextId="org.eclipse.ui.contexts.window"
            sequence="M1+6">
            <parameter id="Eclipse Keybound Launch Plugin.launchTarget" value="RunMe"/>
      </key>
   </extension>

   <extension point="org.eclipse.ui.bindings">
      <key  commandId="Eclipse_Keybound_Launch_Plugin.commands.terminateLaunch"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            contextId="org.eclipse.ui.contexts.window"
            sequence="M1+7">
            <parameter id="Eclipse Keybound Launch Plugin.launchTarget" value="RunMeAlso"/>
      </key>
   </extension>

</plugin>

为完整起见,以下是它在扩展视图中的外观:

当我对插件进行测试时,它就工作了;参数值可在
ExecutionEvent
中找到。但是,该值不会显示在首选项/关键点设置中:

为什么会这样?我需要做什么才能让Eclipse不仅显示名称(
target:
),而且显示参数的值(
RunMe
RunMeAlso


请注意,我使用的是Eclipse SDK版本:3.6.1,构建id:M20100909-0800。

定义commandParameter时,请使用values元素提供一个
org.Eclipse.core.commands.ipParameterValues
。该类将命令参数中的信息映射到人类可读的标签

请参见
org.eclipse.ui.internal.registry.PerspectiveParameterValues
org.eclipse.ui.internal.registry.ViewParameterValues
作为示例,但基本上是返回标签到ID的映射:

public final Map getParameterValues() {
    final Map values = new HashMap();

    final IViewDescriptor[] views = PlatformUI.getWorkbench()
            .getViewRegistry().getViews();
    for (int i = 0; i < views.length; i++) {
        final IViewDescriptor view = views[i];
        values.put(view.getLabel(), view.getId());
    }

    return values;
}
public final Map getParameterValues(){
最终映射值=新HashMap();
最终IViewDescriptor[]视图=PlatformUI.getWorkbench()
.getViewRegistry().getViews();
对于(int i=0;i
我只想说明一下,像参数ID这样的ID应该是传统的扩展ID,不带空格(不过对于qusetion来说并不重要)。例如:Eclipse\u keybond\u Launch\u Plugin.commands.terminateLanch.launchTarget。