From 2a62ca69b748643e065a5927a7a0aba98912846c Mon Sep 17 00:00:00 2001 From: eidheim Date: Fri, 22 Jun 2018 12:19:02 +0200 Subject: [PATCH] Fixed intentation after "if constexpr" and "else if constexpr" --- src/source.cc | 4 ++-- tests/source_key_test.cc | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/source.cc b/src/source.cc index e47c961..51ac426 100644 --- a/src/source.cc +++ b/src/source.cc @@ -1827,8 +1827,8 @@ bool Source::View::on_key_press_event_basic(GdkEventKey* key) { //Bracket language indentation bool Source::View::on_key_press_event_bracket_language(GdkEventKey* key) { - const static std::regex no_bracket_statement_regex("^ *(if|for|while) *\\(.*[^;}{] *$|" - "^[}]? *else if *\\(.*[^;}{] *$|" + const static std::regex no_bracket_statement_regex("^ *(if( +constexpr)?|for|while) *\\(.*[^;}{] *$|" + "^[}]? *else if( +constexpr)? *\\(.*[^;}{] *$|" "^[}]? *else *$", std::regex::extended); auto iter=get_buffer()->get_insert()->get_iter(); diff --git a/tests/source_key_test.cc b/tests/source_key_test.cc index bbc13d2..d53826f 100644 --- a/tests/source_key_test.cc +++ b/tests/source_key_test.cc @@ -317,6 +317,13 @@ int main() { " "); g_assert(view.get_buffer()->get_insert()->get_iter() == view.get_buffer()->end()); } + { + view.get_buffer()->set_text(" else if constexpr(true)"); + view.on_key_press_event(&event); + g_assert(view.get_buffer()->get_text() == " else if constexpr(true)\n" + " "); + g_assert(view.get_buffer()->get_insert()->get_iter() == view.get_buffer()->end()); + } { view.get_buffer()->set_text(" } else if(true)//comment"); while(Gtk::Main::events_pending()) @@ -386,6 +393,15 @@ int main() { " "); g_assert(view.get_buffer()->get_insert()->get_iter() == view.get_buffer()->end()); } + { + view.get_buffer()->set_text(" if constexpr(true &&\n" + " false)"); + view.on_key_press_event(&event); + g_assert(view.get_buffer()->get_text() == " if constexpr(true &&\n" + " false)\n" + " "); + g_assert(view.get_buffer()->get_insert()->get_iter() == view.get_buffer()->end()); + } { view.get_buffer()->set_text(" if(true &&\n" " false) {");