2016-06-27 5 views
1

Я создал редактор с Xtext 2.9.1, и теперь я хочу сделать его независимым от JDT. Я следил за этим руководством https://eclipse.org/Xtext/documentation/307_special_languages.htmlXtext project JDT Independence

но он не работает. Это мой ErrmsgUiModule.xtend

@FinalFieldsConstructor 
class ErrmsgUiModule extends AbstractErrmsgUiModule { 

    override configure(Binder binder) { 
     super.configure(binder); 
     binder.bind(DefaultHighlightingConfiguration).to(ErrMsgHighlightingConfiguration); 
     binder.bind(DefaultSemanticHighlightingCalculator).to(ErrorSemanticHighlightingCalculator); 
    } 

    override bindIResourceForEditorInputFactory() { 
     return ResourceForIEditorInputFactory 
    } 

    override bindIResourceSetProvider() { 
     return SimpleResourceSetProvider 
    } 

    override provideIAllContainersState() { 
     return Access.getWorkspaceProjectsState() 
    } 
} 

Я проверил каждый перезаписаны метод с отладчиком и все 3 метода называются. Я не создал свой собственный мастер проекта, поэтому этого должно быть достаточно. Но все же после того, как плагин installating мастер проект Java становится доступным ...

/Edit: Чтобы предоставить больше информации, это mwe2 файл проекта

module com.xxx.lang.errmsg.GenerateErrmsg 

import org.eclipse.xtext.xtext.generator.* 
import org.eclipse.xtext.xtext.generator.model.project.* 
import org.eclipse.xtext.ui.generator.* 


var rootPath = ".." 

Workflow { 

    component = XtextGenerator { 
     configuration = { 
      project = StandardProjectConfig { 
       baseName = "com.xxx.lang.errmsg" 
       rootPath = rootPath 
       runtimeTest = { 
        enabled = true 
       } 
       eclipsePlugin = { 
        enabled = true 
       } 
       eclipsePluginTest = { 
        enabled = true 
       } 
       createEclipseMetaData = true 
      } 
      code = { 
       encoding = "windows-1250" 
       fileHeader = "/*\n * generated by Xtext \${version}\n */" 
      } 
     } 
     language = StandardLanguage { 
      name = "com.xxx.lang.errmsg.Errmsg" 
      fileExtensions = "msg" 
      fragment = formatting.Formatter2Fragment2 auto-inject {} 
      serializer = { 
       generateStub = false 
      } 
      validator = { 
      // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" 
      } 
     } 

    } 
} 

и это список Зависимости от plugin.xml для различных проектов:

проект com.xxx.lang.errmsg

org.eclipse.xtext, 
org.eclipse.xtext.xbase, 
org.eclipse.equinox.common;bundle-version="3.5.0", 
org.eclipse.emf.ecore, 
org.eclipse.xtext.xbase.lib, 
org.antlr.runtime, 
org.eclipse.xtext.util, 
org.eclipse.xtend.lib, 
org.eclipse.emf.common, 
org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional, 
org.eclipse.xtext.ui 

проект com.xxx.lang.errmsg.ui

com.xxx.lang.errmsg, 
com.xxx.lang.errmsg.ide, 
org.eclipse.xtext.ui, 
org.eclipse.xtext.ui.shared, 
org.eclipse.xtext.ui.codetemplates.ui, 
org.eclipse.ui.editors;bundle-version="3.5.0", 
org.eclipse.ui.ide;bundle-version="3.5.0", 
org.eclipse.ui, 
org.eclipse.compare, 
org.eclipse.xtext.builder, 
org.eclipse.xtend.lib;resolution:=optional, 
org.eclipse.xtext.xbase.lib, 
org.eclipse.xtext.xbase.ui 

/Edit2: По этой теме https://bugs.eclipse.org/bugs/show_bug.cgi?id=336217, я также попытался отключить все org.eclipse.jdt * плагинов в конфигурации запуска. Это то, что я получаю http://pastebin.com/Wi0gzceM

+0

Вы должны убедиться, что у вас нет JDT, установленного в Eclipse, в первую очередь. Это приложение RCP, которое вы создаете или просто плагин? –

+0

Я загрузил чистый Eclipse Neon для C/C++. Я попробовал это сначала без моего плагина (в новом проекте не было Java Project Wizard), затем я установил плагин и появился Java Project Wizard. Это редактор, основанный на Xtext. (подсветка синтаксиса, некоторые проверки, быстрые исправления, форматирование). – Smarty77

+0

Вопрос отредактирован. Я попытался предоставить больше информации для решения этой проблемы. – Smarty77

ответ

0

Вы должны удалить зависимости от org.eclipse.xtext.xbase и org.eclipse.xtext.xbase.ui от вашего проекта и проекта пользовательского интерфейса.

Убедитесь, что вы открываете зависимостей подключаемого модуля в Проводнике пакетов, в которых вы не видите org.eclipse.jdt.core. Если это так, есть еще один плагин, имеющий (транзитивную) зависимость. Узнайте, какие и удалить.