@Override protected int getFrom(EditorBuffer buffer) { return buffer.getCursor(); } @Override
@Override protected int getTo(EditorBuffer buffer) { return buffer.getCursor(); } };
int getCurrentPosition() { return buffer.getCursor(); }
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { int cursor = buffer.getCursor(); if (cursor > 0) { buffer.moveLeftBy(cursor); } } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { editor.killBuffer.setLength(0); while (editor.buffer.getCursor() > 0) { editor.killBuffer.appendCodePoint(buffer.del()); } editor.killBuffer.reverse(); } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { if (buffer.getCursor() < buffer.getSize()) { char c = buffer.charAt(buffer.getCursor()); if (Character.isUpperCase(c)) { c = Character.toLowerCase(c); } else if (Character.isLowerCase(c)) { c = Character.toUpperCase(c); } buffer.moveRight(c); if (buffer.getCursor() > editor.getCursorBound()) { buffer.moveLeft(); } } } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { int cursor = editor.getCursorBound() - buffer.getCursor(); if (cursor > 0) { buffer.moveRightBy(cursor); } } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { if (buffer.getCursor() < editor.getCursorBound()) { buffer.moveRight(); } } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { int cursor = buffer.getCursor() - 1; editor.killBuffer.setLength(0); while (cursor > 0 && buffer.charAt(cursor) != ' ') { editor.killBuffer.append(buffer.charAt(cursor--)); } while (cursor > 0 && editor.buffer.charAt(cursor) == ' ') { editor.killBuffer.append(buffer.charAt(cursor--)); } editor.killBuffer.reverse(); } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { int a = Math.min(count, buffer.getSize() - buffer.getCursor()); while (a-- > 0) { buffer.moveRight((char)c); } buffer.moveLeft(); } }
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { editor.killBuffer.setLength(0); boolean chars = false; while (true) { int cursor = buffer.getCursor(); if (cursor > 0) { if (buffer.charAt(cursor - 1) == ' ') { if (!chars) { editor.killBuffer.appendCodePoint(buffer.del()); } else { break; } } else { editor.killBuffer.appendCodePoint(buffer.del()); chars = true; } } else { break; } } editor.killBuffer.reverse(); } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { int count = 0; while (buffer.moveRight()) { count++; } editor.killBuffer.setLength(0); while (count-- > 0) { editor.killBuffer.appendCodePoint(buffer.del()); } editor.killBuffer.reverse(); if (buffer.getCursor() > editor.getCursorBound()) { buffer.moveLeft(); } } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { int cursor = buffer.getCursor(); int pos = cursor; while (pos > 0) { char c = buffer.charAt(pos - 1); if ((atBeginning && Character.isLetterOrDigit(c)) || (!atBeginning && !Character.isLetterOrDigit(c))) { break; } else { pos--; } } while (pos > 0) { char c = buffer.charAt(pos - 1); if ((atBeginning && !Character.isLetterOrDigit(c)) || (!atBeginning && Character.isLetterOrDigit(c))) { break; } else { pos--; } } if (pos < cursor) { buffer.moveLeftBy(cursor - pos); } } }
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { int size = editor.buffer.getSize(); int cursor = editor.buffer.getCursor(); editor.killBuffer.setLength(0); while (cursor < size && editor.buffer.charAt(cursor) != ' ') { editor.killBuffer.append(editor.buffer.charAt(cursor++)); } while (cursor < size && editor.buffer.charAt(cursor) == ' ') { editor.killBuffer.append(editor.buffer.charAt(cursor++)); } } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { int count = 0; boolean chars = false; while (true) { if (buffer.getCursor() < buffer.getSize()) { char c = buffer.charAt(buffer.getCursor()); if (!Character.isLetterOrDigit(c)) { if (!chars) { count++; buffer.moveRight(); } else { break; } } else { chars = true; count++; buffer.moveRight(); } } else { break; } } editor.killBuffer.setLength(0); while (count-- > 0) { editor.killBuffer.appendCodePoint(buffer.del()); } editor.killBuffer.reverse(); } };
@Override String execute(Editor editor, EditorBuffer buffer, int[] sequence, boolean flush) throws IOException { buffer.moveRightBy(buffer.getSize() - buffer.getCursor()); buffer.replace(""); return null; } };
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { int tmp = count; while (tmp > 0 && buffer.moveRight()) { tmp--; } while (tmp++ < count) { buffer.del(); } if (buffer.getCursor() > editor.getCursorBound()) { buffer.moveLeft(); } } }
@Override void perform(Editor editor, EditorBuffer buffer) throws IOException { if (buffer.getSize() > 2) { int pos = buffer.getCursor(); if (pos > 0) { if (pos < buffer.getSize()) { if (buffer.moveLeft()) { char a = buffer.charAt(pos - 1); char b = buffer.charAt(pos); buffer.moveRight(b); // Should be assertion buffer.moveRight(a); // Should be assertion // A bit not great : need to find a better way to do that... if (editor.console.getMode() == Mode.VI_MOVE && buffer.getCursor() > editor.getCursorBound()) { buffer.moveLeft(); } } } else { if (buffer.moveLeft() && buffer.moveLeft()) { char a = buffer.charAt(pos - 2); char b = buffer.charAt(pos - 1); buffer.moveRight(b); // Should be assertion buffer.moveRight(a); // Should be assertion } } } } } };