OSDN Git Service

delete executable permission
[moreemacs/moreemacs.git] / jp.sourceforge.moreemacs / src / jp / sourceforge / moreemacs / handlers / ForwardWordExecution.java
1 package jp.sourceforge.moreemacs.handlers;\r
2 \r
3 import jp.sourceforge.moreemacs.utils.CodePointIterator;\r
4 import jp.sourceforge.moreemacs.utils.DocumentCharSequence;\r
5 \r
6 import org.eclipse.jface.text.BadLocationException;\r
7 import org.eclipse.jface.text.IDocument;\r
8 \r
9 public final class ForwardWordExecution extends TextEditorExecution {\r
10 \r
11         @Override\r
12         public void execute() throws BadLocationException {\r
13                 int current = cursor.offset();\r
14                 cursor.move(getNextWordPosition(doc, current));\r
15         }\r
16 \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
20 \r
21 \r
22             for(; itr.hasNext(); ) {\r
23                 int codePoint = itr.next();\r
24             if (Character.isLetterOrDigit(codePoint)) {\r
25                 itr.previous();\r
26                 break;\r
27             }\r
28             }\r
29         for(; itr.hasNext(); ) {\r
30             if (!Character.isLetterOrDigit(itr.next())) {\r
31                 itr.previous();\r
32                 break;\r
33             }\r
34         }\r
35         \r
36         return offset + itr.index();\r
37         }\r
38         \r
39 }\r