|
@@ -41,14 +41,12 @@ Autocompleter.prototype.getCompletions = function (editor, session, pos, prefix,
|
|
|
var before = editor.getTextBeforeCursor(";");
|
|
var before = editor.getTextBeforeCursor(";");
|
|
|
var after = editor.getTextAfterCursor(";");
|
|
var after = editor.getTextAfterCursor(";");
|
|
|
|
|
|
|
|
- editor.showSpinner();
|
|
|
|
|
self.autocomplete(before, after, function(result) {
|
|
self.autocomplete(before, after, function(result) {
|
|
|
- editor.hideSpinner();
|
|
|
|
|
callback(null, result);
|
|
callback(null, result);
|
|
|
- });
|
|
|
|
|
|
|
+ }, editor);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-Autocompleter.prototype.callAutocompleteApi = function (tableName, nested, success, failure) {
|
|
|
|
|
|
|
+Autocompleter.prototype.callAutocompleteApi = function (tableName, nested, success, failure, editor) {
|
|
|
var self = this;
|
|
var self = this;
|
|
|
var path = self.assistHelper.activeDatabase();
|
|
var path = self.assistHelper.activeDatabase();
|
|
|
|
|
|
|
@@ -63,6 +61,9 @@ Autocompleter.prototype.callAutocompleteApi = function (tableName, nested, succe
|
|
|
|
|
|
|
|
// TODO: Use shared cache with assist helper.
|
|
// TODO: Use shared cache with assist helper.
|
|
|
|
|
|
|
|
|
|
+ if (editor) {
|
|
|
|
|
+ editor.showSpinner();
|
|
|
|
|
+ }
|
|
|
$.post("/notebook/api/autocomplete/" + path, {
|
|
$.post("/notebook/api/autocomplete/" + path, {
|
|
|
notebook: ko.mapping.toJSON(self.notebook.getContext()),
|
|
notebook: ko.mapping.toJSON(self.notebook.getContext()),
|
|
|
snippet: ko.mapping.toJSON(self.snippet.getContext())
|
|
snippet: ko.mapping.toJSON(self.snippet.getContext())
|
|
@@ -72,7 +73,11 @@ Autocompleter.prototype.callAutocompleteApi = function (tableName, nested, succe
|
|
|
} else {
|
|
} else {
|
|
|
failure();
|
|
failure();
|
|
|
}
|
|
}
|
|
|
- }).fail(failure);
|
|
|
|
|
|
|
+ }).fail(failure).always(function () {
|
|
|
|
|
+ if (editor) {
|
|
|
|
|
+ editor.hideSpinner();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
Autocompleter.prototype.getFromReferenceIndex = function (statement) {
|
|
Autocompleter.prototype.getFromReferenceIndex = function (statement) {
|
|
@@ -249,7 +254,7 @@ Autocompleter.prototype.extractFields = function (data, valuePrefix, includeStar
|
|
|
return result;
|
|
return result;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-Autocompleter.prototype.autocomplete = function(beforeCursor, afterCursor, callback) {
|
|
|
|
|
|
|
+Autocompleter.prototype.autocomplete = function(beforeCursor, afterCursor, callback, editor) {
|
|
|
var onFailure = function() {
|
|
var onFailure = function() {
|
|
|
callback([]);
|
|
callback([]);
|
|
|
};
|
|
};
|
|
@@ -315,7 +320,7 @@ Autocompleter.prototype.autocomplete = function(beforeCursor, afterCursor, callb
|
|
|
fromKeyword += " ";
|
|
fromKeyword += " ";
|
|
|
}
|
|
}
|
|
|
callback(self.extractFields(data, fromKeyword));
|
|
callback(self.extractFields(data, fromKeyword));
|
|
|
- }, onFailure );
|
|
|
|
|
|
|
+ }, onFailure, editor);
|
|
|
} else if ((selectBefore && fromAfter) || fieldTermBefore || impalaFieldRef) {
|
|
} else if ((selectBefore && fromAfter) || fieldTermBefore || impalaFieldRef) {
|
|
|
var partialTermsMatch = beforeCursor.match(/([^\s\(\-\+\<\>\,]*)$/);
|
|
var partialTermsMatch = beforeCursor.match(/([^\s\(\-\+\<\>\,]*)$/);
|
|
|
var parts = partialTermsMatch ? partialTermsMatch[0].split(".") : [];
|
|
var parts = partialTermsMatch ? partialTermsMatch[0].split(".") : [];
|
|
@@ -385,7 +390,7 @@ Autocompleter.prototype.autocomplete = function(beforeCursor, afterCursor, callb
|
|
|
} else {
|
|
} else {
|
|
|
callback(self.extractFields(data, "", !fieldTermBefore));
|
|
callback(self.extractFields(data, "", !fieldTermBefore));
|
|
|
}
|
|
}
|
|
|
- }, onFailure);
|
|
|
|
|
|
|
+ }, onFailure, editor);
|
|
|
return; // break recursion
|
|
return; // break recursion
|
|
|
}
|
|
}
|
|
|
var part = remainingParts.shift();
|
|
var part = remainingParts.shift();
|
|
@@ -424,7 +429,7 @@ Autocompleter.prototype.autocomplete = function(beforeCursor, afterCursor, callb
|
|
|
} else {
|
|
} else {
|
|
|
onFailure();
|
|
onFailure();
|
|
|
}
|
|
}
|
|
|
- }, onFailure);
|
|
|
|
|
|
|
+ }, onFailure, editor);
|
|
|
return; // break recursion, it'll be async above
|
|
return; // break recursion, it'll be async above
|
|
|
}
|
|
}
|
|
|
} else if (impalaSyntax) {
|
|
} else if (impalaSyntax) {
|
|
@@ -464,7 +469,7 @@ Autocompleter.prototype.autocomplete = function(beforeCursor, afterCursor, callb
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
getFields(remainingParts, fields);
|
|
getFields(remainingParts, fields);
|
|
|
- }, onFailure);
|
|
|
|
|
|
|
+ }, onFailure, editor);
|
|
|
return; // break recursion, it'll be async above
|
|
return; // break recursion, it'll be async above
|
|
|
}
|
|
}
|
|
|
fields.push(part);
|
|
fields.push(part);
|