Merge remote-tracking branch 'origin/master' into so_structured_project_config

This commit is contained in:
Stefan Oehme 2015-10-09 15:06:18 +02:00
commit 86d26f3d02
6 changed files with 86 additions and 12 deletions

View file

@ -43,6 +43,7 @@ Export-Package: org.eclipse.xtext.xtext.generator,
org.eclipse.xtext.xtext.generator.parser.antlr.splitting.simpleExpressions.util;x-internal:=true,
org.eclipse.xtext.xtext.generator.scoping,
org.eclipse.xtext.xtext.generator.types,
org.eclipse.xtext.xtext.generator.ui.compare,
org.eclipse.xtext.xtext.generator.ui.contentAssist,
org.eclipse.xtext.xtext.generator.ui.labeling,
org.eclipse.xtext.xtext.generator.ui.outline,

View file

@ -0,0 +1,77 @@
/*******************************************************************************
* Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.xtext.xtext.generator.ui.compare
import com.google.inject.Inject
import org.apache.log4j.Logger
import org.eclipse.xtext.xtext.generator.AbstractGeneratorFragment2
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
import org.eclipse.xtext.xtext.generator.model.GuiceModuleAccess
import org.eclipse.xtext.xtext.generator.model.TypeReference
import static extension org.eclipse.xtext.GrammarUtil.*
/**
* Contributes the registration of compare infrastructure.
*
* @author Christian Schneider - Initial contribution and API
*/
class CompareFragment2 extends AbstractGeneratorFragment2 {
private static final Logger log = Logger.getLogger(CompareFragment2);
@Inject
extension XtextGeneratorNaming
override generate() {
if (log.isInfoEnabled()) {
log.info("generating Compare Framework infrastructure");
}
if (projectConfig.eclipsePluginManifest != null) {
projectConfig.eclipsePluginManifest.requiredBundles += "org.eclipse.xtext.ui"
}
new GuiceModuleAccess.BindingFactory()
.addTypeToType(
new TypeReference("org.eclipse.compare.IViewerCreator"),
new TypeReference("org.eclipse.xtext.ui.compare.DefaultViewerCreator")
).contributeTo(language.eclipsePluginGenModule);
if (projectConfig.eclipsePluginPluginXml != null) {
projectConfig.eclipsePluginPluginXml.entries += '''
<extension point="org.eclipse.compare.contentViewers">
<viewer id="«grammar.name».compare.contentViewers"
class="«grammar.eclipsePluginExecutableExtensionFactory»:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
extensions="«language.fileExtensions.join(",")»">
</viewer>
</extension>
<extension point="org.eclipse.compare.contentMergeViewers">
<viewer id="«grammar.name».compare.contentMergeViewers"
class="«grammar.eclipsePluginExecutableExtensionFactory»:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
extensions="«language.fileExtensions.join(",")»" label="«grammar.simpleName» Compare">
</viewer>
</extension>
<extension point="org.eclipse.ui.editors.documentProviders">
<provider id="«grammar.name».editors.documentProviders"
class="«grammar.eclipsePluginExecutableExtensionFactory»:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
extensions="«language.fileExtensions.join(",")»">
</provider>
</extension>
<extension point="org.eclipse.team.core.fileTypes">
«FOR modelFileExtension : language.fileExtensions»
<fileTypes
extension="«modelFileExtension»"
type="text">
</fileTypes>
«ENDFOR»
</extension>
'''
}
}
}

View file

@ -312,9 +312,8 @@ class RuntimeProjectDescriptor extends TestedProjectDescriptor {
}
// provides a compare view
fragment = adapter.FragmentAdapter {
fragment = compare.CompareFragment auto-inject {}
}
fragment = ui.compare.CompareFragment2 auto-inject {}
«ENDIF»
«IF config.uiProject.enabled || config.ideProject.enabled»
// generates a more lightweight Antlr parser and lexer tailored for content assist

View file

@ -112,9 +112,8 @@ Workflow {
}
// provides a compare view
fragment = adapter.FragmentAdapter {
fragment = compare.CompareFragment auto-inject {}
}
fragment = ui.compare.CompareFragment2 auto-inject {}
// generates a more lightweight Antlr parser and lexer tailored for content assist
fragment = adapter.FragmentAdapter {
fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}

View file

@ -118,9 +118,8 @@ Workflow {
}
// provides a compare view
fragment = adapter.FragmentAdapter {
fragment = compare.CompareFragment auto-inject {}
}
fragment = ui.compare.CompareFragment2 auto-inject {}
// generates a more lightweight Antlr parser and lexer tailored for content assist
fragment = adapter.FragmentAdapter {
fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}

View file

@ -115,9 +115,8 @@ Workflow {
}
// provides a compare view
fragment = adapter.FragmentAdapter {
fragment = compare.CompareFragment auto-inject {}
}
fragment = ui.compare.CompareFragment2 auto-inject {}
// generates a more lightweight Antlr parser and lexer tailored for content assist
fragment = adapter.FragmentAdapter {
fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}