1 package jp.sourceforge.moreemacs.handlers;
\r
3 import jp.sourceforge.moreemacs.utils.CodePointIterator;
\r
4 import jp.sourceforge.moreemacs.utils.DocumentCharSequence;
\r
6 import org.eclipse.jface.text.BadLocationException;
\r
7 import org.eclipse.jface.text.IDocument;
\r
9 public final class ForwardWordExecution extends TextEditorExecution {
\r
12 public void execute() throws BadLocationException {
\r
13 int current = cursor.offset();
\r
14 cursor.move(getNextWordPosition(doc, current));
\r
17 public static int getNextWordPosition(IDocument doc, int offset) throws BadLocationException {
\r
18 CharSequence seq = new DocumentCharSequence(doc, offset, doc.getLength()-offset);
\r
19 CodePointIterator itr = new CodePointIterator(seq);
\r
22 for(; itr.hasNext(); ) {
\r
23 int codePoint = itr.next();
\r
24 if (Character.isLetterOrDigit(codePoint)) {
\r
29 for(; itr.hasNext(); ) {
\r
30 if (!Character.isLetterOrDigit(itr.next())) {
\r
36 return offset + itr.index();
\r