Changeset 446


Ignore:
Timestamp:
Jun 22, 2010 7:46:46 PM (14 years ago)
Author:
Anya Helene Bagge
Message:
 
Location:
trunk/MagnoliaPlugin
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagnoliaPlugin/plugin.xml

    r424 r446  
    1515   </extension>
    1616   <extension
     17         point="org.eclipse.imp.runtime.languageDescription">
     18      <language
     19            description="Experimental language specification language"
     20            extensions="mxa"
     21            language="MetaXa">
     22      </language>
     23   </extension>
     24   <extension
    1725         point="org.eclipse.imp.runtime.parser">
    1826      <parser
     
    2230   </extension>
    2331   <extension
     32         point="org.eclipse.imp.runtime.parser">
     33      <parser
     34            class="org.magnolialang.eclipse.editor.ParseController"
     35            language="MetaXa">
     36      </parser>
     37   </extension>
     38   <extension
    2439         point="org.eclipse.imp.runtime.tokenColorer">
    2540      <tokenColorer
    2641            class="org.magnolialang.eclipse.editor.TokenColorer"
    2742            language="Magnolia">
     43      </tokenColorer>
     44   </extension>
     45   <extension
     46         point="org.eclipse.imp.runtime.tokenColorer">
     47      <tokenColorer
     48            class="org.magnolialang.eclipse.editor.TokenColorer"
     49            language="MetaXa">
    2850      </tokenColorer>
    2951   </extension>
     
    175197            default="true"
    176198            icon="icons/magnolia-16.png"
    177             extensions="mg"
    178             filenames="*.mg"
     199            extensions="mg,mxa"
     200            filenames="*.mg,*.mxa"
    179201            class="org.magnolialang.eclipse.editor.MagnoliaEditor"
    180202            id="magnolia_eclipse.editors.magnolia">
  • trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/ParseController.java

    r442 r446  
    2929
    3030public class ParseController implements IParseController {
    31         private final ModuleLoader loader = new ModuleLoader();
     31        private ModuleLoader loader;
    3232
    3333       
     
    3737        private IPath path;
    3838        private MagnoliaProjectManager manager;
    39         public static final String LANGUAGE_NAME = "Magnolia";
     39        private String languageName;
    4040
    41         public static final Language LANGUAGE = LanguageRegistry
    42                         .findLanguage(LANGUAGE_NAME);
     41        private Language language;
    4342
    4443        public ParseController() {
     
    5958
    6059        public Language getLanguage() {
    61                 return LANGUAGE;
     60                return language;
    6261        }
    6362
     
    8584                if(manager != null)
    8685                        manager.removeEditedModule(this);
     86       
     87                if(filePath.getFileExtension().equals("mg"))
     88                        this.languageName = "Magnolia";
     89                else if(filePath.getFileExtension().equals("mxa"))
     90                        this.languageName = "MetaXa";
     91                else
     92                        throw new ImplementationError("Unknown file extension " + filePath.getFileExtension());
    8793               
     94                this.language = LanguageRegistry.findLanguage(languageName);
    8895                this.path = filePath;
    8996                this.handler = handler;
     
    9198                this.manager = MagnoliaProjectManager.getProjectManager(project);
    9299
     100                this.loader = new ModuleLoader(languageName, manager);
    93101                manager.addEditedModule(this);
    94102        }
     
    99107                try{
    100108                        handler.clearMessages();
    101                         monitor.beginTask("parsing Magnolia", 1);
     109                        monitor.beginTask("parsing " + languageName, 1);
    102110                       
    103111                        URI uri = ProjectURIResolver.constructProjectURI(project, path);
     
    115123                }
    116124                catch(FactTypeUseException e){
    117                         MagnoliaPlugin.getInstance().logException("parsing magnolia failed", e);
     125                        MagnoliaPlugin.getInstance().logException("parsing " + languageName + " failed", e);
    118126                }
    119127                catch(IOException e){
    120                         MagnoliaPlugin.getInstance().logException("parsing magnolia failed", e);
     128                        MagnoliaPlugin.getInstance().logException("parsing " + languageName + " failed", e);
    121129                }
    122130                catch(SyntaxError e){
  • trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/TokenColorer.java

    r355 r446  
    2525        public static final String AMBIGUOUS = "AMB";
    2626        public static final String ERROR = "SyntaxError";
     27        public static final String MXAID = "MXaID";
     28        public static final String MXATRANSITION = "MXaTransition";
     29        public static final String MXASTRINGLITERAL = "MXaStringLiteral";
     30        public static final String MXATOKEN = "Token";
     31        public static final String MXAMETAVAR = "MetaVar";
     32        public static final String MXAVAR = "MXaVar";
    2733        public static final List<String> categories = Arrays.asList(
    2834                        TYPE, IDENTIFIER, VARIABLE, CONSTANT, COMMENT, TODO, FUNCTION, PROCEDURE, KEYWORD,
    29                         AMBIGUOUS, ERROR);
     35                        AMBIGUOUS, ERROR,
     36                        MXAID, MXATRANSITION, MXASTRINGLITERAL, MXATOKEN, MXAMETAVAR, MXAVAR);
    3037        private final TextAttribute normal;
    3138
     
    4855                map.put(AMBIGUOUS,new TextAttribute(null, display.getSystemColor(SWT.COLOR_YELLOW), SWT.NONE));
    4956                map.put(ERROR,new TextAttribute(null, display.getSystemColor(SWT.COLOR_RED), SWT.NONE));
     57                map.put(MXAID,new TextAttribute(display.getSystemColor(SWT.COLOR_BLACK), null, SWT.NONE));
     58                map.put(MXASTRINGLITERAL,new TextAttribute(display.getSystemColor(SWT.COLOR_DARK_RED), null, SWT.NONE));
     59                map.put(MXATRANSITION,new TextAttribute(display.getSystemColor(SWT.COLOR_DARK_BLUE), null, SWT.NONE));
     60                map.put(MXATOKEN,new TextAttribute(display.getSystemColor(SWT.COLOR_BLACK), null, SWT.BOLD));
     61                map.put(MXAMETAVAR,new TextAttribute(display.getSystemColor(SWT.COLOR_DARK_CYAN), null, SWT.BOLD));
     62                map.put(MXAVAR,new TextAttribute(display.getSystemColor(SWT.COLOR_DARK_CYAN), null, SWT.BOLD));
    5063        }
    5164
  • trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/TokenIterator.java

    r355 r446  
    6060                                if(TokenColorer.categories.contains(sort))
    6161                                        category = sort;
     62                                else
     63                                        category = ProductionAdapter.getCategory(prod);
    6264                                if(TokenColorer.ERROR.equals(ProductionAdapter.getConstructorName(prod)))
    6365                                        category = TokenColorer.ERROR;
  • trunk/MagnoliaPlugin/src/org/magnolialang/load/ModuleLoader.java

    r439 r446  
    3737        public ModuleLoader(MagnoliaProjectManager manager){
    3838                this(new ModuleParser(), manager);
     39        }
     40       
     41        public ModuleLoader(String languageName, MagnoliaProjectManager manager){
     42                this(new ModuleParser(languageName), manager);
    3943        }
    4044       
Note: See TracChangeset for help on using the changeset viewer.