From 98dc63cce4606b517bd64edb623b3f2a11659cec Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Tue, 28 Jan 2014 11:37:43 +0100 Subject: [PATCH] Close auto magic complete when prefix is empty While removing text --- lib/ace/ext/language_tools.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/ace/ext/language_tools.js b/lib/ace/ext/language_tools.js index b505fcfa..67e35dc7 100644 --- a/lib/ace/ext/language_tools.js +++ b/lib/ace/ext/language_tools.js @@ -119,6 +119,7 @@ var onChangeAutocomplete = function(e, editor) { var session = editor.getSession(); var pos = editor.getCursorPosition(); var line = session.getLine(pos.row); + var hasCompleter = (editor.completer && editor.completer.activated); // Detect paste (poor man's paste detection) var typing = !( @@ -129,6 +130,15 @@ var onChangeAutocomplete = function(e, editor) { e.data.action !== 'insertText' ); + // We don't want to autocomplete with no prefix + if( + e.data.action === 'removeText' && + util.retrievePrecedingIdentifier(line, pos.column) === '' + ) { + if(hasCompleter) editor.completer.detach(); + return; + } + // we don't want to autocomplete on paste events if(!typing) { return; @@ -141,8 +151,6 @@ var onChangeAutocomplete = function(e, editor) { // The prefix to autocomplete for var prefix = util.retrievePrecedingIdentifier(line, pos.column); - var hasCompleter = (editor.completer && editor.completer.activated); - // Only autocomplete if there's a prefix that can be matched if(prefix !== '' && !(hasCompleter)) { if (!editor.completer) {