public int moveCursor(int delta) { int prev = cursor; setCursor(cursor + delta); return cursor - prev; }
@Override public void apply(Readline.Interaction interaction) { LineBuffer buf = interaction.buffer().copy(); buf.setCursor(findPos(buf)); interaction.refresh(buf); interaction.resume(); }
/** * Redraw the current line. */ public void redraw() { LineBuffer toto = new LineBuffer(); toto.insert(Helper.toCodePoints(currentPrompt)); toto.insert(buffer.toArray()); toto.setCursor(currentPrompt.length() + buffer.getCursor()); LineBuffer abc = new LineBuffer(); abc.update(toto, conn.stdoutHandler(), size.x()); }
/** * Redraw the current line. */ public void redraw() { LineBuffer toto = new LineBuffer(); toto.insert(Helper.toCodePoints(currentPrompt)); toto.insert(buffer.toArray()); toto.setCursor(currentPrompt.length() + buffer.getCursor()); LineBuffer abc = new LineBuffer(); abc.update(toto, conn.stdoutHandler(), size.x()); }
@Test public void testT() { TestTerminal screen = new TestTerminal(); LineBuffer curr = new LineBuffer().insert("abcdefg").setCursor(3); curr.update(new LineBuffer().insert("abc"), screen, 4); screen.assertCodePoints("\033[K\r\033[1B\033[K\033[1C\033[1C\033[1C\033[1A").assertEmpty(); }
@Test public void testS() { TestTerminal screen = new TestTerminal(); LineBuffer curr = new LineBuffer().insert("abcdefg").setCursor(2); curr.update(new LineBuffer().insert("ab"), screen, 4); screen.assertCodePoints("\033[K\r\033[1B\033[K\033[1C\033[1C\033[1A").assertEmpty(); }
@Test public void testInsert() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'c'); buffer.setCursor(1); buffer.insert('b'); assertEquals("abc", buffer.toString()); assertEquals(2, buffer.getCursor()); assertEquals(3, buffer.getSize()); }
@Test public void testInsertArray() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'd'); buffer.setCursor(1); buffer.insert('b', 'c'); assertEquals("abcd", buffer.toString()); assertEquals(3, buffer.getCursor()); assertEquals(4, buffer.getSize()); }
@Test public void testInsertArray() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'd'); buffer.setCursor(1); buffer.insert('b', 'c'); assertEquals("abcd", buffer.toString()); assertEquals(3, buffer.getCursor()); assertEquals(4, buffer.getSize()); }
@Test public void deleteAt2() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); assertEquals(2, buffer.delete(-2)); assertEquals(2, buffer.getSize()); assertEquals(0, buffer.getCursor()); assertEquals("cd", buffer.toString()); }
@Test public void deleteAt2() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); assertEquals(2, buffer.delete(-2)); assertEquals(2, buffer.getSize()); assertEquals(0, buffer.getCursor()); assertEquals("cd", buffer.toString()); }
@Test public void deleteAt3() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); assertEquals(2, buffer.delete(-3)); assertEquals(2, buffer.getSize()); assertEquals(0, buffer.getCursor()); assertEquals("cd", buffer.toString()); }
@Test public void deleteAt1() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); assertEquals(1, buffer.delete(-1)); assertEquals(3, buffer.getSize()); assertEquals(1, buffer.getCursor()); assertEquals("acd", buffer.toString()); }
@Test public void deleteAt6() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); assertEquals(2, buffer.delete(3)); assertEquals(2, buffer.getSize()); assertEquals(2, buffer.getCursor()); assertEquals("ab", buffer.toString()); }
@Test public void deleteAt5() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); assertEquals(2, buffer.delete(2)); assertEquals(2, buffer.getSize()); assertEquals(2, buffer.getCursor()); assertEquals("ab", buffer.toString()); }
@Test public void deleteAt5() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); assertEquals(2, buffer.delete(2)); assertEquals(2, buffer.getSize()); assertEquals(2, buffer.getCursor()); assertEquals("ab", buffer.toString()); }
@Test public void deleteAt1() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); assertEquals(1, buffer.delete(-1)); assertEquals(3, buffer.getSize()); assertEquals(1, buffer.getCursor()); assertEquals("acd", buffer.toString()); }
@Test public void deleteAt6() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); assertEquals(2, buffer.delete(3)); assertEquals(2, buffer.getSize()); assertEquals(2, buffer.getCursor()); assertEquals("ab", buffer.toString()); }
@Test public void setSize() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); buffer.setSize(3); assertEquals(3, buffer.getSize()); assertEquals(2, buffer.getCursor()); buffer.setSize(1); assertEquals(1, buffer.getSize()); assertEquals(1, buffer.getCursor()); }
@Test public void setSize() { LineBuffer buffer = new LineBuffer(); buffer.insert('a', 'b', 'c', 'd'); buffer.setCursor(2); buffer.setSize(3); assertEquals(3, buffer.getSize()); assertEquals(2, buffer.getCursor()); buffer.setSize(1); assertEquals(1, buffer.getSize()); assertEquals(1, buffer.getCursor()); }