static gboolean goto_next_word (GeditDocument *doc) { CheckRange *range; GtkTextIter current_iter; GtkTextIter old_current_iter; GtkTextIter end_iter; gedit_debug (DEBUG_PLUGINS); g_return_val_if_fail (doc != NULL, FALSE); range = get_check_range (doc); g_return_val_if_fail (range != NULL, FALSE); gtk_text_buffer_get_iter_at_mark (GTK_TEXT_BUFFER (doc), ¤t_iter, range->current_mark); gtk_text_buffer_get_end_iter (GTK_TEXT_BUFFER (doc), &end_iter); old_current_iter = current_iter; gtk_text_iter_forward_word_ends (¤t_iter, 2); gtk_text_iter_backward_word_start (¤t_iter); if (gedit_spell_utils_skip_no_spell_check (¤t_iter, &end_iter) && (gtk_text_iter_compare (&old_current_iter, ¤t_iter) < 0) && (gtk_text_iter_compare (¤t_iter, &end_iter) < 0)) { update_current (doc, gtk_text_iter_get_offset (¤t_iter)); return TRUE; } return FALSE; }
ustring CheckCapitalization::get_context(GtkTextIter iter) // Returns the context at iter: A couple of words before and after. { GtkTextIter iter1 = iter; GtkTextIter iter2 = iter; gtk_text_iter_backward_word_starts(&iter1, 2); gtk_text_iter_forward_word_ends(&iter2, 2); return gtk_text_iter_get_text(&iter1, &iter2); }
ustring CheckMatchingPairs::get_context(ustring & line, unsigned int offset) // Returns the context at offset: A couple of words before and after. { // Result. ustring returnvalue; // Load text into buffer. GtkTextBuffer *textbuffer; textbuffer = gtk_text_buffer_new(NULL); gtk_text_buffer_set_text(textbuffer, line.c_str(), -1); // Iterators. GtkTextIter iter1; GtkTextIter iter2; // Find boundaries of context to return. gtk_text_buffer_get_iter_at_offset(textbuffer, &iter1, offset); iter2 = iter1; gtk_text_iter_backward_word_starts(&iter1, 2); gtk_text_iter_forward_word_ends(&iter2, 2); return gtk_text_iter_get_text(&iter1, &iter2); // Free memory g_object_unref(textbuffer); // Give us the result. return returnvalue; }