1 package jp.sourceforge.moreemacs.handlers;
\r
3 import org.eclipse.jface.text.BadLocationException;
\r
5 public final class TransposeWordsExecution extends TextEditorExecution {
\r
7 public void execute() throws BadLocationException {
\r
8 if(!textEditor.isEditable()) {
\r
12 int current = cursor.offset();
\r
13 int previousBegin = BackwardWordExecution.getPreviousWordPosition(doc, current);
\r
14 int previousEnd = ForwardWordExecution.getNextWordPosition(doc, previousBegin);
\r
15 int nextEnd = ForwardWordExecution.getNextWordPosition(doc, current);
\r
16 int nextBegin = BackwardWordExecution.getPreviousWordPosition(doc, nextEnd);
\r
18 if(nextBegin <= previousEnd) {
\r
22 String previous = doc.get(previousBegin, previousEnd-previousBegin);
\r
23 String simbols = doc.get(previousEnd, nextBegin-previousEnd);
\r
24 String next = doc.get(nextBegin, nextEnd-nextBegin);
\r
26 doc.replace(previousBegin,
\r
27 nextEnd-previousBegin,
\r
28 next+simbols+previous);
\r