diff options
Diffstat (limited to 'public/vendor/codemirror/addon/hint')
-rwxr-xr-x | public/vendor/codemirror/addon/hint/show-hint.js | 37 | ||||
-rwxr-xr-x | public/vendor/codemirror/addon/hint/sql-hint.js | 17 |
2 files changed, 27 insertions, 27 deletions
diff --git a/public/vendor/codemirror/addon/hint/show-hint.js b/public/vendor/codemirror/addon/hint/show-hint.js index 539181fd..d228fc88 100755 --- a/public/vendor/codemirror/addon/hint/show-hint.js +++ b/public/vendor/codemirror/addon/hint/show-hint.js @@ -33,7 +33,7 @@ if (!completion.options.hint) return; CodeMirror.signal(this, "startCompletion", this); - completion.update(); + completion.update(true); }); function Completion(cm, options) { @@ -61,6 +61,7 @@ this.tick = null; this.cm.off("cursorActivity", this.activityFunc); + if (this.widget && this.data) CodeMirror.signal(this.data, "close"); if (this.widget) this.widget.close(); CodeMirror.signal(this.cm, "endCompletion", this.cm); }, @@ -78,15 +79,6 @@ this.close(); }, - showHints: function(data) { - if (!data || !data.list.length || !this.active()) return this.close(); - - if (this.options.completeSingle && data.list.length == 1) - this.pick(data, 0); - else - this.showWidget(data); - }, - cursorActivity: function() { if (this.debounce) { cancelAnimationFrame(this.debounce); @@ -105,35 +97,34 @@ } }, - update: function() { + update: function(first) { if (this.tick == null) return; if (this.data) CodeMirror.signal(this.data, "update"); if (!this.options.hint.async) { - this.finishUpdate(this.options.hint(this.cm, this.options), myTick); + this.finishUpdate(this.options.hint(this.cm, this.options), first); } else { var myTick = ++this.tick, self = this; this.options.hint(this.cm, function(data) { - if (self.tick == myTick) self.finishUpdate(data); + if (self.tick == myTick) self.finishUpdate(data, first); }, this.options); } }, - finishUpdate: function(data) { + finishUpdate: function(data, first) { this.data = data; - var picked = this.widget && this.widget.picked; + + var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle); if (this.widget) this.widget.close(); if (data && data.list.length) { - if (picked && data.list.length == 1) this.pick(data, 0); - else this.widget = new Widget(this, data); + if (picked && data.list.length == 1) { + this.pick(data, 0); + } else { + this.widget = new Widget(this, data); + CodeMirror.signal(data, "shown"); + } } }, - showWidget: function(data) { - this.data = data; - this.widget = new Widget(this, data); - CodeMirror.signal(data, "shown"); - }, - buildOptions: function(options) { var editor = this.cm.options.hintOptions; var out = {}; diff --git a/public/vendor/codemirror/addon/hint/sql-hint.js b/public/vendor/codemirror/addon/hint/sql-hint.js index cba27a0b..22124b58 100755 --- a/public/vendor/codemirror/addon/hint/sql-hint.js +++ b/public/vendor/codemirror/addon/hint/sql-hint.js @@ -112,9 +112,14 @@ string = nameParts.pop(); var table = nameParts.join("."); + var alias = false; + var aliasTable = table; // Check if table is available. If not, find table by Alias - if (!getItem(tables, table)) + if (!getItem(tables, table)) { + var oldTable = table; table = findTableByAlias(table, editor); + if (table !== oldTable) alias = true; + } var columns = getItem(tables, table); if (columns && columns.columns) @@ -122,11 +127,13 @@ if (columns) { addMatches(result, string, columns, function(w) { + var tableInsert = table; + if (alias == true) tableInsert = aliasTable; if (typeof w == "string") { - w = table + "." + w; + w = tableInsert + "." + w; } else { w = shallowClone(w); - w.text = table + "." + w.text; + w.text = tableInsert + "." + w.text; } return useBacktick ? insertBackticks(w) : w; }); @@ -205,6 +212,7 @@ CodeMirror.registerHelper("hint", "sql", function(editor, options) { tables = (options && options.tables) || {}; var defaultTableName = options && options.defaultTable; + var disableKeywords = options && options.disableKeywords; defaultTable = defaultTableName && getItem(tables, defaultTableName); keywords = keywords || getKeywords(editor); @@ -237,7 +245,8 @@ } else { addMatches(result, search, tables, function(w) {return w;}); addMatches(result, search, defaultTable, function(w) {return w;}); - addMatches(result, search, keywords, function(w) {return w.toUpperCase();}); + if (!disableKeywords) + addMatches(result, search, keywords, function(w) {return w.toUpperCase();}); } return {list: result, from: Pos(cur.line, start), to: Pos(cur.line, end)}; |