Merge pull request #348 from eclipse/msp/regenerateXtend

Regenerated Xbase and Xtend with new generator
This commit is contained in:
Miro Spönemann 2015-07-10 11:36:18 +02:00
commit 3a78c9c842
5 changed files with 19 additions and 13 deletions

View file

@ -24,4 +24,5 @@ Import-Package: com.ibm.icu.text;version="4.0.0",
org.apache.commons.logging;version="1.0.4";resolution:=optional;x-installation:=greedy,
org.apache.log4j;version="1.2.15"
Export-Package: org.eclipse.xtext.xtext.generator,
org.eclipse.xtext.xtext.generator.model
org.eclipse.xtext.xtext.generator.model,
org.eclipse.xtext.xtext.generator.xbase

View file

@ -142,7 +142,7 @@ class XtextGenerator extends AbstractWorkflowComponent2 implements IGuiceAwareGe
protected def generateExecutableExtensionFactory(LanguageConfig2 language) {
if (projectConfig.eclipsePluginSrcGen !== null)
templates.createEclipsePluginExecutableExtensionFactory(language).writeTo(projectConfig.eclipsePluginSrcGen)
templates.createEclipsePluginExecutableExtensionFactory(language, languageConfigs.head).writeTo(projectConfig.eclipsePluginSrcGen)
}
protected def generateManifests() {

View file

@ -111,7 +111,6 @@ class XtextGeneratorTemplates {
«usedGrammar.naming.runtimeSetup».doSetup();
«ENDFOR»
«IF langConfig.grammar.usedGrammars.isEmpty»
// register default ePackages
if (!«'org.eclipse.emf.ecore.resource.Resource'.typeRef».Factory.Registry.INSTANCE.getExtensionToFactoryMap().containsKey("ecore"))
«'org.eclipse.emf.ecore.resource.Resource'.typeRef».Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(
@ -154,7 +153,7 @@ class XtextGeneratorTemplates {
ELSE
»configure«
ENDIF
»«key.name ?: key.type.simpleMethodName
»«key.name?.replace('.', '$') ?: key.type.simpleMethodName
»«IF value.expression !== null && !value.provider»ToInstance«ENDIF»'''
}
@ -207,6 +206,7 @@ class XtextGeneratorTemplates {
val superClass = langConfig.runtimeGenModule.superClass ?: runtimeDefaultModule
val javaFile = new JavaFileAccess(runtimeGenModule, codeConfig)
javaFile.encodingProvider = encodingProvider
javaFile.importNestedTypeThreshold = JavaFileAccess.DONT_IMPORT_NESTED_TYPES
javaFile.typeComment = '''
/**
@ -268,6 +268,7 @@ class XtextGeneratorTemplates {
val superClass = langConfig.eclipsePluginGenModule.superClass ?: eclipsePluginDefaultModule
val javaFile = new JavaFileAccess(eclipsePluginGenModule, codeConfig)
javaFile.encodingProvider = encodingProvider
javaFile.importNestedTypeThreshold = JavaFileAccess.DONT_IMPORT_NESTED_TYPES
javaFile.typeComment = '''
/**
@ -322,9 +323,8 @@ class XtextGeneratorTemplates {
return file
}
def JavaFileAccess createEclipsePluginExecutableExtensionFactory(LanguageConfig2 langConfig) {
val it = langConfig.naming
val javaFile = new JavaFileAccess(eclipsePluginExecutableExtensionFactory, codeConfig)
def JavaFileAccess createEclipsePluginExecutableExtensionFactory(LanguageConfig2 langConfig, LanguageConfig2 activatorLanguage) {
val javaFile = new JavaFileAccess(langConfig.naming.eclipsePluginExecutableExtensionFactory, codeConfig)
javaFile.encodingProvider = encodingProvider
javaFile.typeComment = '''
@ -334,16 +334,16 @@ class XtextGeneratorTemplates {
*/
'''
javaFile.javaContent = '''
public class «eclipsePluginExecutableExtensionFactory.simpleName» extends «'org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory'.typeRef» {
public class «langConfig.naming.eclipsePluginExecutableExtensionFactory.simpleName» extends «'org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory'.typeRef» {
@Override
protected «'org.osgi.framework.Bundle'.typeRef» getBundle() {
return «eclipsePluginActivator».getInstance().getBundle();
return «activatorLanguage.naming.eclipsePluginActivator».getInstance().getBundle();
}
@Override
protected «Injector» getInjector() {
return «eclipsePluginActivator».getInstance().getInjector(«eclipsePluginActivator».«langConfig.grammar.name.toUpperCase.replaceAll('\\.', '_')»);
return «activatorLanguage.naming.eclipsePluginActivator».getInstance().getInjector(«activatorLanguage.naming.eclipsePluginActivator».«langConfig.grammar.name.toUpperCase.replaceAll('\\.', '_')»);
}
}

View file

@ -19,6 +19,8 @@ import org.eclipse.xtext.xtext.generator.CodeConfig
class JavaFileAccess extends TextFileAccess {
public static val DONT_IMPORT_NESTED_TYPES = Integer.MAX_VALUE
val Map<String, String> imports = newHashMap
val TypeReference javaType
@ -28,6 +30,9 @@ class JavaFileAccess extends TextFileAccess {
@Accessors
CharSequence typeComment
@Accessors
int importNestedTypeThreshold = 8
@Accessors
boolean markedAsGenerated
@ -64,7 +69,7 @@ class JavaFileAccess extends TextFileAccess {
else
usableName = simpleName + '.' + usableName
if (!CodeGenUtil.isJavaDefaultType(simpleName)
&& !(i == simpleNames.length - 1 && i > 0 && simpleName.length <= 8)) {
&& !(i > 0 && simpleName.length <= importNestedTypeThreshold)) {
val importable = typeRef.packageName + '.' + simpleNames.subList(0, i + 1).join('.')
val imported = imports.get(usableName)
if (imported === null) {

View file

@ -85,7 +85,7 @@ class XbaseGeneratorFragment2 extends AbstractGeneratorFragment2 {
addEclipsePluginGuiceBindings(language)
if (projectConfig.eclipsePluginPluginXml !== null)
addEclipsePluginExtensions(language)
if (!projectConfig.runtimeSrc.containsXtendFile(language.jvmModelInferrer))
if (generateXtendInferrer && !projectConfig.runtimeSrc.containsXtendFile(language.jvmModelInferrer))
doGenerateXtendInferrer(language)
if (projectConfig.runtimeManifest !== null) {
@ -202,7 +202,7 @@ class XbaseGeneratorFragment2 extends AbstractGeneratorFragment2 {
'org.eclipse.xtext.xbase.ui.imports.InteractiveUnresolvedTypeResolver'.typeRef)
.addTypeToType('org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider'.typeRef,
'org.eclipse.xtext.xbase.ui.contentassist.ImportingTypesProposalProvider'.typeRef)
.addTypeToType(' org.eclipse.xtext.ui.editor.templates.XtextTemplateContextType'.typeRef,
.addTypeToType('org.eclipse.xtext.ui.editor.templates.XtextTemplateContextType'.typeRef,
'org.eclipse.xtext.xbase.ui.templates.XbaseTemplateContextType'.typeRef)
} else {
bindingFactory