|  | /* | 
|  | * Copyright (c) 2011 Google Inc. | 
|  | * | 
|  | * 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 | 
|  | * | 
|  | * Generated by Xtext | 
|  | */ | 
|  | module com.google.eclipse.protobuf.Protobuf | 
|  |  | 
|  | import org.eclipse.emf.mwe.utils.* | 
|  | import org.eclipse.xtext.generator.* | 
|  | import org.eclipse.xtext.ui.generator.* | 
|  |  | 
|  | var grammarURI = "classpath:/com/google/eclipse/protobuf/Protobuf.xtext" | 
|  | var file.extensions = "proto, protodevel" | 
|  | var projectName = "com.google.eclipse.protobuf" | 
|  | var runtimeProject = "../${projectName}" | 
|  |  | 
|  | Workflow { | 
|  | bean = StandaloneSetup { | 
|  | platformUri = "${runtimeProject}/.." | 
|  | } | 
|  |  | 
|  | component = DirectoryCleaner { | 
|  | directory = "${runtimeProject}/src-gen" | 
|  | } | 
|  |  | 
|  | component = DirectoryCleaner { | 
|  | directory = "${runtimeProject}.ui/src-gen" | 
|  | } | 
|  |  | 
|  | component = ProtobufGenerator { | 
|  | pathRtProject = runtimeProject | 
|  | pathUiProject = "${runtimeProject}.ui" | 
|  | projectNameRt = projectName | 
|  | projectNameUi = "${projectName}.ui" | 
|  | language = { | 
|  | uri = grammarURI | 
|  | fileExtensions = file.extensions | 
|  |  | 
|  | // Java API to access grammar elements (required by several other fragments) | 
|  | fragment = grammarAccess.GrammarAccessFragment {} | 
|  |  | 
|  | // generates Java API for the generated EPackages | 
|  | fragment = ecore.EcoreGeneratorFragment { | 
|  | // referencedGenModels = "uri to genmodel, uri to next genmodel" | 
|  | } | 
|  |  | 
|  | // Serializer 2.0 | 
|  | fragment = serializer.SerializerFragment { | 
|  | generateStub = false | 
|  | } | 
|  |  | 
|  | // the serialization component | 
|  | // fragment = parseTreeConstructor.ParseTreeConstructorFragment {} | 
|  |  | 
|  | // a custom ResourceFactory for use with EMF | 
|  | fragment = resourceFactory.ResourceFactoryFragment { | 
|  | fileExtensions = file.extensions | 
|  | } | 
|  |  | 
|  | // The antlr parser generator fragment. | 
|  | fragment = parser.antlr.XtextAntlrGeneratorFragment { | 
|  | // options = { | 
|  | //  backtrack = true | 
|  | // } | 
|  | } | 
|  |  | 
|  | // java-based API for validation | 
|  | fragment = validation.JavaValidatorFragment { | 
|  | // composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" | 
|  | // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" | 
|  | // registerForImportedPackages = true | 
|  | } | 
|  |  | 
|  | // scoping and exporting API | 
|  | // fragment = scoping.ImportURIScopingFragment {} | 
|  | // fragment = exporting.SimpleNamesFragment {} | 
|  |  | 
|  | // scoping and exporting API | 
|  | fragment = scoping.ImportNamespacesScopingFragment {} | 
|  | fragment = exporting.QualifiedNamesFragment {} | 
|  | fragment = builder.BuilderIntegrationFragment {} | 
|  |  | 
|  | // formatter API | 
|  | fragment = formatting.FormatterFragment {} | 
|  |  | 
|  | // labeling API | 
|  | fragment = labeling.LabelProviderFragment {} | 
|  |  | 
|  | // outline API | 
|  | fragment = outline.OutlineTreeProviderFragment {} | 
|  | fragment = outline.QuickOutlineFragment {} | 
|  |  | 
|  | // quickfix API | 
|  | fragment = quickfix.QuickfixProviderFragment {} | 
|  |  | 
|  | // rename refactoring | 
|  | fragment = refactoring.RefactorElementNameFragment {} | 
|  |  | 
|  | // content assist API | 
|  | fragment = contentAssist.JavaBasedContentAssistFragment {} | 
|  |  | 
|  | // generates a more lightweight Antlr parser and lexer tailored for content assist | 
|  | fragment = parser.antlr.XtextAntlrUiGeneratorFragment { | 
|  | // options = { | 
|  | //   backtrack = true | 
|  | // } | 
|  | } | 
|  |  | 
|  | // project wizard (optional) | 
|  | // fragment = projectWizard.SimpleProjectWizardFragment { | 
|  | // 		generatorProjectName = "${projectName}.generator" | 
|  | //		modelFileExtension = file.extensions | 
|  | // } | 
|  | } | 
|  | } | 
|  | } |