Changeset 449
- Timestamp:
- Jul 4, 2010 11:30:41 AM (14 years ago)
- Location:
- trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/MagnoliaEditor.java
r448 r449 4 4 import org.eclipse.jface.action.Action; 5 5 import org.eclipse.jface.action.IAction; 6 import org.eclipse.swt.widgets.Composite; 6 7 import org.eclipse.ui.texteditor.ITextEditorActionConstants; 7 8 import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds; … … 11 12 public MagnoliaEditor() { 12 13 super(); 13 // ((ParseController)getParseController()).setEditor(this);14 14 // used for the expression breakpoints management 15 15 //setEditorContextMenuId("rascal.editor.contextMenu"); 16 16 } 17 17 18 public void createPartControl(Composite parent) { 19 super.createPartControl(parent); 20 if(getParseController() != null) 21 ((ParseController)getParseController()).setEditor(this); 22 23 } 18 24 protected void createActions() { 19 25 super.createActions(); -
trunk/MagnoliaPlugin/src/org/magnolialang/eclipse/editor/StaticCheckModelListener.java
r448 r449 1 1 package org.magnolialang.eclipse.editor; 2 2 3 import org.eclipse.core.resources.IFile; 4 import org.eclipse.core.resources.IMarker; 5 import org.eclipse.core.resources.IProject; 6 import org.eclipse.core.resources.IResource; 7 import org.eclipse.core.resources.IWorkspace; 8 import org.eclipse.core.resources.IWorkspaceRunnable; 9 import org.eclipse.core.runtime.CoreException; 10 import org.eclipse.core.runtime.IPath; 3 11 import org.eclipse.core.runtime.IProgressMonitor; 4 12 import org.eclipse.imp.parser.IModelListener; 5 13 import org.eclipse.imp.parser.IParseController; 6 14 import org.eclipse.imp.pdb.facts.IConstructor; 15 import org.magnolialang.eclipse.MagnoliaPlugin; 7 16 import org.magnolialang.env.MagnoliaEnvironment; 17 import org.magnolialang.errors.CompilationError; 8 18 import org.magnolialang.magnolia.StaticChecker; 9 19 import org.magnolialang.manager.MagnoliaProjectManager; … … 22 32 public void run() { 23 33 monitor.beginTask("Checking Magnolia module " + parseController.getPath().toString(), 3); 34 IWorkspaceRunnable action = new IWorkspaceRunnable() { 35 public void run(IProgressMonitor monitor) throws CoreException { 36 doUpdate((ParseController)parseController, monitor); 37 } 38 }; 24 39 25 ParseController ctrl = (ParseController)parseController; 40 try { 41 IProject project = parseController.getProject().getRawProject(); 42 project.getWorkspace().run(action, project, IWorkspace.AVOID_UPDATE, monitor); 43 } catch (CoreException e) { 44 MagnoliaPlugin.getInstance().logException(e.getMessage(), e); 45 } 46 47 } 48 49 private void doUpdate(ParseController ctrl, IProgressMonitor monitor) { 26 50 MagnoliaProjectManager manager = ctrl.getManager(); 27 String moduleName = manager.findEditedModule(ctrl); 28 IConstructor tree = manager.getModuleTree(moduleName, true); 29 monitor.worked(1); 30 MagnoliaEnvironment env = manager.getModuleEnv(moduleName); 31 monitor.worked(1); 51 try { 52 String moduleName = manager.findEditedModule(ctrl); 53 if(moduleName != null) { 54 IConstructor tree = manager.getModuleTree(moduleName, true); 55 monitor.worked(1); 56 MagnoliaEnvironment env = manager.getModuleEnv(moduleName); 57 monitor.worked(1); 32 58 33 checker.checkModule(tree, env); 34 monitor.worked(1); 59 checker.checkModule(tree, env); 60 monitor.worked(1); 61 } 62 else 63 monitor.worked(3); 64 } 65 catch(CompilationError ce) { 66 manager.reportError(ce); 67 } 68 69 IPath path = parseController.getPath(); 70 IProject project = parseController.getProject().getRawProject(); 71 72 monitor.beginTask("Marking errors and warnings in " + path, 1); 73 IFile res = (IFile) project.findMember(path, false); 74 75 try { 76 res.refreshLocal(IResource.DEPTH_ZERO, monitor); 77 } catch (CoreException e) { 78 } 79 monitor.worked(1); 80 35 81 } 36 82 };
Note:
See TracChangeset
for help on using the changeset viewer.