Browse Source

Minor cleanup and made insertion of ' and " more restrictive

merge-requests/365/head
eidheim 9 years ago
parent
commit
a4619cdb74
  1. 22
      src/source.cc
  2. 2
      src/source_spellcheck.cc

22
src/source.cc

@ -1228,7 +1228,6 @@ bool Source::View::on_key_press_event(GdkEventKey* key) {
get_buffer()->begin_user_action();
if(!spellcheck_all) {
if(Config::get().source.smart_brackets && on_key_press_event_smart_brackets(key)) {
get_buffer()->end_user_action();
return true;
@ -1237,7 +1236,6 @@ bool Source::View::on_key_press_event(GdkEventKey* key) {
get_buffer()->end_user_action();
return true;
}
}
if(get_buffer()->get_has_selection()) {
auto return_value=on_key_press_event_basic(key);
@ -1797,6 +1795,12 @@ bool Source::View::on_key_press_event_smart_insertions(GdkEventKey *key) {
auto next_iter=iter;
next_iter.forward_char();
auto allow_insertion=[](const Gtk::TextIter &iter) {
if(iter.ends_line() || *iter==' ' || *iter=='\t' || *iter==';' || *iter==')' || *iter==']' || *iter=='[' || *iter=='{' || *iter=='}')
return true;
return false;
};
// Move right when clicking ' before a ' or when clicking " before a "
if(((key->keyval==GDK_KEY_apostrophe && *iter=='\'') ||
(key->keyval==GDK_KEY_quotedbl && *iter=='\"')) && is_code_iter(next_iter)) {
@ -1830,9 +1834,7 @@ bool Source::View::on_key_press_event_smart_insertions(GdkEventKey *key) {
if(is_code_iter(iter)) {
// Insert ()
if(key->keyval==GDK_KEY_parenleft) {
//Allowed symbols
if(iter.ends_line() || *iter==' ' || *iter=='\t' || *iter==';' || *iter==')' || *iter==']' || *iter=='[' || *iter=='{' || *iter=='}') {
if(key->keyval==GDK_KEY_parenleft && allow_insertion(iter)) {
if(symbol_count(iter, '(', ')')==0) {
get_buffer()->insert_at_cursor("()");
auto iter=get_buffer()->get_insert()->get_iter();
@ -1842,11 +1844,8 @@ bool Source::View::on_key_press_event_smart_insertions(GdkEventKey *key) {
return true;
}
}
}
// Insert []
else if(key->keyval==GDK_KEY_bracketleft) {
//Allowed symbols
if(iter.ends_line() || *iter==' ' || *iter=='\t' || *iter==';' || *iter==')' || *iter==']' || *iter=='[' || *iter=='{' || *iter=='}') {
else if(key->keyval==GDK_KEY_bracketleft && allow_insertion(iter)) {
if(symbol_count(iter, '[', ']')==0) {
get_buffer()->insert_at_cursor("[]");
auto iter=get_buffer()->get_insert()->get_iter();
@ -1856,7 +1855,6 @@ bool Source::View::on_key_press_event_smart_insertions(GdkEventKey *key) {
return true;
}
}
}
// Move left on ] in []
else if(key->keyval==GDK_KEY_bracketright) {
if(*iter==']' && symbol_count(iter, '[', ']')==0) {
@ -1889,7 +1887,7 @@ bool Source::View::on_key_press_event_smart_insertions(GdkEventKey *key) {
// }
// }
// Insert ''
else if(key->keyval==GDK_KEY_apostrophe && symbol_count(iter, '\'', -1)%2==0) {
else if(key->keyval==GDK_KEY_apostrophe && allow_insertion(iter) && symbol_count(iter, '\'', -1)%2==0) {
get_buffer()->insert_at_cursor("''");
auto iter=get_buffer()->get_insert()->get_iter();
iter.backward_char();
@ -1898,7 +1896,7 @@ bool Source::View::on_key_press_event_smart_insertions(GdkEventKey *key) {
return true;
}
// Insert ""
else if(key->keyval==GDK_KEY_quotedbl && symbol_count(iter, '"', -1)%2==0) {
else if(key->keyval==GDK_KEY_quotedbl && allow_insertion(iter) && symbol_count(iter, '"', -1)%2==0) {
get_buffer()->insert_at_cursor("\"\"");
auto iter=get_buffer()->get_insert()->get_iter();
iter.backward_char();

2
src/source_spellcheck.cc

@ -308,6 +308,8 @@ void Source::SpellCheckView::goto_next_spellcheck_error() {
}
bool Source::SpellCheckView::is_code_iter(const Gtk::TextIter &iter) {
if(spellcheck_all)
return false;
if(*iter=='\'') {
auto previous_iter=iter;
if(!iter.starts_line() && previous_iter.backward_char() && *previous_iter=='\'')

Loading…
Cancel
Save