2016-06-27 101 views
1

我用Xtext 2.9.1創建了編輯器,現在我想讓它獨立於JDT。我遵循本指南https://eclipse.org/Xtext/documentation/307_special_languages.htmlXtext項目JDT獨立

但它似乎沒有工作。這是我的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項目嚮導可用後仍...

/編輯: 提供更多的信息,這是項目的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

首先,您需要確保您沒有在Eclipse中安裝JDT。它是您正在構建的RCP應用程序還是僅僅是一個插件? –

+0

我爲C/C++下載了乾淨的Eclipse Neon。我首先嚐試了沒有我的插件(新項目中沒有可用的Java項目嚮導),然後我安裝了插件並出現了Java Project Wizard。它是一個基於Xtext的編輯器。 (語法高亮,一些驗證,快速修復,格式化)。 – Smarty77

+0

問題已編輯。我試圖提供更多信息來解決此問題。 – Smarty77

回答

0

您必須從運行時和UI項目中刪除org.eclipse.xtext.xbaseorg.eclipse.xtext.xbase.ui的依賴關係。

確保您是否在Package Explorer中打開了在列表中未看到org.eclipse.jdt.core的Plug-in Dependencies。如果是這樣,則有另一個插件具有(傳遞)依賴性。找出並刪除。