1 package jp.sourceforge.moreemacs.handlers;
3 import jp.sourceforge.moreemacs.utils.CodePointIterator;
4 import jp.sourceforge.moreemacs.utils.DocumentCharSequence;
6 import org.eclipse.jface.text.BadLocationException;
7 import org.eclipse.jface.text.IDocument;
9 public final class BackwardWordExecution extends TextEditorExecution {
11 public void execute() throws BadLocationException {
12 int current = cursor.offset();
13 cursor.move(getPreviousWordPosition(doc, current));
16 public static int getPreviousWordPosition(IDocument doc, int offset) throws BadLocationException {
17 CharSequence seq = new DocumentCharSequence(doc, 0, offset);
18 CodePointIterator itr = new CodePointIterator(seq, seq.length());
20 for(; itr.hasPrevious(); ) {
21 if (Character.isLetterOrDigit(itr.previous())) {
26 for(; itr.hasPrevious(); ) {
27 if (!Character.isLetterOrDigit(itr.previous())) {