[Pydev-cvs] org.python.pydev/src_dltk_console/org/python/pydev/dltk/console/ui/internal ScriptCons
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2008-03-31 01:50:04
|
Update of /cvsroot/pydev/org.python.pydev/src_dltk_console/org/python/pydev/dltk/console/ui/internal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24659/src_dltk_console/org/python/pydev/dltk/console/ui/internal Modified Files: ScriptConsoleViewer.java ScriptConsoleDocumentListener.java Log Message: Added hyperlinks to tracebacks in console Index: ScriptConsoleDocumentListener.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src_dltk_console/org/python/pydev/dltk/console/ui/internal/ScriptConsoleDocumentListener.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ScriptConsoleDocumentListener.java 27 Mar 2008 13:05:16 -0000 1.7 --- ScriptConsoleDocumentListener.java 31 Mar 2008 01:50:08 -0000 1.8 *************** *** 10,13 **** --- 10,14 ---- import org.eclipse.core.runtime.Assert; + import org.eclipse.debug.ui.console.IConsoleLineTracker; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.Document; *************** *** 16,20 **** --- 17,23 ---- import org.eclipse.jface.text.IDocumentListener; import org.eclipse.jface.text.IDocumentPartitioner; + import org.eclipse.jface.text.Region; import org.eclipse.jface.text.TextUtilities; + import org.python.pydev.core.docutils.PySelection; import org.python.pydev.core.docutils.StringUtils; import org.python.pydev.dltk.console.InterpreterResponse; *************** *** 70,73 **** --- 73,81 ---- */ private PyAutoIndentStrategy strategy = new PyAutoIndentStrategy(); + + /** + * Console line trackers (for hyperlinking) + */ + private List<IConsoleLineTracker> consoleLineTrackers; public PyAutoIndentStrategy getIndentStrategy(){ *************** *** 156,160 **** public ScriptConsoleDocumentListener(IScriptConsoleViewer2ForDocumentListener viewer, ICommandHandler handler, ScriptConsolePrompt prompt, ! ScriptConsoleHistory history) { this.prompt = prompt; --- 164,168 ---- public ScriptConsoleDocumentListener(IScriptConsoleViewer2ForDocumentListener viewer, ICommandHandler handler, ScriptConsolePrompt prompt, ! ScriptConsoleHistory history, List<IConsoleLineTracker> consoleLineTrackers) { this.prompt = prompt; *************** *** 169,172 **** --- 177,182 ---- this.doc = null; + this.consoleLineTrackers = consoleLineTrackers; + } *************** *** 243,246 **** --- 253,276 ---- } appendText(out); + + PySelection ps = new PySelection(doc, start); + int cursorLine = ps.getCursorLine(); + int numberOfLines = doc.getNumberOfLines(); + + //right after appending the text, let's notify line trackers + for(int i=cursorLine;i<numberOfLines;i++){ + try{ + int offset = ps.getLineOffset(i); + int endOffset = ps.getEndLineOffset(i); + + Region region = new Region(offset, endOffset-offset); + + for(IConsoleLineTracker lineTracker:this.consoleLineTrackers){ + lineTracker.lineAppended(region); + } + }catch(Exception e){ + PydevPlugin.log(e); + } + } } Index: ScriptConsoleViewer.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src_dltk_console/org/python/pydev/dltk/console/ui/internal/ScriptConsoleViewer.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ScriptConsoleViewer.java 30 Mar 2008 21:45:12 -0000 1.13 --- ScriptConsoleViewer.java 31 Mar 2008 01:50:08 -0000 1.14 *************** *** 490,494 **** this.styleProvider = styleProvider; this.history = console.getHistory(); ! this.listener = new ScriptConsoleDocumentListener(this, console, console.getPrompt(), console.getHistory()); this.listener.setDocument(getDocument()); }else{ --- 490,497 ---- this.styleProvider = styleProvider; this.history = console.getHistory(); ! ! this.listener = new ScriptConsoleDocumentListener(this, console, console.getPrompt(), ! console.getHistory(), console.getLineTrackers()); ! this.listener.setDocument(getDocument()); }else{ |