Changeset 438


Ignore:
Timestamp:
10/18/15 23:05:09 (5 years ago)
Author:
Mateusz Poszwa
Message:

Ported Framclipse to Xtext 2.8.4

Location:
java/Framclipse
Files:
1 added
3 deleted
12 edited

Legend:

Unmodified
Added
Removed
  • java/Framclipse/com.framsticks.framclipse.ui/META-INF/MANIFEST.MF

    r437 r438  
    1717Bundle-RequiredExecutionEnvironment: JavaSE-1.6
    1818Export-Package: com.framsticks.framclipse.ui.contentassist,
    19  com.framsticks.framclipse.ui.contentassist.antlr
     19 com.framsticks.framclipse.ui.contentassist.antlr,
     20 com.framsticks.framclipse.ui.quickfix
    2021Bundle-Activator: com.framsticks.framclipse.ui.internal.FramScriptActivator
  • java/Framclipse/com.framsticks.framclipse.ui/src/com/framsticks/framclipse/ui/FramScriptSourceViewerConfiguration.java

    r437 r438  
    1212import org.eclipse.jface.text.source.ISourceViewer;
    1313import org.eclipse.swt.widgets.Shell;
    14 import org.eclipse.xtext.parsetree.AbstractNode;
    15 import org.eclipse.xtext.parsetree.CompositeNode;
    16 import org.eclipse.xtext.parsetree.NodeUtil;
    17 import org.eclipse.xtext.parsetree.ParseTreeUtil;
     14import org.eclipse.xtext.nodemodel.ICompositeNode;
     15import org.eclipse.xtext.nodemodel.ILeafNode;
     16import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
    1817import org.eclipse.xtext.resource.XtextResource;
    1918import org.eclipse.xtext.ui.editor.XtextSourceViewerConfiguration;
     
    6261                                        @Override
    6362                                        public String exec(XtextResource state) throws Exception {
    64                                                 CompositeNode root = state.getParseResult().getRootNode();
    65                                                 AbstractNode current = ParseTreeUtil.getCurrentOrFollowingNodeByOffset(root, offset);
    66                                                 EObject semantic = NodeUtil.getNearestSemanticObject(current);
     63                                                ICompositeNode root = state.getParseResult().getRootNode();
     64//                                              AbstractNode current = ParseTreeUtil.getCurrentOrFollowingNodeByOffset(root, offset);
     65                                                ILeafNode current = NodeModelUtils.findLeafNodeAtOffset(root, offset);
     66//                                              EObject semantic = NodeUtil.getNearestSemanticObject(current);
     67                                                EObject semantic = current.getSemanticElement();
    6768
    6869                                                if (semantic instanceof QualifiedExpression) {
  • java/Framclipse/com.framsticks.framclipse.ui/src/com/framsticks/framclipse/ui/contentassist/FramScriptProposalProvider.java

    r437 r438  
    3535
    3636                protected FramScriptProposalCreator(ContentAssistContext contentAssistContext, String ruleName) {
    37                         super(contentAssistContext, ruleName);
     37                        super(contentAssistContext, ruleName, getQualifiedNameConverter());
    3838                        this.cac = contentAssistContext;
    3939                }
  • java/Framclipse/com.framsticks.framclipse/META-INF/MANIFEST.MF

    r437 r438  
    1414 org.eclipse.emf.mwe2.launch;resolution:=optional,
    1515 com.ibm.icu;resolution:=optional,
    16  org.eclipse.xtext.xtend;resolution:=optional,
    1716 org.eclipse.xtext.util,
    1817 org.eclipse.emf.ecore,
    1918 org.eclipse.emf.common,
    2019 org.antlr.runtime,
    21  org.eclipse.core.runtime
     20 org.eclipse.core.runtime,
     21 org.eclipse.xtext.xbase.lib
    2222Import-Package: org.apache.log4j
    2323Bundle-RequiredExecutionEnvironment: JavaSE-1.6
    2424Export-Package: com.framsticks.framclipse,
     25 com.framsticks.framclipse.formatting,
    2526 com.framsticks.framclipse.framScript,
    2627 com.framsticks.framclipse.framScript.impl,
    2728 com.framsticks.framclipse.framScript.util,
    28  com.framsticks.framclipse.parseTreeConstruction,
    2929 com.framsticks.framclipse.parser.antlr,
    3030 com.framsticks.framclipse.parser.antlr.internal,
     31 com.framsticks.framclipse.scoping,
    3132 com.framsticks.framclipse.script,
    3233 com.framsticks.framclipse.script.model,
     34 com.framsticks.framclipse.serializer,
    3335 com.framsticks.framclipse.services,
    3436 com.framsticks.framclipse.validation
    35 Bundle-ClassPath: lib/commons-io-1.4.jar,
    36  lib/xpp3_min-1.1.4c.jar,
    37  lib/xstream-1.3.1.jar,
    38  .
     37Bundle-ClassPath: lib/commons-io-1.4.jar,lib/xpp3_min-1.1.4c.jar,lib/xstream-1.3.1.jar,.
  • java/Framclipse/com.framsticks.framclipse/build.properties

    r437 r438  
    22           res/,\
    33           src-gen/
    4 bin.includes = META-INF/,\
     4bin.includes = model/,\
     5               META-INF/,\
    56               plugin.xml,\
    67               lib/commons-io-1.4.jar,\
  • java/Framclipse/com.framsticks.framclipse/plugin.xml

    r437 r438  
    88       uri = "http://www.framsticks.com/framclipse/FramScript"
    99       class = "com.framsticks.framclipse.framScript.FramScriptPackage"
    10        genModel = "com/framsticks/framclipse/FramScript.genmodel" />
     10       genModel = "model/generated/FramScript.genmodel" />
    1111       
    1212  </extension>
  • java/Framclipse/com.framsticks.framclipse/src/com/framsticks/framclipse/FramScriptValueConverterService.java

    r437 r438  
    66import org.eclipse.xtext.conversion.ValueConverterException;
    77import org.eclipse.xtext.conversion.impl.AbstractToStringConverter;
    8 import org.eclipse.xtext.parsetree.AbstractNode;
     8import org.eclipse.xtext.nodemodel.INode;
    99
    1010public class FramScriptValueConverterService extends DefaultTerminalConverters {
     
    1616
    1717                        @Override
    18                         protected String internalToValue(String s, AbstractNode node)
     18                        protected String internalToValue(String s, INode node)
    1919                                        throws ValueConverterException {
    2020                                if (s.startsWith(":~")) {
  • java/Framclipse/com.framsticks.framclipse/src/com/framsticks/framclipse/GenerateFramScript.mwe2

    r437 r438  
    66
    77var grammarURI = "classpath:/com/framsticks/framclipse/FramScript.xtext"
    8 var file.extensions = "neuro, expdef, style, show, script, inc"
     8var fileExtensions = "neuro, expdef, style, show, script, inc"
    99var projectName = "com.framsticks.framclipse"
    1010var runtimeProject = "../${projectName}"
     11//var generateXtendStub = true
     12var encoding = "UTF-8"
    1113
    1214Workflow {
    1315    bean = StandaloneSetup {
     16                scanClassPath = true
    1417                platformUri = "${runtimeProject}/.."
     18                // The following two lines can be removed, if Xbase is not used.
     19//              registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
     20//              registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
    1521        }
    1622       
     
    2026       
    2127        component = DirectoryCleaner {
     28                directory = "${runtimeProject}/model/generated"
     29        }
     30       
     31        component = DirectoryCleaner {
    2232                directory = "${runtimeProject}.ui/src-gen"
    2333        }
    24        
     34/*
     35        component = DirectoryCleaner {
     36                directory = "${runtimeProject}.tests/src-gen"
     37        }
     38*/
    2539        component = Generator {
    2640                pathRtProject = runtimeProject
    2741                pathUiProject = "${runtimeProject}.ui"
     42//              pathTestProject = "${runtimeProject}.tests"
    2843                projectNameRt = projectName
    2944                projectNameUi = "${projectName}.ui"
    30                
    31                 language = {
     45                encoding = encoding
     46                language = auto-inject {
    3247                        uri = grammarURI
    33                         fileExtensions = file.extensions
    3448                       
    3549                        // Java API to access grammar elements (required by several other fragments)
    36                         fragment = grammarAccess.GrammarAccessFragment {}
     50                        fragment = grammarAccess.GrammarAccessFragment auto-inject {}
    3751                       
    38                         // generates Java API for the generated EPackages
    39                         fragment = ecore.EcoreGeneratorFragment {
     52                        // generates Java API for the generated EPackages
     53                        fragment = ecore.EMFGeneratorFragment auto-inject {}
     54/*                      fragment = ecore.EcoreGeneratorFragment {
    4055                        // referencedGenModels = "uri to genmodel, uri to next genmodel"
    4156                        }
     57*/
    4258                       
    43                         // the serialization component
    44                         fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
     59                        // the old serialization component
     60                        // fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}
    4561                       
    46                         // a custom ResourceFactory for use with EMF
    47                         fragment = resourceFactory.ResourceFactoryFragment {
    48                                 fileExtensions = file.extensions
    49                         }
    50                                
    51                         // the following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/
    52                         fragment = AntlrDelegatingFragment {}
    53                        
    54                         // java-based API for validation
    55                         fragment = validation.JavaValidatorFragment {
    56                 composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
    57                 composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
    58                 // registerForImportedPackages = true
    59             }
    60            
    61                         // scoping and exporting API
    62                         /*
    63                         fragment = scoping.ImportURIScopingFragment {}
    64                         fragment = exporting.SimpleNamesFragment {}
    65                         */
    66                        
    67                         // scoping and exporting API
    68                         fragment = scoping.ImportURIScopingFragment {}
    69                         fragment = exporting.QualifiedNamesFragment {}
    70                        
    71                         // formatter API
    72                         fragment = formatting.FormatterFragment {}
    73 
    74                         // labeling API
    75                         fragment = labeling.LabelProviderFragment {}
    76 
    77                         // outline API
    78                         fragment = outline.TransformerFragment {}
    79                         fragment = outline.OutlineNodeAdapterFactoryFragment {}
    80                         fragment = outline.QuickOutlineFragment {}
    81 
    82                         // java-based API for content assistance
    83                         fragment = contentAssist.JavaBasedContentAssistFragment {}
    84                        
    85                         // the following fragment tries to use the Antlr based content assist
    86                         //     fragment which can be downloaded from http://www.itemis.com
    87                         //     and will be ignored if it's not available.
    88                         fragment = DelegatingGeneratorFragment {
    89                                 delegate = "de.itemis.xtext.antlr.XtextAntlrUiGeneratorFragment"
    90                                 message="You are generating without ANTLR. It is highly recommended to download and use the plugin \'de.itemis.xtext.antlr\' \n\t using the update site http:\//download.itemis.com/updates/."
     62                        // serializer 2.0
     63                        fragment = serializer.SerializerFragment auto-inject {
     64                                generateStub = false
    9165                        }
    9266
    93                         fragment = builder.BuilderIntegrationFragment {}
     67                        // a custom ResourceFactory for use with EMF
     68                        fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
     69                               
     70                        // The antlr parser generator fragment.
     71                        fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
     72                        //  options = {
     73                        //        backtrack = true
     74                        //  }
     75                        }
     76/*
     77                        // Xtend-based API for validation
     78                        fragment = validation.ValidatorFragment auto-inject {
     79*/
     80                        // Java-based API for validation
     81                        fragment = validation.JavaValidatorFragment auto-inject {
     82                        //      composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
     83                        //      composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
     84                        }
    9485
    95                         // project wizard (optional)
    96                         /*
    97                         fragment = projectWizard.SimpleProjectWizardFragment {
    98                                 generatorProjectName = "${projectName}.generator"
    99                                 modelFileExtension = file.extensions
    100                         }
    101                         */
     86                        // old scoping and exporting API
     87                        fragment = scoping.ImportURIScopingFragment auto-inject {}
     88                        fragment = exporting.SimpleNamesFragment auto-inject {}
     89
     90                        // scoping and exporting API
     91//                      fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
     92//                      fragment = exporting.QualifiedNamesFragment auto-inject {}
     93//                      fragment = builder.BuilderIntegrationFragment auto-inject {}
     94
     95                        // generator API
     96//                      fragment = generator.GeneratorFragment auto-inject {}
    10297                       
    103                         // quickfix API
    104                         fragment = quickfix.QuickfixProviderFragment {}                 
     98                        // formatter API
     99                        fragment = formatting.FormatterFragment auto-inject {}
     100
     101                        // labeling API
     102                        fragment = labeling.LabelProviderFragment auto-inject {}
     103
     104                        // outline API
     105//                      fragment = outline.TransformerFragment {}
     106//                      fragment = outline.OutlineNodeAdapterFactoryFragment {}
     107                        fragment = outline.OutlineTreeProviderFragment auto-inject {}
     108                        fragment = outline.QuickOutlineFragment auto-inject {}
     109
     110                        // java-based API for content assistance
     111                        fragment = contentAssist.JavaBasedContentAssistFragment {}
     112/*
     113                        // content assist API
     114                        fragment = contentAssist.ContentAssistFragment auto-inject {}
     115*/
     116                        // generates a more lightweight Antlr parser and lexer tailored for content assist
     117                        fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}
     118/*
     119                        // generates junit test support classes into Generator#pathTestProject
     120                        fragment = junit.Junit4Fragment auto-inject {}
     121
     122                        // rename refactoring
     123                        fragment = refactoring.RefactorElementNameFragment auto-inject {}
     124
     125                        // provides the necessary bindings for java types integration
     126                        fragment = types.TypesGeneratorFragment auto-inject {}
     127
     128                        // generates the required bindings only if the grammar inherits from Xbase
     129                        fragment = xbase.XbaseGeneratorFragment auto-inject {}
     130                       
     131                        // generates the required bindings only if the grammar inherits from Xtype
     132                        fragment = xbase.XtypeGeneratorFragment auto-inject {}
     133
     134                        // provides a preference page for template proposals
     135                        fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
     136
     137                        // provides a compare view
     138                        fragment = compare.CompareFragment auto-inject {}
     139*/
     140                        // quickfix API
     141                        fragment = quickfix.QuickfixProviderFragment auto-inject {}
    105142                }
    106143        }
  • java/Framclipse/com.framsticks.framclipse/src/com/framsticks/framclipse/resource/FramScriptResourceDescription.java

    r437 r438  
    55import org.eclipse.emf.ecore.EObject;
    66import org.eclipse.emf.ecore.resource.Resource;
    7 import org.eclipse.xtext.naming.IQualifiedNameProvider;
     7import org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy;
    88import org.eclipse.xtext.resource.IEObjectDescription;
    99import org.eclipse.xtext.resource.impl.DefaultResourceDescription;
     
    2020
    2121        public FramScriptResourceDescription(Resource resource,
    22                         IQualifiedNameProvider nameProvider) {
    23                 super(resource, nameProvider);
     22                        IDefaultResourceDescriptionStrategy resourceDescriptionStrategy) {
     23                super(resource, resourceDescriptionStrategy);
    2424        }
    2525
  • java/Framclipse/com.framsticks.framclipse/src/com/framsticks/framclipse/resource/FramScriptResourceDescriptionManager.java

    r437 r438  
    22
    33import org.eclipse.emf.ecore.resource.Resource;
     4import org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy;
    45import org.eclipse.xtext.resource.IResourceDescription;
    56import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionManager;
    6 
     7import com.google.inject.Inject;
    78import com.google.inject.Provider;
    89
    910public class FramScriptResourceDescriptionManager extends
    1011                DefaultResourceDescriptionManager {
     12
     13        @Inject
     14        private IDefaultResourceDescriptionStrategy strategy;
    1115
    1216        private static final String CACHE_KEY = FramScriptResourceDescriptionManager.class.getName() + "#getResourceDescription";
     
    1519                return getCache().get(CACHE_KEY, resource, new Provider<IResourceDescription>(){
    1620                        public IResourceDescription get() {
    17                                 return new FramScriptResourceDescription(resource, getNameProvider());
     21                                return new FramScriptResourceDescription(resource, strategy);
    1822                        }});
    1923        }
  • java/Framclipse/com.framsticks.framclipse/src/com/framsticks/framclipse/scoping/FramScriptScopeProvider.java

    r437 r438  
    134134        private IScope filterByArgumentsCount(IScope scope, int size) {
    135135                List<IEObjectDescription> filtered = Lists.newArrayList();
    136                 for (IEObjectDescription desc : scope.getContents()) {
     136                for (IEObjectDescription desc : scope.getAllElements()) {
    137137                        Function function = (Function) desc.getEObjectOrProxy();
    138138                        if (function.getParams().size() == size) {
     
    140140                        }
    141141                }
    142                 return new SimpleScope(scope.getOuterScope(), filtered);
     142                return new SimpleScope(filtered);
    143143        }
    144144       
    145145        private IScope addAliases(IScope scope) {
    146                 Iterable<IEObjectDescription> contents = scope.getContents();
     146                Iterable<IEObjectDescription> contents = scope.getAllElements();
    147147                List<IEObjectDescription> withAliases = Lists.newArrayList(contents);
    148148                for (IEObjectDescription desc : contents) {
     
    152152                        }
    153153                }
    154                 return new SimpleScope(scope.getOuterScope(), withAliases);
     154                return new SimpleScope(withAliases);
    155155        }
    156156
     
    195195       
    196196        protected IScope scope_VariableRef_var(Model model, EReference ref) {
    197                 IScope outerScope = delegateGetScope(model, ref).getOuterScope();
     197//              IScope outerScope = delegateGetScope(model, ref).getOuterScope();
    198198                IScope types = typesScopes.get(getExtension(model));
    199                 return new SimpleScope(outerScope, types.getContents());
     199                return new SimpleScope(types.getAllElements());
    200200        }
    201201
  • java/Framclipse/com.framsticks.framclipse/src/com/framsticks/framclipse/script/XMLConstantProvider.java

    r437 r438  
    77import java.util.Map;
    88
     9import org.antlr.misc.MultiMap;
    910import org.apache.commons.io.IOUtils;
    1011import org.eclipse.core.runtime.ILog;
     
    2021import com.framsticks.framclipse.script.model.Type;
    2122import com.google.common.collect.Maps;
    22 import com.google.common.collect.Multimap;
    23 import com.google.common.collect.Multimaps;
    2423import com.google.inject.Inject;
    2524import com.thoughtworks.xstream.XStream;
     
    6867        private Map<String, Map<String, Type>> createTypeMappings(Framscontext framscontext, Framscript framscript) {
    6968                Map<String, Map<String, Type>> types = Maps.newHashMap();
    70                 Multimap<String, String> ext2ctx = ext2Ctx(framscontext);
    71                 Multimap<String, Type> ctx2type = ctx2Type(framscript);
     69                MultiMap<String, String> ext2ctx = ext2Ctx(framscontext);
     70                MultiMap<String, Type> ctx2type = ctx2Type(framscript);
    7271                for (String ext : ext2ctx.keySet()) {
    7372                        HashMap<String, Type> map = new HashMap<String, Type>();
     
    8281        }
    8382
    84         private Multimap<String, String> ext2Ctx(Framscontext framscontext) {
    85                 Multimap<String, String> ext2ctx = Multimaps.newHashMultimap();
     83        private MultiMap<String, String> ext2Ctx(Framscontext framscontext) {
     84                MultiMap<String, String> ext2ctx = new MultiMap<String, String>();
    8685                for (File file : framscontext.getFiles()) {
    8786                        String ext = file.getPattern();
     
    8988                        if (file.getCode() != null) {
    9089                                for (Context context : file.getCode().getContexts()) {
    91                                         ext2ctx.put(ext, context.getName());
     90                                        ext2ctx.map(ext, context.getName());
    9291                                }
    9392                        }
     
    9695        }
    9796
    98         private Multimap<String, Type> ctx2Type(Framscript framscript) {
    99                 Multimap<String, Type> ctx2type = Multimaps.newHashMultimap();
     97        private MultiMap<String, Type> ctx2Type(Framscript framscript) {
     98                MultiMap<String, Type> ctx2type = new MultiMap<String, Type>();
    10099                for (Type type : framscript.getTypes()) {
    101                         ctx2type.put(type.getContext(), type);
     100                        ctx2type.map(type.getContext(), type);
    102101                }
    103102                return ctx2type;
Note: See TracChangeset for help on using the changeset viewer.