Simplify CodeMirror wrapper JSNI

LineCharacter (aka {from, to} objects) is the same as Pos in
CodeMirror.  The CodeMirror documentation suggests using a Pos
object in a number of function calls, but it can be unclear this
is the LineCharacter wrapper in Gerrit

Rename LineCharacter to Pos, and change its factory methods to
construct using CodeMirror.Pos(line, ch) so instances are of the
type CodeMirror expects internally.

Simplify accessor methods by dropping the get/set Java idiom and
use the field name as the method name. Argument overloading makes
it possible to identify between a get and a set variant. This makes
these lightweight JSNI wrappers feel more like an @AutoValue object
or raw JavaScript code that they are interacting with.

Change-Id: If73536652cc5559fcef5b2519cb686460a126ff5
This commit is contained in:
Shawn Pearce
2014-12-29 15:10:28 -05:00
parent 3c9816c3cc
commit 6cadc12269
22 changed files with 337 additions and 337 deletions

View File

@@ -22,7 +22,7 @@ import com.google.gwt.core.client.JsArrayString;
import com.googlecode.gwt.test.GwtModule;
import com.googlecode.gwt.test.GwtTest;
import net.codemirror.lib.LineCharacter;
import net.codemirror.lib.Pos;
import org.junit.Before;
import org.junit.Ignore;
@@ -35,8 +35,8 @@ import org.junit.Test;
public class EditIteratorTest extends GwtTest {
private JsArrayString lines;
private void assertLineChsEqual(LineCharacter a, LineCharacter b) {
assertEquals(a.getLine() + "," + a.getCh(), b.getLine() + "," + b.getCh());
private void assertLineChsEqual(Pos a, Pos b) {
assertEquals(a.line() + "," + a.ch(), b.line() + "," + b.ch());
}
@Before
@@ -50,57 +50,57 @@ public class EditIteratorTest extends GwtTest {
@Test
public void testNegativeAdvance() {
EditIterator i = new EditIterator(lines, 0);
assertLineChsEqual(LineCharacter.create(1, 1), i.advance(5));
assertLineChsEqual(LineCharacter.create(0, 3), i.advance(-2));
assertLineChsEqual(Pos.create(1, 1), i.advance(5));
assertLineChsEqual(Pos.create(0, 3), i.advance(-2));
}
@Test
public void testNoAdvance() {
EditIterator iter = new EditIterator(lines, 0);
assertLineChsEqual(LineCharacter.create(0), iter.advance(0));
assertLineChsEqual(Pos.create(0), iter.advance(0));
}
@Test
public void testSimpleAdvance() {
EditIterator iter = new EditIterator(lines, 0);
assertLineChsEqual(LineCharacter.create(0, 1), iter.advance(1));
assertLineChsEqual(Pos.create(0, 1), iter.advance(1));
}
@Test
public void testEndsBeforeNewline() {
EditIterator iter = new EditIterator(lines, 0);
assertLineChsEqual(LineCharacter.create(0, 3), iter.advance(3));
assertLineChsEqual(Pos.create(0, 3), iter.advance(3));
}
@Test
public void testEndsOnNewline() {
EditIterator iter = new EditIterator(lines, 0);
assertLineChsEqual(LineCharacter.create(1), iter.advance(4));
assertLineChsEqual(Pos.create(1), iter.advance(4));
}
@Test
public void testAcrossNewline() {
EditIterator iter = new EditIterator(lines, 0);
assertLineChsEqual(LineCharacter.create(1, 1), iter.advance(5));
assertLineChsEqual(Pos.create(1, 1), iter.advance(5));
}
@Test
public void testContinueFromBeforeNewline() {
EditIterator iter = new EditIterator(lines, 0);
iter.advance(3);
assertLineChsEqual(LineCharacter.create(2, 2), iter.advance(7));
assertLineChsEqual(Pos.create(2, 2), iter.advance(7));
}
@Test
public void testContinueFromAfterNewline() {
EditIterator iter = new EditIterator(lines, 0);
iter.advance(4);
assertLineChsEqual(LineCharacter.create(2, 2), iter.advance(6));
assertLineChsEqual(Pos.create(2, 2), iter.advance(6));
}
@Test
public void testAcrossMultipleLines() {
EditIterator iter = new EditIterator(lines, 0);
assertLineChsEqual(LineCharacter.create(2, 2), iter.advance(10));
assertLineChsEqual(Pos.create(2, 2), iter.advance(10));
}
}