Skip to content

Commit 0cc6679

Browse files
committed
Fix delete range
1 parent 51794aa commit 0cc6679

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

plugins/word-completion/engine.vala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -201,17 +201,19 @@ public class Euclide.Completion.Parser : GLib.Object {
201201

202202
public void add_word (string word_to_add) requires (current_tree != null) {
203203
if (is_valid_word (word_to_add)) {
204-
warning ("ADD WORD %s", word_to_add);
204+
// warning ("ADD WORD %s", word_to_add);
205205
lock (current_tree) {
206206
current_tree.add_word (word_to_add);
207207
}
208208
}
209209
}
210210

211211
public void remove_word (string word_to_remove) requires (current_tree != null) {
212-
warning ("REMOVE WORD %s", word_to_remove);
213-
lock (current_tree) {
214-
current_tree.remove_word (word_to_remove);
212+
if (is_valid_word (word_to_remove)) {
213+
// warning ("REMOVE WORD %s", word_to_remove);
214+
lock (current_tree) {
215+
current_tree.remove_word (word_to_remove);
216+
}
215217
}
216218
}
217219

plugins/word-completion/plugin.vala

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)