2013-08-21 2 views
0

Я создаю настраиваемый плагин eclipse и базовый код Lua. Я хочу создать автономную среду IDE, поэтому у меня есть классы Application и LuaNature.Природа не существует в моем подключаемом модуле Eclipse

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$ 
} 

Когда я бегу newProjectWizard для Lua проекта, я получаю ошибка

Природа не существует: com.my.ide.nature.

Я пропустил некоторые настройки?

ответ

1

Плагин.xml заявляет, что природа имеет идентификатор com.my.ide.id1 не com.my.ide.nature.

0

Я предполагаю, что ваш плагин, возможно, не активируется. Я предлагаю вам перейти в диалог «Запуск/отладка конфигурации», выберите вашу конфигурацию, перейдите на вкладку «Плагины», убедитесь, что ваш плагин com.my.ide установлен, а затем нажмите «Проверить», чтобы увидеть, есть ли какие-либо недостающие зависимости, как только вы знаете, , Если это так, попробуйте нажать «Добавить необходимые зависимости». После того, как вы уверены, что у вас есть плагин, включенный в конфигурацию запуска, и никаких зависимостей нет, снова запустите приложение. Если у вас все еще есть проблемы, вернитесь к диалоговому окну конфигурации запуска и на вкладке параметров add -console в текстовую область аргументов программы. Запустите приложение еще раз и в консоли введите «start com.my.ide», чтобы убедиться, что нет никаких других ошибок, которые заставляют ваш плагин активироваться, если он начнет нормально, тогда что-то еще проблема.

1

У меня также была аналогичная проблема. По-видимому, вы не определили идентификатор природы правильно. В этот момент ваш плагин будет activating.So, если проект природа была настроена

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

Здесь идентификатора должна быть ваш проект природа ID. Поэтому используйте id, который указан в файле plugin.xml как ваш идентификатор объекта проекта.

Смежные вопросы