|
|
|
@ -59,19 +59,19 @@ int main() { |
|
|
|
buffer->set_text(text); |
|
|
|
buffer->set_text(text); |
|
|
|
buffer->place_cursor(buffer->begin()); |
|
|
|
buffer->place_cursor(buffer->begin()); |
|
|
|
view.replace_text(text); |
|
|
|
view.replace_text(text); |
|
|
|
assert(buffer->get_text() == text); |
|
|
|
g_assert(buffer->get_text() == text); |
|
|
|
assert(buffer->get_insert()->get_iter() == buffer->begin()); |
|
|
|
g_assert(buffer->get_insert()->get_iter() == buffer->begin()); |
|
|
|
|
|
|
|
|
|
|
|
buffer->place_cursor(buffer->end()); |
|
|
|
buffer->place_cursor(buffer->end()); |
|
|
|
view.replace_text(text); |
|
|
|
view.replace_text(text); |
|
|
|
assert(buffer->get_text() == text); |
|
|
|
g_assert(buffer->get_text() == text); |
|
|
|
assert(buffer->get_insert()->get_iter() == buffer->end()); |
|
|
|
g_assert(buffer->get_insert()->get_iter() == buffer->end()); |
|
|
|
|
|
|
|
|
|
|
|
view.place_cursor_at_line_offset(1, 0); |
|
|
|
view.place_cursor_at_line_offset(1, 0); |
|
|
|
view.replace_text(text); |
|
|
|
view.replace_text(text); |
|
|
|
assert(buffer->get_text() == text); |
|
|
|
g_assert(buffer->get_text() == text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 1); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 1); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto old_text = "line 1\nline3"; |
|
|
|
auto old_text = "line 1\nline3"; |
|
|
|
@ -79,65 +79,65 @@ int main() { |
|
|
|
buffer->set_text(old_text); |
|
|
|
buffer->set_text(old_text); |
|
|
|
view.place_cursor_at_line_offset(1, 0); |
|
|
|
view.place_cursor_at_line_offset(1, 0); |
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 2); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 2); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
|
|
|
|
|
|
|
|
view.replace_text(old_text); |
|
|
|
view.replace_text(old_text); |
|
|
|
assert(buffer->get_text() == old_text); |
|
|
|
g_assert(buffer->get_text() == old_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 1); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 1); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
|
|
|
|
|
|
|
|
view.place_cursor_at_line_offset(0, 0); |
|
|
|
view.place_cursor_at_line_offset(0, 0); |
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 0); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
|
|
|
|
|
|
|
|
view.replace_text(old_text); |
|
|
|
view.replace_text(old_text); |
|
|
|
assert(buffer->get_text() == old_text); |
|
|
|
g_assert(buffer->get_text() == old_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 0); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
|
|
|
|
|
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
|
|
|
|
|
|
|
|
view.place_cursor_at_line_offset(2, 0); |
|
|
|
view.place_cursor_at_line_offset(2, 0); |
|
|
|
view.replace_text(old_text); |
|
|
|
view.replace_text(old_text); |
|
|
|
assert(buffer->get_text() == old_text); |
|
|
|
g_assert(buffer->get_text() == old_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 1); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 1); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto old_text = "line 1\nline 3"; |
|
|
|
auto old_text = "line 1\nline 3"; |
|
|
|
auto new_text = ""; |
|
|
|
auto new_text = ""; |
|
|
|
buffer->set_text(old_text); |
|
|
|
buffer->set_text(old_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
|
|
|
|
|
|
|
|
view.replace_text(old_text); |
|
|
|
view.replace_text(old_text); |
|
|
|
assert(buffer->get_text() == old_text); |
|
|
|
g_assert(buffer->get_text() == old_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 1); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 1); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 6); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 6); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto old_text = ""; |
|
|
|
auto old_text = ""; |
|
|
|
auto new_text = ""; |
|
|
|
auto new_text = ""; |
|
|
|
buffer->set_text(old_text); |
|
|
|
buffer->set_text(old_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto old_text = "line 1\nline 3\n"; |
|
|
|
auto old_text = "line 1\nline 3\n"; |
|
|
|
auto new_text = ""; |
|
|
|
auto new_text = ""; |
|
|
|
buffer->set_text(old_text); |
|
|
|
buffer->set_text(old_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
|
|
|
|
|
|
|
|
view.replace_text(old_text); |
|
|
|
view.replace_text(old_text); |
|
|
|
assert(buffer->get_text() == old_text); |
|
|
|
g_assert(buffer->get_text() == old_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 2); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 2); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto old_text = "line 1\n\nline 3\nline 4\n\nline 5\n"; |
|
|
|
auto old_text = "line 1\n\nline 3\nline 4\n\nline 5\n"; |
|
|
|
@ -145,16 +145,16 @@ int main() { |
|
|
|
buffer->set_text(old_text); |
|
|
|
buffer->set_text(old_text); |
|
|
|
view.place_cursor_at_line_offset(2, 0); |
|
|
|
view.place_cursor_at_line_offset(2, 0); |
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 2); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 2); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
|
|
|
|
|
|
|
|
buffer->set_text(old_text); |
|
|
|
buffer->set_text(old_text); |
|
|
|
view.place_cursor_at_line_offset(3, 0); |
|
|
|
view.place_cursor_at_line_offset(3, 0); |
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 3); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 3); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto old_text = "line 1\n\nline 3\nline 4\n\nline 5\n"; |
|
|
|
auto old_text = "line 1\n\nline 3\nline 4\n\nline 5\n"; |
|
|
|
@ -162,16 +162,16 @@ int main() { |
|
|
|
buffer->set_text(old_text); |
|
|
|
buffer->set_text(old_text); |
|
|
|
view.place_cursor_at_line_offset(2, 0); |
|
|
|
view.place_cursor_at_line_offset(2, 0); |
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 2); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 2); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
|
|
|
|
|
|
|
|
buffer->set_text(old_text); |
|
|
|
buffer->set_text(old_text); |
|
|
|
view.place_cursor_at_line_offset(3, 0); |
|
|
|
view.place_cursor_at_line_offset(3, 0); |
|
|
|
view.replace_text(new_text); |
|
|
|
view.replace_text(new_text); |
|
|
|
assert(buffer->get_text() == new_text); |
|
|
|
g_assert(buffer->get_text() == new_text); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line() == 4); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line() == 4); |
|
|
|
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
g_assert(buffer->get_insert()->get_iter().get_line_offset() == 0); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -184,61 +184,61 @@ int main() { |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 0); |
|
|
|
view.place_cursor_at_line_offset(0, 0); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "test"); |
|
|
|
g_assert(view.get_selected_text() == "test"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "test(1, test(10), \"100\")"); |
|
|
|
g_assert(view.get_selected_text() == "test(1, test(10), \"100\")"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source); |
|
|
|
g_assert(view.get_selected_text() == source); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 5); |
|
|
|
view.place_cursor_at_line_offset(0, 5); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "1"); |
|
|
|
g_assert(view.get_selected_text() == "1"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "1, test(10), \"100\""); |
|
|
|
g_assert(view.get_selected_text() == "1, test(10), \"100\""); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "test(1, test(10), \"100\")"); |
|
|
|
g_assert(view.get_selected_text() == "test(1, test(10), \"100\")"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 7); |
|
|
|
view.place_cursor_at_line_offset(0, 7); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == " test(10)"); |
|
|
|
g_assert(view.get_selected_text() == " test(10)"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 8); |
|
|
|
view.place_cursor_at_line_offset(0, 8); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "test"); |
|
|
|
g_assert(view.get_selected_text() == "test"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "test(10)"); |
|
|
|
g_assert(view.get_selected_text() == "test(10)"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == " test(10)"); |
|
|
|
g_assert(view.get_selected_text() == " test(10)"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "1, test(10), \"100\""); |
|
|
|
g_assert(view.get_selected_text() == "1, test(10), \"100\""); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 18); |
|
|
|
view.place_cursor_at_line_offset(0, 18); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == " \"100\""); |
|
|
|
g_assert(view.get_selected_text() == " \"100\""); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "1, test(10), \"100\""); |
|
|
|
g_assert(view.get_selected_text() == "1, test(10), \"100\""); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 26); |
|
|
|
view.place_cursor_at_line_offset(0, 26); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source); |
|
|
|
g_assert(view.get_selected_text() == source); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 27); |
|
|
|
view.place_cursor_at_line_offset(0, 27); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source); |
|
|
|
g_assert(view.get_selected_text() == source); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
source = "int main() {\n return 1;\n}\n"; |
|
|
|
source = "int main() {\n return 1;\n}\n"; |
|
|
|
@ -246,47 +246,47 @@ int main() { |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 0); |
|
|
|
view.place_cursor_at_line_offset(0, 0); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "int"); |
|
|
|
g_assert(view.get_selected_text() == "int"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source); |
|
|
|
g_assert(view.get_selected_text() == source); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 4); |
|
|
|
view.place_cursor_at_line_offset(0, 4); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "main"); |
|
|
|
g_assert(view.get_selected_text() == "main"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(4, source.size() - 1 - 4)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(4, source.size() - 1 - 4)); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source); |
|
|
|
g_assert(view.get_selected_text() == source); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(1, 2); |
|
|
|
view.place_cursor_at_line_offset(1, 2); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "return"); |
|
|
|
g_assert(view.get_selected_text() == "return"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "return 1;"); |
|
|
|
g_assert(view.get_selected_text() == "return 1;"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(12, 13)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(12, 13)); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(4, source.size() - 1 - 4)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(4, source.size() - 1 - 4)); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source); |
|
|
|
g_assert(view.get_selected_text() == source); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
source = "test<int, int>(11, 22);"; |
|
|
|
source = "test<int, int>(11, 22);"; |
|
|
|
@ -294,35 +294,35 @@ int main() { |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 0); |
|
|
|
view.place_cursor_at_line_offset(0, 0); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "test"); |
|
|
|
g_assert(view.get_selected_text() == "test"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source); |
|
|
|
g_assert(view.get_selected_text() == source); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 5); |
|
|
|
view.place_cursor_at_line_offset(0, 5); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "int"); |
|
|
|
g_assert(view.get_selected_text() == "int"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(5, 8)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(5, 8)); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(0, 15); |
|
|
|
view.place_cursor_at_line_offset(0, 15); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "11"); |
|
|
|
g_assert(view.get_selected_text() == "11"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "11, 22"); |
|
|
|
g_assert(view.get_selected_text() == "11, 22"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
g_assert(view.get_selected_text() == source.substr(0, source.size() - 1)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
source = "{\n {\n test;\n }\n}\n"; |
|
|
|
source = "{\n {\n test;\n }\n}\n"; |
|
|
|
@ -330,34 +330,34 @@ int main() { |
|
|
|
{ |
|
|
|
{ |
|
|
|
view.place_cursor_at_line_offset(2, 4); |
|
|
|
view.place_cursor_at_line_offset(2, 4); |
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "test"); |
|
|
|
g_assert(view.get_selected_text() == "test"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "test;"); |
|
|
|
g_assert(view.get_selected_text() == "test;"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "\n test;\n "); |
|
|
|
g_assert(view.get_selected_text() == "\n test;\n "); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "{\n test;\n }"); |
|
|
|
g_assert(view.get_selected_text() == "{\n test;\n }"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "\n {\n test;\n }\n"); |
|
|
|
g_assert(view.get_selected_text() == "\n {\n test;\n }\n"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == "{\n {\n test;\n }\n}"); |
|
|
|
g_assert(view.get_selected_text() == "{\n {\n test;\n }\n}"); |
|
|
|
|
|
|
|
|
|
|
|
view.extend_selection(); |
|
|
|
view.extend_selection(); |
|
|
|
assert(view.get_selected_text() == source); |
|
|
|
g_assert(view.get_selected_text() == source); |
|
|
|
|
|
|
|
|
|
|
|
view.shrink_selection(); |
|
|
|
view.shrink_selection(); |
|
|
|
assert(view.get_selected_text() == "{\n {\n test;\n }\n}"); |
|
|
|
g_assert(view.get_selected_text() == "{\n {\n test;\n }\n}"); |
|
|
|
|
|
|
|
|
|
|
|
view.shrink_selection(); |
|
|
|
view.shrink_selection(); |
|
|
|
assert(view.get_selected_text() == "\n {\n test;\n }\n"); |
|
|
|
g_assert(view.get_selected_text() == "\n {\n test;\n }\n"); |
|
|
|
|
|
|
|
|
|
|
|
view.shrink_selection(); |
|
|
|
view.shrink_selection(); |
|
|
|
assert(view.get_selected_text() == "{\n test;\n }"); |
|
|
|
g_assert(view.get_selected_text() == "{\n test;\n }"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -369,159 +369,205 @@ int main() { |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text(""); |
|
|
|
buffer->set_text(""); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << std::endl;"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << std::endl;"); |
|
|
|
assert(buffer->get_text() == "std::cout << content << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << content << std::endl;"); |
|
|
|
Gtk::TextIter start, end; |
|
|
|
Gtk::TextIter start, end; |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 13); |
|
|
|
g_assert(start.get_offset() == 13); |
|
|
|
assert(end.get_offset() == 20); |
|
|
|
g_assert(end.get_offset() == 20); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << t << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << t << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << std::endl;"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text(""); |
|
|
|
buffer->set_text(""); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:} << std::endl;"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:} << std::endl;"); |
|
|
|
assert(buffer->get_text() == "std::cout << << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << << std::endl;"); |
|
|
|
Gtk::TextIter start, end; |
|
|
|
Gtk::TextIter start, end; |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 13); |
|
|
|
g_assert(start.get_offset() == 13); |
|
|
|
assert(end.get_offset() == 13); |
|
|
|
g_assert(end.get_offset() == 13); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << t << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << t << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << std::endl;"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text(""); |
|
|
|
buffer->set_text(""); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << $1 << std::endl;"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << $1 << std::endl;"); |
|
|
|
assert(buffer->get_text() == "std::cout << << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << << std::endl;"); |
|
|
|
Gtk::TextIter start, end; |
|
|
|
Gtk::TextIter start, end; |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 13); |
|
|
|
g_assert(start.get_offset() == 13); |
|
|
|
assert(end.get_offset() == 13); |
|
|
|
g_assert(end.get_offset() == 13); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << t << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << t << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << std::endl;"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text(""); |
|
|
|
buffer->set_text(""); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << ${1:content} << std::endl;"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << ${1:content} << std::endl;"); |
|
|
|
assert(buffer->get_text() == "std::cout << content << content << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << content << content << std::endl;"); |
|
|
|
Gtk::TextIter start, end; |
|
|
|
Gtk::TextIter start, end; |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 13); |
|
|
|
g_assert(start.get_offset() == 13); |
|
|
|
assert(end.get_offset() == 20); |
|
|
|
g_assert(end.get_offset() == 20); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << t << t << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << t << t << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << te << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << te << std::endl;"); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Escape; |
|
|
|
event.keyval = GDK_KEY_Escape; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << te << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << te << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_s; |
|
|
|
event.keyval = GDK_KEY_s; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << tes << te << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << tes << te << std::endl;"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
buffer->set_text(""); |
|
|
|
|
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << ${1:cont} << std::endl;"); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << content << cont << std::endl;"); |
|
|
|
|
|
|
|
Gtk::TextIter start, end; |
|
|
|
|
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
|
|
|
|
g_assert(start.get_offset() == 13); |
|
|
|
|
|
|
|
g_assert(end.get_offset() == 20); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << t << t << std::endl;"); |
|
|
|
|
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << te << te << std::endl;"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Escape; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << te << te << std::endl;"); |
|
|
|
|
|
|
|
event.keyval = GDK_KEY_s; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << tes << te << std::endl;"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
buffer->set_text(""); |
|
|
|
|
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << $1 << std::endl;"); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << content << << std::endl;"); |
|
|
|
|
|
|
|
Gtk::TextIter start, end; |
|
|
|
|
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
|
|
|
|
g_assert(start.get_offset() == 13); |
|
|
|
|
|
|
|
g_assert(end.get_offset() == 20); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << t << t << std::endl;"); |
|
|
|
|
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << te << te << std::endl;"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Escape; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << te << te << std::endl;"); |
|
|
|
|
|
|
|
event.keyval = GDK_KEY_s; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "std::cout << tes << te << std::endl;"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text(""); |
|
|
|
buffer->set_text(""); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content1} << ${2:content2} << std::endl;"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content1} << ${2:content2} << std::endl;"); |
|
|
|
assert(buffer->get_text() == "std::cout << content1 << content2 << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << content1 << content2 << std::endl;"); |
|
|
|
Gtk::TextIter start, end; |
|
|
|
Gtk::TextIter start, end; |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 13); |
|
|
|
g_assert(start.get_offset() == 13); |
|
|
|
assert(end.get_offset() == 21); |
|
|
|
g_assert(end.get_offset() == 21); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << t << content2 << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << t << content2 << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << content2 << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << content2 << std::endl;"); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << content2 << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << content2 << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << t << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << t << std::endl;"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text(""); |
|
|
|
buffer->set_text(""); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << $0 << std::endl;"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << $0 << std::endl;"); |
|
|
|
assert(buffer->get_text() == "std::cout << content << << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << content << << std::endl;"); |
|
|
|
Gtk::TextIter start, end; |
|
|
|
Gtk::TextIter start, end; |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 13); |
|
|
|
g_assert(start.get_offset() == 13); |
|
|
|
assert(end.get_offset() == 20); |
|
|
|
g_assert(end.get_offset() == 20); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << t << << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << t << << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << << std::endl;"); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << te << t << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << te << t << std::endl;"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text(""); |
|
|
|
buffer->set_text(""); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${2:content2} << ${1:content1} << std::endl;"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${2:content2} << ${1:content1} << std::endl;"); |
|
|
|
assert(buffer->get_text() == "std::cout << content2 << content1 << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << content2 << content1 << std::endl;"); |
|
|
|
Gtk::TextIter start, end; |
|
|
|
Gtk::TextIter start, end; |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 25); |
|
|
|
g_assert(start.get_offset() == 25); |
|
|
|
assert(end.get_offset() == 33); |
|
|
|
g_assert(end.get_offset() == 33); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << content2 << t << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << content2 << t << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << content2 << te << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << content2 << te << std::endl;"); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << content2 << te << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << content2 << te << std::endl;"); |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "std::cout << t << te << std::endl;"); |
|
|
|
g_assert(buffer->get_text() == "std::cout << t << te << std::endl;"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text("test"); |
|
|
|
buffer->set_text("test"); |
|
|
|
buffer->select_range(buffer->begin(), buffer->end()); |
|
|
|
buffer->select_range(buffer->begin(), buffer->end()); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "<$1>${TM_SELECTED_TEXT}</$1>"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "<$1>${TM_SELECTED_TEXT}</$1>"); |
|
|
|
assert(buffer->get_text() == "<>test</>"); |
|
|
|
g_assert(buffer->get_text() == "<>test</>"); |
|
|
|
Gtk::TextIter start, end; |
|
|
|
Gtk::TextIter start, end; |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 1); |
|
|
|
g_assert(start.get_offset() == 1); |
|
|
|
assert(end.get_offset() == 1); |
|
|
|
g_assert(end.get_offset() == 1); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "<t>test</t>"); |
|
|
|
g_assert(buffer->get_text() == "<t>test</t>"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "<te>test</te>"); |
|
|
|
g_assert(buffer->get_text() == "<te>test</te>"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text("test test"); |
|
|
|
buffer->set_text("test test"); |
|
|
|
@ -531,33 +577,103 @@ int main() { |
|
|
|
end.forward_chars(4); |
|
|
|
end.forward_chars(4); |
|
|
|
buffer->select_range(start, end); |
|
|
|
buffer->select_range(start, end); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "<$1>${TM_SELECTED_TEXT:TM_CURRENT_LINE}</$1>"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "<$1>${TM_SELECTED_TEXT:TM_CURRENT_LINE}</$1>"); |
|
|
|
assert(buffer->get_text() == "<>test</> test"); |
|
|
|
g_assert(buffer->get_text() == "<>test</> test"); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 1); |
|
|
|
g_assert(start.get_offset() == 1); |
|
|
|
assert(end.get_offset() == 1); |
|
|
|
g_assert(end.get_offset() == 1); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "<t>test</t> test"); |
|
|
|
g_assert(buffer->get_text() == "<t>test</t> test"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "<te>test</te> test"); |
|
|
|
g_assert(buffer->get_text() == "<te>test</te> test"); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
buffer->set_text("test test"); |
|
|
|
buffer->set_text("test test"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "<$1>${TM_SELECTED_TEXT:TM_CURRENT_LINE}</$1>"); |
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "<$1>${TM_SELECTED_TEXT:TM_CURRENT_LINE}</$1>"); |
|
|
|
assert(buffer->get_text() == "<>test test</>"); |
|
|
|
g_assert(buffer->get_text() == "<>test test</>"); |
|
|
|
|
|
|
|
Gtk::TextIter start, end; |
|
|
|
|
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
|
|
|
|
g_assert(start.get_offset() == 1); |
|
|
|
|
|
|
|
g_assert(end.get_offset() == 1); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "<t>test test</t>"); |
|
|
|
|
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "<te>test test</te>"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
buffer->set_text(""); |
|
|
|
|
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "\\textbf{${TM_SELECTED_TEXT:no text was selected}}"); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "\\textbf{no text was selected}"); |
|
|
|
|
|
|
|
g_assert(buffer->get_insert()->get_iter().get_offset() == 29); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
buffer->set_text(""); |
|
|
|
|
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "<div${1: id=\"${2:some_id}\"}>\n $0\n</div>"); |
|
|
|
|
|
|
|
auto result = "<div id=\"some_id\">\n \n</div>"; |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == result); |
|
|
|
Gtk::TextIter start, end; |
|
|
|
Gtk::TextIter start, end; |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
assert(start.get_offset() == 1); |
|
|
|
g_assert(start.get_offset() == 4); |
|
|
|
assert(end.get_offset() == 1); |
|
|
|
g_assert(end.get_offset() == 17); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == result); |
|
|
|
|
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
|
|
|
|
g_assert(start.get_offset() == 9); |
|
|
|
|
|
|
|
g_assert(end.get_offset() == 16); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == result); |
|
|
|
|
|
|
|
g_assert(buffer->get_insert()->get_iter().get_offset() == 21); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
buffer->set_text(""); |
|
|
|
|
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "<div${1: id=\"${2:some_id}\"}>\n $0\n</div>"); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "<div id=\"some_id\">\n \n</div>"); |
|
|
|
|
|
|
|
Gtk::TextIter start, end; |
|
|
|
|
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
|
|
|
|
g_assert(start.get_offset() == 4); |
|
|
|
|
|
|
|
g_assert(end.get_offset() == 17); |
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "<t>test test</t>"); |
|
|
|
g_assert(buffer->get_text() == "<divt>\n \n</div>"); |
|
|
|
|
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
|
|
|
|
g_assert(start.get_offset() == 5); |
|
|
|
|
|
|
|
g_assert(end.get_offset() == 5); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "<divt>\n \n</div>"); |
|
|
|
|
|
|
|
g_assert(buffer->get_insert()->get_iter().get_offset() == 9); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
buffer->set_text(""); |
|
|
|
|
|
|
|
view.insert_snippet(buffer->get_insert()->get_iter(), "\\begin{${1:enumerate}}\n $0\n\\end{$1}"); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "\\begin{enumerate}\n \n\\end{}"); |
|
|
|
|
|
|
|
Gtk::TextIter start, end; |
|
|
|
|
|
|
|
buffer->get_selection_bounds(start, end); |
|
|
|
|
|
|
|
g_assert(start.get_offset() == 7); |
|
|
|
|
|
|
|
g_assert(end.get_offset() == 16); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_t; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "\\begin{t}\n \n\\end{t}"); |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
event.keyval = GDK_KEY_e; |
|
|
|
view.on_key_press_event(&event); |
|
|
|
view.on_key_press_event(&event); |
|
|
|
assert(buffer->get_text() == "<te>test test</te>"); |
|
|
|
g_assert(buffer->get_text() == "\\begin{te}\n \n\\end{te}"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.keyval = GDK_KEY_Tab; |
|
|
|
|
|
|
|
view.on_key_press_event(&event); |
|
|
|
|
|
|
|
g_assert(buffer->get_text() == "\\begin{te}\n \n\\end{te}"); |
|
|
|
|
|
|
|
g_assert(buffer->get_insert()->get_iter().get_offset() == 13); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|