Browse Source

Improved bracket indentation after namespace { without indentation after

merge-requests/365/head
eidheim 9 years ago
parent
commit
977f90eac9
  1. 8
      src/source.cc
  2. 1
      src/source.h

8
src/source.cc

@ -1735,15 +1735,19 @@ bool Source::View::on_key_press_event_bracket_language(GdkEventKey* key) {
if(*previous_iter=='{') { if(*previous_iter=='{') {
Gtk::TextIter found_iter; Gtk::TextIter found_iter;
bool found_right_bracket=find_close_curly_bracket_forward(iter, found_iter); // Check if an '}' is needed
bool has_right_curly_bracket=false; bool has_right_curly_bracket=false;
bool found_right_bracket=find_close_curly_bracket_forward(iter, found_iter);
if(found_right_bracket) { if(found_right_bracket) {
auto tabs_end_iter=get_tabs_end_iter(found_iter); auto tabs_end_iter=get_tabs_end_iter(found_iter);
auto line_tabs=get_line_before(tabs_end_iter); auto line_tabs=get_line_before(tabs_end_iter);
if(tabs.size()==line_tabs.size()) if(tabs.size()==line_tabs.size())
has_right_curly_bracket=true; has_right_curly_bracket=true;
} }
// special case for functions and classes with no indentation after: namespace {
if(tabs.empty() && has_right_curly_bracket)
has_right_curly_bracket=symbol_count(iter, '{', '}')!=1;
if(*get_buffer()->get_insert()->get_iter()=='}') { if(*get_buffer()->get_insert()->get_iter()=='}') {
get_buffer()->insert_at_cursor("\n"+tabs+tab+"\n"+tabs); get_buffer()->insert_at_cursor("\n"+tabs+tab+"\n"+tabs);
auto insert_it = get_buffer()->get_insert()->get_iter(); auto insert_it = get_buffer()->get_insert()->get_iter();

1
src/source.h

@ -129,6 +129,7 @@ namespace Source {
Gtk::TextIter get_tabs_end_iter(int line_nr); Gtk::TextIter get_tabs_end_iter(int line_nr);
Gtk::TextIter get_tabs_end_iter(); Gtk::TextIter get_tabs_end_iter();
/// Usually returns at start of line, but not always
Gtk::TextIter find_start_of_sentence(Gtk::TextIter iter); Gtk::TextIter find_start_of_sentence(Gtk::TextIter iter);
bool find_open_non_curly_bracket_backward(Gtk::TextIter iter, Gtk::TextIter &found_iter); bool find_open_non_curly_bracket_backward(Gtk::TextIter iter, Gtk::TextIter &found_iter);
bool find_open_curly_bracket_backward(Gtk::TextIter iter, Gtk::TextIter &found_iter); bool find_open_curly_bracket_backward(Gtk::TextIter iter, Gtk::TextIter &found_iter);

Loading…
Cancel
Save