0

我正在创建一个自定义的 eclipse 插件,基础是 Lua 代码。我想构建独立的 IDE,所以我有 Application 和 LuaNature 类。

plugin.xml看起来像这样:

 <extension
       id="application"
       point="org.eclipse.core.runtime.applications">
    <application>
       <run
           class="com.my.ide.Application">
       </run>
    </application>
 </extension>
.
.
.

<extension
         id="id1"
         point="org.eclipse.core.resources.natures">
      <runtime>
         <run
               class="com.my.ide.core.LuaNature">
         </run>
      </runtime>
   </extension>

Application.class看起来像这样:

public class Application implements IApplication {

    /* (non-Javadoc)
     * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
     */
    public Object start(IApplicationContext context) throws Exception {
        Display display = PlatformUI.createDisplay();
        try {
            int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
            if (returnCode == PlatformUI.RETURN_RESTART)
                return IApplication.EXIT_RESTART;
            else
                return IApplication.EXIT_OK;
        } finally {
            display.dispose();
        }

    }

    /* (non-Javadoc)
     * @see org.eclipse.equinox.app.IApplication#stop()
     */
    public void stop() {
        if (!PlatformUI.isWorkbenchRunning())
            return;
        final IWorkbench workbench = PlatformUI.getWorkbench();
        final Display display = workbench.getDisplay();
        display.syncExec(new Runnable() {
            public void run() {
                if (!display.isDisposed())
                    workbench.close();
            }
        });
    }
}

像这样LuaNature.class

public class LuaNature extends ScriptNature {
    /**
     * Nature of IDE composed from plug-in ID
     * 
     * @return String
     */
    public static final String ID = Activator.PLUGIN_ID + ".nature"; //$NON-NLS-1$
}

当我为 Lua 项目运行 newProjectWizard 时,出现错误

自然不存在:com.my.ide.nature。

我错过了一些设置吗?

4

3 回答 3

1

com.my.ide.id1plugin.xml 声明了没有id 的性质com.my.ide.nature

于 2013-08-23T11:03:57.053 回答
1

我也有类似的问题。似乎您没有正确定义自然 ID。此时您的插件正在激活。因此,如果配置了项目性质

 <extension
         id="id1"
         point="org.eclipse.core.resources.natures">
      <runtime>
         <run
               class="com.my.ide.core.LuaNature">
         </run>
      </runtime>
   </extension>

这里id应该是您的项目性质 id因此,使用plugin.xml中给出的 id作为您的项目性质 id。

于 2016-03-11T03:58:12.487 回答
0

我的猜测是您的插件可能没有被激活。我建议你去你的运行/调试配置对话框,选择你的配置去插件选项卡,确保你的插件 com.my.ide 被选中,然后点击验证,一旦你知道它被选中,看看是否有任何缺少的依赖项. 如果是这种情况,请尝试单击添加所需的依赖项。一旦您确定启动配置中包含插件并且没有缺少任何依赖项,请再次运行该应用程序。如果仍有问题,请返回启动配置对话框并在参数选项卡中将 -console 添加到程序参数文本区域。再次启动应用程序并在您的控制台中键入“start com.my.ide”以确保没有其他错误导致您的插件被激活,

于 2013-08-21T17:00:13.293 回答