Browse Source

Minor improvement to Source::SpellCheckView::is_code_iter

merge-requests/389/head
eidheim 7 years ago
parent
commit
c17fd4989a
  1. 36
      src/source_spellcheck.cc

36
src/source_spellcheck.cc

@ -341,25 +341,27 @@ bool Source::SpellCheckView::is_code_iter(const Gtk::TextIter &iter) {
return false; return false;
} }
if(spellcheck_all) { if(spellcheck_all) {
if(no_spell_check_tag && (iter.has_tag(no_spell_check_tag) || iter.begins_tag(no_spell_check_tag) || iter.ends_tag(no_spell_check_tag))) if(no_spell_check_tag) {
return true; if(iter.has_tag(no_spell_check_tag) || iter.begins_tag(no_spell_check_tag) || iter.ends_tag(no_spell_check_tag))
// workaround for gtksourceview bug return true;
if(iter.ends_line()) { // workaround for gtksourceview bug
auto previous_iter = iter; if(iter.ends_line()) {
if(previous_iter.backward_char()) { auto previous_iter = iter;
if(*previous_iter == '\'' || *previous_iter == '"') { if(previous_iter.backward_char()) {
auto next_iter = iter; if(*previous_iter == '\'' || *previous_iter == '"') {
next_iter.forward_char(); auto next_iter = iter;
if(next_iter.begins_tag(no_spell_check_tag) || next_iter.is_end()) next_iter.forward_char();
return true; if(next_iter.begins_tag(no_spell_check_tag) || next_iter.is_end())
return true;
}
} }
} }
} // for example, mark first " as code iter in this case: r""
// for example, mark first " as code iter in this case: r"" if(*iter == '\'' || *iter == '"') {
if(*iter == '\'' || *iter == '"') { auto previous_iter = iter;
auto previous_iter = iter; if(previous_iter.backward_char() && *previous_iter != '\'' && *previous_iter != '\"' && previous_iter.ends_tag(no_spell_check_tag))
if(previous_iter.backward_char() && *previous_iter != '\'' && *previous_iter != '\"' && previous_iter.ends_tag(no_spell_check_tag)) return true;
return true; }
} }
return false; return false;
} }

Loading…
Cancel
Save