|
|
|
@ -1738,12 +1738,20 @@ bool Source::View::on_key_press_event_basic(GdkEventKey *key) { |
|
|
|
cleanup_whitespace_characters_on_return(iter); |
|
|
|
cleanup_whitespace_characters_on_return(iter); |
|
|
|
|
|
|
|
|
|
|
|
iter = get_buffer()->get_insert()->get_iter(); |
|
|
|
iter = get_buffer()->get_insert()->get_iter(); |
|
|
|
auto tabs = get_line_before(get_tabs_end_iter(iter)); |
|
|
|
auto condition_iter = iter; |
|
|
|
|
|
|
|
condition_iter.backward_char(); |
|
|
|
|
|
|
|
condition_iter = find_non_whitespace_code_iter_backward(condition_iter); |
|
|
|
|
|
|
|
auto start_iter = get_start_of_expression(condition_iter); |
|
|
|
|
|
|
|
auto tabs_end_iter = get_tabs_end_iter(start_iter); |
|
|
|
|
|
|
|
auto tabs = get_line_before(tabs_end_iter); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Python indenting after :
|
|
|
|
|
|
|
|
if(*condition_iter == ':' && language && language->get_id() == "python") { |
|
|
|
|
|
|
|
get_buffer()->insert_at_cursor('\n' + tabs + tab); |
|
|
|
|
|
|
|
scroll_to(get_buffer()->get_insert()); |
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
auto previous_iter = iter; |
|
|
|
|
|
|
|
if(previous_iter.backward_char() && *previous_iter == ':' && language && language->get_id() == "python") // Python indenting after :
|
|
|
|
|
|
|
|
tabs += tab; |
|
|
|
|
|
|
|
else { |
|
|
|
|
|
|
|
int line_nr = iter.get_line(); |
|
|
|
int line_nr = iter.get_line(); |
|
|
|
if(iter.ends_line() && (line_nr + 1) < get_buffer()->get_line_count()) { |
|
|
|
if(iter.ends_line() && (line_nr + 1) < get_buffer()->get_line_count()) { |
|
|
|
auto next_line_tabs = get_line_before(get_tabs_end_iter(line_nr + 1)); |
|
|
|
auto next_line_tabs = get_line_before(get_tabs_end_iter(line_nr + 1)); |
|
|
|
@ -1753,7 +1761,6 @@ bool Source::View::on_key_press_event_basic(GdkEventKey *key) { |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
get_buffer()->insert_at_cursor('\n' + tabs); |
|
|
|
get_buffer()->insert_at_cursor('\n' + tabs); |
|
|
|
scroll_to(get_buffer()->get_insert()); |
|
|
|
scroll_to(get_buffer()->get_insert()); |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
@ -1765,8 +1772,8 @@ bool Source::View::on_key_press_event_basic(GdkEventKey *key) { |
|
|
|
auto prev_line_iter = iter; |
|
|
|
auto prev_line_iter = iter; |
|
|
|
while(prev_line_iter.starts_line() && prev_line_iter.backward_char()) { |
|
|
|
while(prev_line_iter.starts_line() && prev_line_iter.backward_char()) { |
|
|
|
} |
|
|
|
} |
|
|
|
prev_line_iter = get_start_of_expression(prev_line_iter); |
|
|
|
auto start_iter = get_start_of_expression(prev_line_iter); |
|
|
|
auto prev_line_tabs_end_iter = get_tabs_end_iter(prev_line_iter); |
|
|
|
auto prev_line_tabs_end_iter = get_tabs_end_iter(start_iter); |
|
|
|
|
|
|
|
|
|
|
|
auto next_line_iter = iter; |
|
|
|
auto next_line_iter = iter; |
|
|
|
while(next_line_iter.starts_line() && next_line_iter.forward_char()) { |
|
|
|
while(next_line_iter.starts_line() && next_line_iter.forward_char()) { |
|
|
|
@ -1987,8 +1994,8 @@ bool Source::View::on_key_press_event_bracket_language(GdkEventKey *key) { |
|
|
|
condition_iter.backward_char(); |
|
|
|
condition_iter.backward_char(); |
|
|
|
condition_iter = find_non_whitespace_code_iter_backward(condition_iter); |
|
|
|
condition_iter = find_non_whitespace_code_iter_backward(condition_iter); |
|
|
|
auto start_iter = get_start_of_expression(condition_iter); |
|
|
|
auto start_iter = get_start_of_expression(condition_iter); |
|
|
|
auto tabs_end_iter = (get_tabs_end_iter(get_buffer()->get_iter_at_line(start_iter.get_line()))); |
|
|
|
auto tabs_end_iter = get_tabs_end_iter(start_iter); |
|
|
|
auto tabs = get_line_before(get_tabs_end_iter(get_buffer()->get_iter_at_line(start_iter.get_line()))); |
|
|
|
auto tabs = get_line_before(tabs_end_iter); |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* Change tabs after ending comment block with an extra space (as in this case) |
|
|
|
* Change tabs after ending comment block with an extra space (as in this case) |
|
|
|
|