Skip to content
This repository was archived by the owner on Oct 18, 2024. It is now read-only.

Commit 7c0a025

Browse files
committed
fix: cannot insert at UTF16String.length()
1 parent 8ff14df commit 7c0a025

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

android-tree-sitter/src/main/java/com/itsaky/androidide/treesitter/string/UTF16String.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@ public void append(String string, int fromIndex, int length) {
105105
* @param string The string to insert.
106106
*/
107107
public void insert(int index, String string) {
108+
if (index == length()) {
109+
append(string);
110+
return;
111+
}
108112
checkIndex(index, length());
109113
Native.insert(this.pointer, string, index);
110114
}

android-tree-sitter/src/test/java/com/itsaky/androidide/treesitter/UTF16StringTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,4 +174,17 @@ public void testMultithreadedUse() throws InterruptedException {
174174
thread.join();
175175
}
176176
}
177+
178+
@Test
179+
public void testInsertAtLength() {
180+
final var str = UTF16StringFactory.newString("Hello");
181+
assertThat(str).isNotNull();
182+
assertThat(str.toString()).isEqualTo("Hello");
183+
assertThat(str.length()).isEqualTo(5);
184+
185+
str.insert(5, " World!");
186+
assertThat(str.length()).isEqualTo(12);
187+
assertThat(str.toString()).isEqualTo("Hello World!");
188+
str.close();
189+
}
177190
}

0 commit comments

Comments
 (0)