@@ -146,25 +146,24 @@ public class Scratch.Plugins.Completion : Peas.ExtensionBase, Peas.Activatable {
146146 var text_to_add = (word_before + new_text + word_after);
147147 var text_to_remove = (word_before + word_after);
148148 // Only update if words have changed
149- if (text_to_add != text_to_remove &&
150- (new_text + word_after). strip () != " " &&
151- (new_text + word_before). strip () != " " ) {
152-
149+ if (text_to_add != text_to_remove) {
153150 parser. parse_text_and_add (text_to_add);
154151 parser. remove_word (text_to_remove);
155152 }
156153 }
157154
158155 private void on_delete_range (Gtk .TextIter del_start_iter , Gtk .TextIter del_end_iter ) {
159156 var del_text = del_start_iter. get_text (del_end_iter);
160- var word_before = parser. get_word_immediately_before (del_end_iter );
161- var word_after = parser. get_word_immediately_after (del_start_iter );
157+ var word_before = parser. get_word_immediately_before (del_start_iter );
158+ var word_after = parser. get_word_immediately_after (del_end_iter );
162159 var to_remove = word_before + del_text + word_after;
163- parser. parse_text_and_remove (to_remove);
164-
165- // A new word could have been created
166160 var to_add = word_before + word_after;
161+
162+ // More than one word could be deleted so parse.
163+ parser. parse_text_and_remove (to_remove);
164+ // Only one at most new words
167165 parser. add_word (to_add);
166+
168167 if (del_text. length == 1 ) {
169168 // Wait until after buffer has been amended then trigger completion
170169 Timeout . add (current_provider. interactive_delay * 2 , () = > {
0 commit comments