Browse Source

Added snippet tests

merge-requests/399/head
eidheim 6 years ago
parent
commit
635a296ed6
  1. 488
      tests/source_test.cc

488
tests/source_test.cc

@ -28,15 +28,15 @@ int main() {
auto source_file = tests_path / "tmp" / "source_file.cpp"; auto source_file = tests_path / "tmp" / "source_file.cpp";
{ {
Source::View source_view(source_file, Glib::RefPtr<Gsv::Language>()); Source::View view(source_file, Glib::RefPtr<Gsv::Language>());
source_view.get_buffer()->set_text(hello_world); view.get_buffer()->set_text(hello_world);
g_assert(source_view.save()); g_assert(view.save());
} }
Source::View source_view(source_file, Glib::RefPtr<Gsv::Language>()); Source::View view(source_file, Glib::RefPtr<Gsv::Language>());
g_assert(source_view.get_buffer()->get_text() == hello_world); g_assert(view.get_buffer()->get_text() == hello_world);
source_view.cleanup_whitespace_characters(); view.cleanup_whitespace_characters();
g_assert(source_view.get_buffer()->get_text() == hello_world_cleaned); g_assert(view.get_buffer()->get_text() == hello_world_cleaned);
g_assert(boost::filesystem::remove(source_file)); g_assert(boost::filesystem::remove(source_file));
g_assert(!boost::filesystem::exists(source_file)); g_assert(!boost::filesystem::exists(source_file));
@ -53,22 +53,22 @@ int main() {
// replace_text tests // replace_text tests
{ {
auto buffer = source_view.get_buffer(); auto buffer = view.get_buffer();
{ {
auto text = "line 1\nline 2\nline3"; auto text = "line 1\nline 2\nline3";
buffer->set_text(text); buffer->set_text(text);
buffer->place_cursor(buffer->begin()); buffer->place_cursor(buffer->begin());
source_view.replace_text(text); view.replace_text(text);
assert(buffer->get_text() == text); assert(buffer->get_text() == text);
assert(buffer->get_insert()->get_iter() == buffer->begin()); assert(buffer->get_insert()->get_iter() == buffer->begin());
buffer->place_cursor(buffer->end()); buffer->place_cursor(buffer->end());
source_view.replace_text(text); view.replace_text(text);
assert(buffer->get_text() == text); assert(buffer->get_text() == text);
assert(buffer->get_insert()->get_iter() == buffer->end()); assert(buffer->get_insert()->get_iter() == buffer->end());
source_view.place_cursor_at_line_offset(1, 0); view.place_cursor_at_line_offset(1, 0);
source_view.replace_text(text); view.replace_text(text);
assert(buffer->get_text() == text); assert(buffer->get_text() == text);
assert(buffer->get_insert()->get_iter().get_line() == 1); assert(buffer->get_insert()->get_iter().get_line() == 1);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
@ -77,33 +77,33 @@ int main() {
auto old_text = "line 1\nline3"; auto old_text = "line 1\nline3";
auto new_text = "line 1\nline 2\nline3"; auto new_text = "line 1\nline 2\nline3";
buffer->set_text(old_text); buffer->set_text(old_text);
source_view.place_cursor_at_line_offset(1, 0); view.place_cursor_at_line_offset(1, 0);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); assert(buffer->get_text() == new_text);
assert(buffer->get_insert()->get_iter().get_line() == 2); assert(buffer->get_insert()->get_iter().get_line() == 2);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
source_view.replace_text(old_text); view.replace_text(old_text);
assert(buffer->get_text() == old_text); assert(buffer->get_text() == old_text);
assert(buffer->get_insert()->get_iter().get_line() == 1); assert(buffer->get_insert()->get_iter().get_line() == 1);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
source_view.place_cursor_at_line_offset(0, 0); view.place_cursor_at_line_offset(0, 0);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); assert(buffer->get_text() == new_text);
assert(buffer->get_insert()->get_iter().get_line() == 0); assert(buffer->get_insert()->get_iter().get_line() == 0);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
source_view.replace_text(old_text); view.replace_text(old_text);
assert(buffer->get_text() == old_text); assert(buffer->get_text() == old_text);
assert(buffer->get_insert()->get_iter().get_line() == 0); assert(buffer->get_insert()->get_iter().get_line() == 0);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); assert(buffer->get_text() == new_text);
source_view.place_cursor_at_line_offset(2, 0); view.place_cursor_at_line_offset(2, 0);
source_view.replace_text(old_text); view.replace_text(old_text);
assert(buffer->get_text() == old_text); assert(buffer->get_text() == old_text);
assert(buffer->get_insert()->get_iter().get_line() == 1); assert(buffer->get_insert()->get_iter().get_line() == 1);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
@ -112,10 +112,10 @@ int main() {
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);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); assert(buffer->get_text() == new_text);
source_view.replace_text(old_text); view.replace_text(old_text);
assert(buffer->get_text() == old_text); assert(buffer->get_text() == old_text);
assert(buffer->get_insert()->get_iter().get_line() == 1); assert(buffer->get_insert()->get_iter().get_line() == 1);
assert(buffer->get_insert()->get_iter().get_line_offset() == 6); assert(buffer->get_insert()->get_iter().get_line_offset() == 6);
@ -124,17 +124,17 @@ int main() {
auto old_text = ""; auto old_text = "";
auto new_text = ""; auto new_text = "";
buffer->set_text(old_text); buffer->set_text(old_text);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); 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);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); assert(buffer->get_text() == new_text);
source_view.replace_text(old_text); view.replace_text(old_text);
assert(buffer->get_text() == old_text); assert(buffer->get_text() == old_text);
assert(buffer->get_insert()->get_iter().get_line() == 2); assert(buffer->get_insert()->get_iter().get_line() == 2);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
@ -143,15 +143,15 @@ int main() {
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";
auto new_text = "line 1\n\nline 33\nline 44\n\nline 5\n"; auto new_text = "line 1\n\nline 33\nline 44\n\nline 5\n";
buffer->set_text(old_text); buffer->set_text(old_text);
source_view.place_cursor_at_line_offset(2, 0); view.place_cursor_at_line_offset(2, 0);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); assert(buffer->get_text() == new_text);
assert(buffer->get_insert()->get_iter().get_line() == 2); assert(buffer->get_insert()->get_iter().get_line() == 2);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
buffer->set_text(old_text); buffer->set_text(old_text);
source_view.place_cursor_at_line_offset(3, 0); view.place_cursor_at_line_offset(3, 0);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); assert(buffer->get_text() == new_text);
assert(buffer->get_insert()->get_iter().get_line() == 3); assert(buffer->get_insert()->get_iter().get_line() == 3);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
@ -160,15 +160,15 @@ int main() {
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";
auto new_text = "line 1\n\nline 33\nline 44\nline 45\nline 46\n\nline 5\n"; auto new_text = "line 1\n\nline 33\nline 44\nline 45\nline 46\n\nline 5\n";
buffer->set_text(old_text); buffer->set_text(old_text);
source_view.place_cursor_at_line_offset(2, 0); view.place_cursor_at_line_offset(2, 0);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); assert(buffer->get_text() == new_text);
assert(buffer->get_insert()->get_iter().get_line() == 2); assert(buffer->get_insert()->get_iter().get_line() == 2);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
buffer->set_text(old_text); buffer->set_text(old_text);
source_view.place_cursor_at_line_offset(3, 0); view.place_cursor_at_line_offset(3, 0);
source_view.replace_text(new_text); view.replace_text(new_text);
assert(buffer->get_text() == new_text); assert(buffer->get_text() == new_text);
assert(buffer->get_insert()->get_iter().get_line() == 4); assert(buffer->get_insert()->get_iter().get_line() == 4);
assert(buffer->get_insert()->get_iter().get_line_offset() == 0); assert(buffer->get_insert()->get_iter().get_line_offset() == 0);
@ -177,187 +177,387 @@ int main() {
// extend_selection() tests // extend_selection() tests
{ {
auto buffer = source_view.get_buffer(); auto buffer = view.get_buffer();
source_view.is_bracket_language = true; view.is_bracket_language = true;
std::string source = "test(1, test(10), \"100\");"; std::string source = "test(1, test(10), \"100\");";
buffer->set_text(source); buffer->set_text(source);
{ {
source_view.place_cursor_at_line_offset(0, 0); view.place_cursor_at_line_offset(0, 0);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "test"); assert(view.get_selected_text() == "test");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "test(1, test(10), \"100\")"); assert(view.get_selected_text() == "test(1, test(10), \"100\")");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source); assert(view.get_selected_text() == source);
} }
{ {
source_view.place_cursor_at_line_offset(0, 5); view.place_cursor_at_line_offset(0, 5);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "1"); assert(view.get_selected_text() == "1");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "1, test(10), \"100\""); assert(view.get_selected_text() == "1, test(10), \"100\"");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "test(1, test(10), \"100\")"); assert(view.get_selected_text() == "test(1, test(10), \"100\")");
} }
{ {
source_view.place_cursor_at_line_offset(0, 7); view.place_cursor_at_line_offset(0, 7);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == " test(10)"); assert(view.get_selected_text() == " test(10)");
} }
{ {
source_view.place_cursor_at_line_offset(0, 8); view.place_cursor_at_line_offset(0, 8);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "test"); assert(view.get_selected_text() == "test");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "test(10)"); assert(view.get_selected_text() == "test(10)");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == " test(10)"); assert(view.get_selected_text() == " test(10)");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "1, test(10), \"100\""); assert(view.get_selected_text() == "1, test(10), \"100\"");
} }
{ {
source_view.place_cursor_at_line_offset(0, 18); view.place_cursor_at_line_offset(0, 18);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == " \"100\""); assert(view.get_selected_text() == " \"100\"");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "1, test(10), \"100\""); assert(view.get_selected_text() == "1, test(10), \"100\"");
} }
{ {
source_view.place_cursor_at_line_offset(0, 26); view.place_cursor_at_line_offset(0, 26);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source); assert(view.get_selected_text() == source);
} }
{ {
source_view.place_cursor_at_line_offset(0, 27); view.place_cursor_at_line_offset(0, 27);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source); assert(view.get_selected_text() == source);
} }
source = "int main() {\n return 1;\n}\n"; source = "int main() {\n return 1;\n}\n";
buffer->set_text(source); buffer->set_text(source);
{ {
source_view.place_cursor_at_line_offset(0, 0); view.place_cursor_at_line_offset(0, 0);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "int"); assert(view.get_selected_text() == "int");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(0, source.size() - 1)); assert(view.get_selected_text() == source.substr(0, source.size() - 1));
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source); assert(view.get_selected_text() == source);
} }
{ {
source_view.place_cursor_at_line_offset(0, 4); view.place_cursor_at_line_offset(0, 4);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "main"); assert(view.get_selected_text() == "main");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(4, source.size() - 1 - 4)); assert(view.get_selected_text() == source.substr(4, source.size() - 1 - 4));
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(0, source.size() - 1)); assert(view.get_selected_text() == source.substr(0, source.size() - 1));
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source); assert(view.get_selected_text() == source);
} }
{ {
source_view.place_cursor_at_line_offset(1, 2); view.place_cursor_at_line_offset(1, 2);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "return"); assert(view.get_selected_text() == "return");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "return 1;"); assert(view.get_selected_text() == "return 1;");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(12, 13)); assert(view.get_selected_text() == source.substr(12, 13));
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(4, source.size() - 1 - 4)); assert(view.get_selected_text() == source.substr(4, source.size() - 1 - 4));
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(0, source.size() - 1)); assert(view.get_selected_text() == source.substr(0, source.size() - 1));
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source); assert(view.get_selected_text() == source);
} }
source = "test<int, int>(11, 22);"; source = "test<int, int>(11, 22);";
buffer->set_text(source); buffer->set_text(source);
{ {
source_view.place_cursor_at_line_offset(0, 0); view.place_cursor_at_line_offset(0, 0);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "test"); assert(view.get_selected_text() == "test");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(0, source.size() - 1)); assert(view.get_selected_text() == source.substr(0, source.size() - 1));
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source); assert(view.get_selected_text() == source);
} }
{ {
source_view.place_cursor_at_line_offset(0, 5); view.place_cursor_at_line_offset(0, 5);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "int"); assert(view.get_selected_text() == "int");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(5, 8)); assert(view.get_selected_text() == source.substr(5, 8));
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(0, source.size() - 1)); assert(view.get_selected_text() == source.substr(0, source.size() - 1));
} }
{ {
source_view.place_cursor_at_line_offset(0, 15); view.place_cursor_at_line_offset(0, 15);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "11"); assert(view.get_selected_text() == "11");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "11, 22"); assert(view.get_selected_text() == "11, 22");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source.substr(0, source.size() - 1)); 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";
buffer->set_text(source); buffer->set_text(source);
{ {
source_view.place_cursor_at_line_offset(2, 4); view.place_cursor_at_line_offset(2, 4);
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "test"); assert(view.get_selected_text() == "test");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "test;"); assert(view.get_selected_text() == "test;");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "\n test;\n "); assert(view.get_selected_text() == "\n test;\n ");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "{\n test;\n }"); assert(view.get_selected_text() == "{\n test;\n }");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "\n {\n test;\n }\n"); assert(view.get_selected_text() == "\n {\n test;\n }\n");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == "{\n {\n test;\n }\n}"); assert(view.get_selected_text() == "{\n {\n test;\n }\n}");
source_view.extend_selection(); view.extend_selection();
assert(source_view.get_selected_text() == source); assert(view.get_selected_text() == source);
source_view.shrink_selection(); view.shrink_selection();
assert(source_view.get_selected_text() == "{\n {\n test;\n }\n}"); assert(view.get_selected_text() == "{\n {\n test;\n }\n}");
source_view.shrink_selection(); view.shrink_selection();
assert(source_view.get_selected_text() == "\n {\n test;\n }\n"); assert(view.get_selected_text() == "\n {\n test;\n }\n");
source_view.shrink_selection(); view.shrink_selection();
assert(source_view.get_selected_text() == "{\n test;\n }"); assert(view.get_selected_text() == "{\n test;\n }");
}
}
// Snippet tests
{
auto buffer = view.get_buffer();
GdkEventKey event;
event.state = 0;
{
buffer->set_text("");
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << std::endl;");
assert(buffer->get_text() == "std::cout << content << std::endl;");
Gtk::TextIter start, end;
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 13);
assert(end.get_offset() == 20);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << t << std::endl;");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << std::endl;");
}
{
buffer->set_text("");
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:} << std::endl;");
assert(buffer->get_text() == "std::cout << << std::endl;");
Gtk::TextIter start, end;
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 13);
assert(end.get_offset() == 13);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << t << std::endl;");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << std::endl;");
}
{
buffer->set_text("");
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << $1 << std::endl;");
assert(buffer->get_text() == "std::cout << << std::endl;");
Gtk::TextIter start, end;
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 13);
assert(end.get_offset() == 13);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << t << std::endl;");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << std::endl;");
}
{
buffer->set_text("");
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;");
Gtk::TextIter start, end;
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 13);
assert(end.get_offset() == 20);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << t << t << std::endl;");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << te << std::endl;");
event.keyval = GDK_KEY_Escape;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << te << std::endl;");
event.keyval = GDK_KEY_s;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << tes << te << std::endl;");
}
{
buffer->set_text("");
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;");
Gtk::TextIter start, end;
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 13);
assert(end.get_offset() == 21);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << t << content2 << std::endl;");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << content2 << std::endl;");
event.keyval = GDK_KEY_Tab;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << content2 << std::endl;");
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << t << std::endl;");
}
{
buffer->set_text("");
view.insert_snippet(buffer->get_insert()->get_iter(), "std::cout << ${1:content} << $0 << std::endl;");
assert(buffer->get_text() == "std::cout << content << << std::endl;");
Gtk::TextIter start, end;
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 13);
assert(end.get_offset() == 20);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << t << << std::endl;");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << << std::endl;");
event.keyval = GDK_KEY_Tab;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << << std::endl;");
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << te << t << std::endl;");
}
{
buffer->set_text("");
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;");
Gtk::TextIter start, end;
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 25);
assert(end.get_offset() == 33);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << content2 << t << std::endl;");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << content2 << te << std::endl;");
event.keyval = GDK_KEY_Tab;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << content2 << te << std::endl;");
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "std::cout << t << te << std::endl;");
}
{
buffer->set_text("test");
buffer->select_range(buffer->begin(), buffer->end());
view.insert_snippet(buffer->get_insert()->get_iter(), "<$1>${TM_SELECTED_TEXT}</$1>");
assert(buffer->get_text() == "<>test</>");
Gtk::TextIter start, end;
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 1);
assert(end.get_offset() == 1);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "<t>test</t>");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "<te>test</te>");
}
{
buffer->set_text("test test");
Gtk::TextIter start, end;
start = buffer->begin();
end = start;
end.forward_chars(4);
buffer->select_range(start, end);
view.insert_snippet(buffer->get_insert()->get_iter(), "<$1>${TM_SELECTED_TEXT:TM_CURRENT_LINE}</$1>");
assert(buffer->get_text() == "<>test</> test");
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 1);
assert(end.get_offset() == 1);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "<t>test</t> test");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "<te>test</te> test");
}
{
buffer->set_text("test test");
view.insert_snippet(buffer->get_insert()->get_iter(), "<$1>${TM_SELECTED_TEXT:TM_CURRENT_LINE}</$1>");
assert(buffer->get_text() == "<>test test</>");
Gtk::TextIter start, end;
buffer->get_selection_bounds(start, end);
assert(start.get_offset() == 1);
assert(end.get_offset() == 1);
event.keyval = GDK_KEY_t;
view.on_key_press_event(&event);
assert(buffer->get_text() == "<t>test test</t>");
event.keyval = GDK_KEY_e;
view.on_key_press_event(&event);
assert(buffer->get_text() == "<te>test test</te>");
} }
} }
} }

Loading…
Cancel
Save