From: <ez...@us...> - 2014-05-10 19:08:57
|
Revision: 23536 http://sourceforge.net/p/jedit/svn/23536 Author: ezust Date: 2014-05-10 19:08:54 +0000 (Sat, 10 May 2014) Log Message: ----------- #526 Patch for Feature Request 286 Goto Relative offsets Modified Paths: -------------- jEdit/trunk/org/gjt/sp/jedit/textarea/JEditTextArea.java Modified: jEdit/trunk/org/gjt/sp/jedit/textarea/JEditTextArea.java =================================================================== --- jEdit/trunk/org/gjt/sp/jedit/textarea/JEditTextArea.java 2014-05-09 14:45:56 UTC (rev 23535) +++ jEdit/trunk/org/gjt/sp/jedit/textarea/JEditTextArea.java 2014-05-10 19:08:54 UTC (rev 23536) @@ -27,16 +27,23 @@ import java.awt.AWTEvent; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.util.regex.Pattern; -import java.awt.event.MouseEvent; import javax.swing.JMenuItem; -import org.gjt.sp.jedit.*; -import org.gjt.sp.jedit.options.GlobalOptions; +import org.gjt.sp.jedit.Abbrevs; +import org.gjt.sp.jedit.EditBus; import org.gjt.sp.jedit.EditBus.EBHandler; +import org.gjt.sp.jedit.GUIUtilities; +import org.gjt.sp.jedit.Macros; +import org.gjt.sp.jedit.ServiceManager; +import org.gjt.sp.jedit.TextUtilities; +import org.gjt.sp.jedit.View; +import org.gjt.sp.jedit.jEdit; +import org.gjt.sp.jedit.msg.PositionChanging; import org.gjt.sp.jedit.msg.PropertiesChanged; - -import org.gjt.sp.jedit.msg.PositionChanging; +import org.gjt.sp.jedit.options.GlobalOptions; //}}} /** @@ -251,7 +258,8 @@ //{{{ showGoToLineDialog() method /** * Displays the 'go to line' dialog box, and moves the caret to the - * specified line number. + * specified line number, or moves the caret back or forward by the offset provided. + * * @since jEdit 2.7pre2 */ public void showGoToLineDialog() @@ -263,9 +271,24 @@ try { - int lineNumber = Integer.parseInt(line) - 1; + int lineNumber = 0; + if (Pattern.matches("-\\d+", line) || Pattern.matches("\\+\\d+", line)) + { + int offset = Integer.parseInt(line); + lineNumber = caretLine + offset; + } + else + { + lineNumber = Integer.parseInt(line) - 1; + } + if(lineNumber > --maxLine) lineNumber = maxLine; + + if(lineNumber < 0) + lineNumber = 0; + + EditBus.send(new PositionChanging(this)); setCaretPosition(getLineStartOffset(lineNumber)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |