Thread: [Pydev-cvs] org.python.pydev/src/org/python/pydev/editor PyEdit.java,1.65,1.66 PyPartitionScanner.ja
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2005-09-28 00:01:44
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1096/src/org/python/pydev/editor Modified Files: PyEdit.java PyPartitionScanner.java Log Message: Index: PyEdit.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/PyEdit.java,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -d -r1.65 -r1.66 *** PyEdit.java 24 Sep 2005 16:30:13 -0000 1.65 --- PyEdit.java 28 Sep 2005 00:01:33 -0000 1.66 *************** *** 18,21 **** --- 18,22 ---- import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; + import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; *************** *** 209,214 **** PyPartitionScanner.checkPartitionScanner(document); ! parser = new PyParser(this); ! parser.addParseListener(this); --- 210,214 ---- PyPartitionScanner.checkPartitionScanner(document); ! checkAndCreateParserIfNeeded(); *************** *** 285,288 **** --- 285,308 ---- } + /** + * Checks if the parser exists. If it doesn't, creates it. + */ + private void checkAndCreateParserIfNeeded() { + if(parser == null){ + parser = new PyParser(this); + parser.addParseListener(this); + } + } + + + @Override + protected void doSetInput(IEditorInput input) throws CoreException { + super.doSetInput(input); + IDocument document = getDocument(input); + checkAndCreateParserIfNeeded(); + if(document != null){ + parser.setDocument(document); + } + } /** *************** *** 515,519 **** * Removes all the error markers */ ! public void parserChanged(SimpleNode root, IFile file, IDocument doc) { // Remove all the error markers IEditorInput input = getEditorInput(); --- 535,539 ---- * Removes all the error markers */ ! public void parserChanged(SimpleNode root, IAdaptable file, IDocument doc) { // Remove all the error markers IEditorInput input = getEditorInput(); *************** *** 521,546 **** if(file != null){ ! filePath = file.getLocation(); ! ! }else{ ! //all this is just to get the file path ! if (input instanceof IFileEditorInput) { ! IFile file1 = ((IFileEditorInput) input).getFile(); ! filePath = file1.getLocation(); ! } else if (input instanceof IStorageEditorInput) ! try { ! filePath = ((IStorageEditorInput) input).getStorage().getFullPath(); filePath = filePath.makeAbsolute(); ! } catch (CoreException e2) { ! PydevPlugin.log(IStatus.ERROR, "unexpected error getting path", e2); } - - else if (input instanceof ILocationProvider) { - filePath = ((ILocationProvider) input).getPath(input); - filePath = filePath.makeAbsolute(); - - } else { - PydevPlugin.log(IStatus.ERROR, "unexpected type of editor input " + input.getClass().toString(), null); } } --- 541,569 ---- if(file != null){ ! IResource fileAdapter = (IResource) file.getAdapter(IResource.class); ! if(fileAdapter != null){ ! filePath = fileAdapter.getLocation(); ! }else{ ! //all this is just to get the file path ! if (input instanceof IFileEditorInput) { ! IFile file1 = ((IFileEditorInput) input).getFile(); ! filePath = file1.getLocation(); ! ! } else if (input instanceof IStorageEditorInput) ! try { ! filePath = ((IStorageEditorInput) input).getStorage().getFullPath(); ! filePath = filePath.makeAbsolute(); ! } catch (CoreException e2) { ! PydevPlugin.log(IStatus.ERROR, "unexpected error getting path", e2); ! } ! ! else if (input instanceof ILocationProvider) { ! filePath = ((ILocationProvider) input).getPath(input); filePath = filePath.makeAbsolute(); ! ! } else { ! PydevPlugin.log(IStatus.ERROR, "unexpected type of editor input " + input.getClass().toString(), null); } } } *************** *** 576,582 **** * generates an error marker on the document */ ! public void parserError(Throwable error, IFile original, IDocument doc) { try { ! original.deleteMarkers(IMarker.PROBLEM, false, 1); int errorStart; int errorEnd; --- 599,613 ---- * generates an error marker on the document */ ! public void parserError(Throwable error, IAdaptable original, IDocument doc) { try { ! if(original == null){ ! return; ! } ! IResource fileAdapter = (IResource) original.getAdapter(IResource.class); ! if(fileAdapter == null){ ! return; ! } ! ! fileAdapter.deleteMarkers(IMarker.PROBLEM, false, 1); int errorStart; int errorEnd; *************** *** 622,626 **** map.put(IMarker.CHAR_END, new Integer(errorEnd)); map.put(IMarker.TRANSIENT, Boolean.valueOf(true)); ! MarkerUtilities.createMarker(original, map, IMarker.PROBLEM); } catch (CoreException e1) { --- 653,657 ---- map.put(IMarker.CHAR_END, new Integer(errorEnd)); map.put(IMarker.TRANSIENT, Boolean.valueOf(true)); ! MarkerUtilities.createMarker(fileAdapter, map, IMarker.PROBLEM); } catch (CoreException e1) { Index: PyPartitionScanner.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/PyPartitionScanner.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** PyPartitionScanner.java 30 Aug 2005 14:19:38 -0000 1.10 --- PyPartitionScanner.java 28 Sep 2005 00:01:33 -0000 1.11 *************** *** 21,24 **** --- 21,25 ---- import org.eclipse.jface.text.rules.SingleLineRule; import org.eclipse.jface.text.rules.Token; + import org.python.pydev.plugin.PydevPlugin; /** *************** *** 100,104 **** } if (!(partitioner instanceof PyPartitioner)){ ! throw new RuntimeException("Partitioner should be subclass of PyPartitioner. It is "+partitioner.getClass()); } } --- 101,105 ---- } if (!(partitioner instanceof PyPartitioner)){ ! PydevPlugin.log("Partitioner should be subclass of PyPartitioner. It is "+partitioner.getClass()); } } |