Browse Source

Cleanup of { indentation (Allman style)

merge-requests/365/head
eidheim 10 years ago
parent
commit
a16ab4be80
  1. 18
      src/source_clang.cc

18
src/source_clang.cc

@ -99,8 +99,8 @@ void Source::ClangViewParse::configure() {
} }
bracket_regex=boost::regex("^([ \\t]*).*\\{ *$"); bracket_regex=boost::regex("^([ \\t]*).*\\{ *$");
no_bracket_statement_regex=boost::regex("^([ \\t]*)(if|for|else if|catch|while) *\\(.*[^;}] *$"); no_bracket_statement_regex=boost::regex("^([ \\t]*)(if|for|else if|while) *\\(.*[^;}] *$");
no_bracket_no_para_statement_regex=boost::regex("^([ \\t]*)(else|try|do) *$"); no_bracket_no_para_statement_regex=boost::regex("^([ \\t]*)(else) *$");
} }
void Source::ClangViewParse::parse_initialize() { void Source::ClangViewParse::parse_initialize() {
@ -610,24 +610,18 @@ bool Source::ClangViewParse::on_key_press_event(GdkEventKey* key) {
auto iter=get_buffer()->get_insert()->get_iter(); auto iter=get_buffer()->get_insert()->get_iter();
auto tabs_end_iter=get_tabs_end_iter(); auto tabs_end_iter=get_tabs_end_iter();
auto tabs=get_line_before(tabs_end_iter); auto tabs=get_line_before(tabs_end_iter);
size_t line_nr=get_source_buffer()->get_insert()->get_iter().get_line(); size_t line_nr=iter.get_line();
if(line_nr>0 && tabs.size()>=tab_size && iter==tabs_end_iter) { if(line_nr>0 && tabs.size()>=tab_size && iter==tabs_end_iter) {
std::string previous_line=get_line(line_nr-1); std::string previous_line=get_line(line_nr-1);
boost::smatch sm; boost::smatch sm;
if(!boost::regex_match(previous_line, sm, bracket_regex)) { if(!boost::regex_match(previous_line, sm, bracket_regex)) {
auto start_iter=iter; auto start_iter=iter;
start_iter.backward_chars(tab_size); start_iter.backward_chars(tab_size);
if(boost::regex_match(previous_line, sm, no_bracket_statement_regex)) { if(boost::regex_match(previous_line, sm, no_bracket_statement_regex) ||
boost::regex_match(previous_line, sm, no_bracket_no_para_statement_regex)) {
get_buffer()->erase(start_iter, iter); get_buffer()->erase(start_iter, iter);
get_buffer()->insert_at_cursor("{"); get_buffer()->insert_at_cursor("{");
scroll_to(get_source_buffer()->get_insert()); scroll_to(get_buffer()->get_insert());
get_buffer()->end_user_action();
return true;
}
else if(boost::regex_match(previous_line, sm, no_bracket_no_para_statement_regex)) {
get_buffer()->erase(start_iter, iter);
get_buffer()->insert_at_cursor("{");
scroll_to(get_source_buffer()->get_insert());
get_buffer()->end_user_action(); get_buffer()->end_user_action();
return true; return true;
} }

Loading…
Cancel
Save