Browse Source

Slight improvement to find_close_symbol_forward and find_open_symbol_backward

pipelines/235045657
eidheim 5 years ago
parent
commit
e3f294f5c8
  1. 8
      src/source.cpp
  2. 28
      tests/source_key_test.cpp

8
src/source.cpp

@ -1819,9 +1819,9 @@ bool Source::View::find_close_symbol_forward(Gtk::TextIter iter, Gtk::TextIter &
else {
long curly_count = 0;
do {
if(*iter == positive_char && is_code_iter(iter))
if(curly_count == 0 && *iter == positive_char && is_code_iter(iter))
count++;
else if(*iter == negative_char && is_code_iter(iter)) {
else if(curly_count == 0 && *iter == negative_char && is_code_iter(iter)) {
if(count == 0) {
found_iter = iter;
return true;
@ -1859,14 +1859,14 @@ bool Source::View::find_open_symbol_backward(Gtk::TextIter iter, Gtk::TextIter &
else {
long curly_count = 0;
do {
if(*iter == positive_char && is_code_iter(iter)) {
if(curly_count == 0 && *iter == positive_char && is_code_iter(iter)) {
if(count == 0) {
found_iter = iter;
return true;
}
count++;
}
else if(*iter == negative_char && is_code_iter(iter))
else if(curly_count == 0 && *iter == negative_char && is_code_iter(iter))
count--;
else if(*iter == '{' && is_code_iter(iter)) {
if(curly_count == 0)

28
tests/source_key_test.cpp

@ -2483,6 +2483,34 @@ int main() {
iter.backward_chars(12);
g_assert(buffer->get_insert()->get_iter() == iter);
}
{
buffer->set_text(" test(\n"
" <div onClick={() => {}}>");
auto iter = buffer->end();
buffer->place_cursor(iter);
view.on_key_press_event(&event);
g_assert(buffer->get_text() == " test(\n"
" <div onClick={() => {}}>\n"
" \n"
" </div>");
iter = buffer->end();
iter.backward_chars(11);
g_assert(buffer->get_insert()->get_iter() == iter);
}
{
buffer->set_text(" test(\n"
" <>");
auto iter = buffer->end();
buffer->place_cursor(iter);
view.on_key_press_event(&event);
g_assert(buffer->get_text() == " test(\n"
" <>\n"
" \n"
" </>");
iter = buffer->end();
iter.backward_chars(8);
g_assert(buffer->get_insert()->get_iter() == iter);
}
{
buffer->set_text(" test(\n"
" <div>\n"

Loading…
Cancel
Save