mirror of
https://github.com/sigmasternchen/xtext-core
synced 2025-03-16 16:58:56 +00:00
pull generateStub/inheritImplementation to super classes
This commit is contained in:
parent
b2060c6151
commit
9f4a7ff41a
11 changed files with 43 additions and 79 deletions
|
@ -0,0 +1,15 @@
|
|||
/*******************************************************************************
|
||||
* 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
|
||||
|
||||
import org.eclipse.xtext.xtext.generator.AbstractStubGeneratingFragment
|
||||
import org.eclipse.xtend.lib.annotations.Accessors
|
||||
|
||||
abstract class AbstractInheritingFragment extends AbstractStubGeneratingFragment {
|
||||
@Accessors boolean inheritImplementation = true
|
||||
}
|
|
@ -7,10 +7,9 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.xtext.xtext.generator
|
||||
|
||||
/**
|
||||
* @noimplement
|
||||
*/
|
||||
interface IGeneratesStub {
|
||||
def boolean isGenerateStub()
|
||||
def void setGenerateStub(boolean generateStub)
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtend.lib.annotations.Accessors
|
||||
|
||||
abstract class AbstractStubGeneratingFragment extends AbstractXtextGeneratorFragment {
|
||||
@Accessors boolean generateStub = true
|
||||
}
|
|
@ -24,6 +24,7 @@ import org.eclipse.xtext.formatting2.FormatterPreferences
|
|||
import org.eclipse.xtext.formatting2.IFormattableDocument
|
||||
import org.eclipse.xtext.formatting2.IFormatter2
|
||||
import org.eclipse.xtext.preferences.IPreferenceValuesProvider
|
||||
import org.eclipse.xtext.xtext.generator.AbstractStubGeneratingFragment
|
||||
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
|
||||
import org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessExtensions
|
||||
import org.eclipse.xtext.xtext.generator.model.FileAccessFactory
|
||||
|
@ -35,19 +36,14 @@ import org.eclipse.xtext.xtext.generator.util.GenModelUtil2
|
|||
import static extension org.eclipse.xtext.GrammarUtil.*
|
||||
import static extension org.eclipse.xtext.xtext.generator.model.TypeReference.*
|
||||
import static extension org.eclipse.xtext.xtext.generator.util.GrammarUtil2.*
|
||||
import org.eclipse.xtend.lib.annotations.Accessors
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
||||
|
||||
class Formatter2Fragment2 extends AbstractXtextGeneratorFragment implements IGeneratesStub {
|
||||
class Formatter2Fragment2 extends AbstractStubGeneratingFragment {
|
||||
|
||||
@Inject FileAccessFactory fileAccessFactory
|
||||
|
||||
@Inject extension XtextGeneratorNaming
|
||||
@Inject extension GrammarAccessExtensions
|
||||
|
||||
@Accessors boolean generateStub = true
|
||||
|
||||
|
||||
protected def TypeReference getFormatter2Stub(Grammar grammar) {
|
||||
new TypeReference(grammar.runtimeBasePackage + '.formatting2.' + getSimpleName(grammar) + 'Formatter')
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import org.eclipse.xtext.util.CancelIndicator
|
|||
import org.eclipse.xtext.validation.CheckMode
|
||||
import org.eclipse.xtext.validation.IResourceValidator
|
||||
import org.eclipse.xtext.validation.Issue
|
||||
import org.eclipse.xtext.xtext.generator.AbstractStubGeneratingFragment
|
||||
import org.eclipse.xtext.xtext.generator.CodeConfig
|
||||
import org.eclipse.xtext.xtext.generator.Issues
|
||||
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
|
||||
|
@ -35,10 +36,8 @@ import org.eclipse.xtext.xtext.generator.model.TypeReference
|
|||
import org.eclipse.xtext.xtext.generator.xbase.XbaseUsageDetector
|
||||
|
||||
import static extension org.eclipse.xtext.xtext.generator.model.TypeReference.*
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
||||
|
||||
class GeneratorFragment2 extends AbstractXtextGeneratorFragment implements IGeneratesStub {
|
||||
class GeneratorFragment2 extends AbstractStubGeneratingFragment {
|
||||
|
||||
@Inject CodeConfig codeConfig
|
||||
|
||||
|
@ -56,11 +55,8 @@ class GeneratorFragment2 extends AbstractXtextGeneratorFragment implements IGene
|
|||
@Accessors(PUBLIC_SETTER)
|
||||
boolean generateXtendMain = false
|
||||
|
||||
@Accessors(PUBLIC_SETTER)
|
||||
boolean generateStub = true
|
||||
|
||||
override boolean isGenerateStub() {
|
||||
!grammar.inheritsXbase && generateStub
|
||||
!grammar.inheritsXbase && super.generateStub
|
||||
}
|
||||
|
||||
def boolean isGenerateJavaMain() {
|
||||
|
|
|
@ -18,6 +18,7 @@ import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider
|
|||
import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider
|
||||
import org.eclipse.xtext.scoping.impl.DelegatingScopeProvider
|
||||
import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider
|
||||
import org.eclipse.xtext.xtext.generator.AbstractInheritingFragment
|
||||
import org.eclipse.xtext.xtext.generator.CodeConfig
|
||||
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
|
||||
import org.eclipse.xtext.xtext.generator.model.FileAccessFactory
|
||||
|
@ -29,25 +30,17 @@ import static org.eclipse.xtext.GrammarUtil.*
|
|||
|
||||
import static extension org.eclipse.xtext.xtext.generator.model.TypeReference.*
|
||||
import static extension org.eclipse.xtext.xtext.generator.util.GrammarUtil2.*
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
||||
|
||||
class ImportNamespacesScopingFragment2 extends AbstractXtextGeneratorFragment implements IGeneratesStub {
|
||||
class ImportNamespacesScopingFragment2 extends AbstractInheritingFragment {
|
||||
|
||||
@Inject extension XtextGeneratorNaming
|
||||
@Inject extension XbaseUsageDetector
|
||||
@Inject CodeConfig codeConfig
|
||||
@Inject FileAccessFactory fileAccessFactory
|
||||
|
||||
@Accessors
|
||||
boolean generateStub = true
|
||||
|
||||
|
||||
@Accessors
|
||||
boolean ignoreCase = false
|
||||
|
||||
@Accessors
|
||||
boolean inheritImplementation = true
|
||||
|
||||
protected def TypeReference getScopeProviderClass(Grammar grammar) {
|
||||
if (grammar.name == 'org.eclipse.xtext.xbase.Xbase')
|
||||
return 'org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider'.typeRef
|
||||
|
|
|
@ -53,9 +53,8 @@ import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer
|
|||
import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer
|
||||
import org.eclipse.xtext.serializer.sequencer.ITransientValueService
|
||||
import org.eclipse.xtext.util.Strings
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtext.xtext.generator.AbstractStubGeneratingFragment
|
||||
import org.eclipse.xtext.xtext.generator.CodeConfig
|
||||
import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
||||
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
|
||||
import org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessExtensions
|
||||
import org.eclipse.xtext.xtext.generator.model.FileAccessFactory
|
||||
|
@ -69,7 +68,7 @@ import static extension org.eclipse.xtext.serializer.analysis.SerializationConte
|
|||
import static extension org.eclipse.xtext.xtext.generator.model.TypeReference.*
|
||||
import static extension org.eclipse.xtext.xtext.generator.util.GenModelUtil2.*
|
||||
|
||||
class SerializerFragment2 extends AbstractXtextGeneratorFragment implements IGeneratesStub {
|
||||
class SerializerFragment2 extends AbstractStubGeneratingFragment {
|
||||
|
||||
private static def <K, V> Map<K, V> toMap(Iterable<Pair<K, V>> items) {
|
||||
val result = newLinkedHashMap
|
||||
|
@ -90,7 +89,6 @@ class SerializerFragment2 extends AbstractXtextGeneratorFragment implements IGen
|
|||
@Inject CodeConfig codeConfig
|
||||
|
||||
@Accessors boolean generateDebugData = false
|
||||
@Accessors boolean generateStub = true
|
||||
@Accessors boolean generateSupportForDeprecatedContextObject = false
|
||||
|
||||
boolean detectSyntheticTerminals = true
|
||||
|
|
|
@ -10,7 +10,6 @@ package org.eclipse.xtext.xtext.generator.ui.contentAssist
|
|||
import com.google.common.collect.Sets
|
||||
import com.google.inject.Inject
|
||||
import org.eclipse.emf.ecore.EObject
|
||||
import org.eclipse.xtend.lib.annotations.Accessors
|
||||
import org.eclipse.xtend2.lib.StringConcatenationClient
|
||||
import org.eclipse.xtext.AbstractElement
|
||||
import org.eclipse.xtext.AbstractRule
|
||||
|
@ -19,6 +18,7 @@ import org.eclipse.xtext.Assignment
|
|||
import org.eclipse.xtext.CrossReference
|
||||
import org.eclipse.xtext.Grammar
|
||||
import org.eclipse.xtext.RuleCall
|
||||
import org.eclipse.xtext.xtext.generator.AbstractInheritingFragment
|
||||
import org.eclipse.xtext.xtext.generator.CodeConfig
|
||||
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
|
||||
import org.eclipse.xtext.xtext.generator.model.FileAccessFactory
|
||||
|
@ -27,8 +27,6 @@ import org.eclipse.xtext.xtext.generator.model.TypeReference
|
|||
|
||||
import static extension org.eclipse.xtext.GrammarUtil.*
|
||||
import static extension org.eclipse.xtext.xtext.generator.util.GrammarUtil2.*
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
||||
|
||||
/**
|
||||
* Contributes the 'Abstract...ProposalProvider' and '...ProposalProvider' stub,
|
||||
|
@ -36,7 +34,7 @@ import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
|||
*
|
||||
* @author Christian Schneider - Initial contribution and API
|
||||
*/
|
||||
class ContentAssistFragment2 extends AbstractXtextGeneratorFragment implements IGeneratesStub {
|
||||
class ContentAssistFragment2 extends AbstractInheritingFragment {
|
||||
|
||||
@Inject
|
||||
extension XtextGeneratorNaming
|
||||
|
@ -47,12 +45,6 @@ class ContentAssistFragment2 extends AbstractXtextGeneratorFragment implements I
|
|||
@Inject
|
||||
FileAccessFactory fileAccessFactory
|
||||
|
||||
@Accessors
|
||||
boolean generateStub = true;
|
||||
|
||||
@Accessors
|
||||
boolean inheritImplementation = true
|
||||
|
||||
def protected TypeReference getProposalProviderClass(Grammar g) {
|
||||
return new TypeReference(
|
||||
g.eclipsePluginBasePackage + ".contentassist." + g.simpleName + "ProposalProvider"
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
package org.eclipse.xtext.xtext.generator.ui.labeling
|
||||
|
||||
import com.google.inject.Inject
|
||||
import org.eclipse.xtend.lib.annotations.Accessors
|
||||
import org.eclipse.xtext.Grammar
|
||||
import org.eclipse.xtext.xtext.generator.AbstractStubGeneratingFragment
|
||||
import org.eclipse.xtext.xtext.generator.CodeConfig
|
||||
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
|
||||
import org.eclipse.xtext.xtext.generator.model.FileAccessFactory
|
||||
|
@ -18,15 +18,13 @@ import org.eclipse.xtext.xtext.generator.model.TypeReference
|
|||
import org.eclipse.xtext.xtext.generator.xbase.XbaseUsageDetector
|
||||
|
||||
import static extension org.eclipse.xtext.GrammarUtil.*
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
||||
|
||||
/**
|
||||
* Contributes the Labeling provider stub, either in Xtend or Java language.
|
||||
*
|
||||
* @author Christian Schneider - Initial contribution and API
|
||||
*/
|
||||
class LabelProviderFragment2 extends AbstractXtextGeneratorFragment implements IGeneratesStub {
|
||||
class LabelProviderFragment2 extends AbstractStubGeneratingFragment {
|
||||
|
||||
private static val XBASE_LABEL_PROVIDER =
|
||||
"org.eclipse.xtext.xbase.ui.labeling.XbaseLabelProvider"
|
||||
|
@ -46,9 +44,6 @@ class LabelProviderFragment2 extends AbstractXtextGeneratorFragment implements I
|
|||
@Inject
|
||||
FileAccessFactory fileAccessFactory
|
||||
|
||||
@Accessors
|
||||
private boolean generateStub = true;
|
||||
|
||||
def protected TypeReference getEObjectLabelProviderClass(Grammar g) {
|
||||
return new TypeReference(
|
||||
g.eclipsePluginBasePackage + ".labeling." + g.simpleName + "LabelProvider"
|
||||
|
|
|
@ -8,30 +8,26 @@
|
|||
package org.eclipse.xtext.xtext.generator.ui.outline
|
||||
|
||||
import com.google.inject.Inject
|
||||
import org.eclipse.xtend.lib.annotations.Accessors
|
||||
import org.eclipse.xtext.Grammar
|
||||
import org.eclipse.xtext.GrammarUtil
|
||||
import org.eclipse.xtext.xtext.generator.AbstractStubGeneratingFragment
|
||||
import org.eclipse.xtext.xtext.generator.CodeConfig
|
||||
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
|
||||
import org.eclipse.xtext.xtext.generator.model.FileAccessFactory
|
||||
import org.eclipse.xtext.xtext.generator.model.GuiceModuleAccess
|
||||
import org.eclipse.xtext.xtext.generator.model.TypeReference
|
||||
|
||||
import static extension org.eclipse.xtext.xtext.generator.model.TypeReference.typeRef
|
||||
import org.eclipse.xtext.xtext.generator.CodeConfig
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
||||
|
||||
/**
|
||||
* @author Christian Schneider - Initial contribution and API
|
||||
*/
|
||||
class OutlineTreeProviderFragment2 extends AbstractXtextGeneratorFragment implements IGeneratesStub {
|
||||
class OutlineTreeProviderFragment2 extends AbstractStubGeneratingFragment {
|
||||
|
||||
@Inject CodeConfig codeConfig
|
||||
@Inject FileAccessFactory fileAccessFactory
|
||||
@Inject extension XtextGeneratorNaming
|
||||
|
||||
@Accessors
|
||||
boolean generateStub = true;
|
||||
|
||||
protected def TypeReference getOutlineTreeProviderClass(Grammar grammar) {
|
||||
new TypeReference(grammar.eclipsePluginBasePackage
|
||||
+ ".outline." + GrammarUtil.getSimpleName(grammar) + "OutlineTreeProvider"
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
package org.eclipse.xtext.xtext.generator.ui.quickfix
|
||||
|
||||
import javax.inject.Inject
|
||||
import org.eclipse.xtend.lib.annotations.Accessors
|
||||
import org.eclipse.xtext.Grammar
|
||||
import org.eclipse.xtext.xtext.generator.AbstractInheritingFragment
|
||||
import org.eclipse.xtext.xtext.generator.CodeConfig
|
||||
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
|
||||
import org.eclipse.xtext.xtext.generator.model.FileAccessFactory
|
||||
|
@ -19,15 +19,13 @@ import org.eclipse.xtext.xtext.generator.validation.ValidatorNaming
|
|||
|
||||
import static extension org.eclipse.xtext.GrammarUtil.*
|
||||
import static extension org.eclipse.xtext.xtext.generator.util.GrammarUtil2.*
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
||||
|
||||
/**
|
||||
* Contributes the Quickfix provider stub, either in Xtend or Java language.
|
||||
*
|
||||
* @author Christian Schneider - Initial contribution and API
|
||||
*/
|
||||
class QuickfixProviderFragment2 extends AbstractXtextGeneratorFragment implements IGeneratesStub {
|
||||
class QuickfixProviderFragment2 extends AbstractInheritingFragment {
|
||||
|
||||
@Inject
|
||||
extension XtextGeneratorNaming
|
||||
|
@ -41,12 +39,6 @@ class QuickfixProviderFragment2 extends AbstractXtextGeneratorFragment implement
|
|||
@Inject
|
||||
FileAccessFactory fileAccessFactory
|
||||
|
||||
@Accessors
|
||||
private boolean generateStub = true;
|
||||
|
||||
@Accessors
|
||||
private boolean inheritImplementation;
|
||||
|
||||
def protected TypeReference getQuickfixProviderClass(Grammar g) {
|
||||
return new TypeReference(
|
||||
g.eclipsePluginBasePackage + ".quickfix." + g.simpleName + "QuickfixProvider"
|
||||
|
|
|
@ -11,11 +11,11 @@ import com.google.inject.Inject
|
|||
import java.util.ArrayList
|
||||
import java.util.List
|
||||
import org.eclipse.emf.ecore.EPackage
|
||||
import org.eclipse.xtend.lib.annotations.Accessors
|
||||
import org.eclipse.xtext.GeneratedMetamodel
|
||||
import org.eclipse.xtext.Grammar
|
||||
import org.eclipse.xtext.validation.AbstractDeclarativeValidator
|
||||
import org.eclipse.xtext.validation.ComposedChecks
|
||||
import org.eclipse.xtext.xtext.generator.AbstractInheritingFragment
|
||||
import org.eclipse.xtext.xtext.generator.CodeConfig
|
||||
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
|
||||
import org.eclipse.xtext.xtext.generator.model.FileAccessFactory
|
||||
|
@ -26,22 +26,14 @@ import static org.eclipse.xtext.GrammarUtil.*
|
|||
|
||||
import static extension org.eclipse.xtext.xtext.generator.model.TypeReference.*
|
||||
import static extension org.eclipse.xtext.xtext.generator.util.GrammarUtil2.*
|
||||
import org.eclipse.xtext.xtext.generator.AbstractXtextGeneratorFragment
|
||||
import org.eclipse.xtext.xtext.generator.IGeneratesStub
|
||||
|
||||
class ValidatorFragment2 extends AbstractXtextGeneratorFragment implements IGeneratesStub {
|
||||
class ValidatorFragment2 extends AbstractInheritingFragment {
|
||||
|
||||
@Inject extension ValidatorNaming
|
||||
@Inject extension XtextGeneratorNaming
|
||||
@Inject FileAccessFactory fileAccessFactory
|
||||
@Inject CodeConfig codeConfig
|
||||
|
||||
@Accessors
|
||||
boolean generateStub = true
|
||||
|
||||
@Accessors
|
||||
boolean inheritImplementation = true
|
||||
|
||||
val List<String> composedChecks = newArrayList
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue