|
|
|
@ -186,9 +186,15 @@ Source::View::View(const boost::filesystem::path &file_path): file_path(file_pat |
|
|
|
delayed_spellcheck_suggestions_connection.disconnect(); |
|
|
|
delayed_spellcheck_suggestions_connection.disconnect(); |
|
|
|
|
|
|
|
|
|
|
|
auto iter=get_buffer()->get_insert()->get_iter(); |
|
|
|
auto iter=get_buffer()->get_insert()->get_iter(); |
|
|
|
|
|
|
|
bool ends_line=iter.ends_line(); |
|
|
|
|
|
|
|
if(iter.backward_char()) { |
|
|
|
auto context_iter=iter; |
|
|
|
auto context_iter=iter; |
|
|
|
if(((last_keyval_is_backspace && !iter.ends_line()) || iter.backward_char()) && context_iter.backward_char() && context_iter.backward_char()) { |
|
|
|
bool backward_success=true; |
|
|
|
|
|
|
|
if(ends_line || *iter=='/' || *iter=='*') //iter_has_context_class is sadly bugged
|
|
|
|
|
|
|
|
backward_success=context_iter.backward_char(); |
|
|
|
|
|
|
|
if(backward_success) { |
|
|
|
if((spellcheck_all && !get_source_buffer()->iter_has_context_class(context_iter, "no-spell-check")) || get_source_buffer()->iter_has_context_class(context_iter, "comment") || get_source_buffer()->iter_has_context_class(context_iter, "string")) { |
|
|
|
if((spellcheck_all && !get_source_buffer()->iter_has_context_class(context_iter, "no-spell-check")) || get_source_buffer()->iter_has_context_class(context_iter, "comment") || get_source_buffer()->iter_has_context_class(context_iter, "string")) { |
|
|
|
|
|
|
|
if(last_keyval_is_backspace && !is_word_iter(iter) && iter.forward_char()) {} //backspace fix
|
|
|
|
if(*iter==32 || *iter==45) { //Might have used space or - to split two words
|
|
|
|
if(*iter==32 || *iter==45) { //Might have used space or - to split two words
|
|
|
|
auto first=iter; |
|
|
|
auto first=iter; |
|
|
|
auto second=iter; |
|
|
|
auto second=iter; |
|
|
|
@ -206,6 +212,7 @@ Source::View::View(const boost::filesystem::path &file_path): file_path(file_pat |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
get_buffer()->signal_mark_set().connect([this](const Gtk::TextBuffer::iterator& iter, const Glib::RefPtr<Gtk::TextBuffer::Mark>& mark) { |
|
|
|
get_buffer()->signal_mark_set().connect([this](const Gtk::TextBuffer::iterator& iter, const Glib::RefPtr<Gtk::TextBuffer::Mark>& mark) { |
|
|
|
|