XylotrechusZ
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror"),require("../../mode/sql/sql")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../mode/sql/sql"],t):t(CodeMirror)}((function(t){"use strict";var e,r,n,o,i=";",s="AS",a=t.Pos,u=t.cmpPos;function l(t){return"[object Array]"==Object.prototype.toString.call(t)}function f(t){return"string"==typeof t?t:t.text}function c(t,e){return l(e)&&(e={columns:e}),e.text||(e.text=t),e}function p(t){return e[t.toUpperCase()]}function g(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function d(t,e){var r=t.length,n=f(e).substr(0,r);return t.toUpperCase()===n.toUpperCase()}function v(t,e,r,n){if(l(r))for(var o=0;o<r.length;o++)d(e,r[o])&&t.push(n(r[o]));else for(var i in r)if(r.hasOwnProperty(i)){var s=r[i];d(e,s=s&&!0!==s?s.displayText?{text:s.text,displayText:s.displayText}:s.text:i)&&t.push(n(s))}}function h(t){"."==t.charAt(0)&&(t=t.substr(1));for(var e=t.split(o+o),r=0;r<e.length;r++)e[r]=e[r].replace(new RegExp(o,"g"),"");return e.join(o)}function x(t){for(var e=f(t).split("."),r=0;r<e.length;r++)e[r]=o+e[r].replace(new RegExp(o,"g"),o+o)+o;var n=e.join(".");return"string"==typeof t?n:((t=g(t)).text=n,t)}function m(t,e){if(t)for(var r=/[,;]/g,n=t.split(" "),o=0;o<n.length;o++)e(n[o]?n[o].replace(r,""):"")}function y(t,e){for(var r=e.doc,n=r.getValue(),o=t.toUpperCase(),l="",f="",c=[],g={start:a(0,0),end:a(e.lastLine(),e.getLineHandle(e.lastLine()).length)},d=n.indexOf(i);-1!=d;)c.push(r.posFromIndex(d)),d=n.indexOf(i,d+1);c.unshift(a(0,0)),c.push(a(e.lastLine(),e.getLineHandle(e.lastLine()).text.length));for(var v=null,h=e.getCursor(),x=0;x<c.length;x++){if((null==v||u(h,v)>0)&&u(h,c[x])<=0){g={start:v,end:c[x]};break}v=c[x]}var y=r.getRange(g.start,g.end,!1);for(x=0;x<y.length;x++){if(m(y[x],(function(t){var e=t.toUpperCase();e===o&&p(l)&&(f=l),e!==s&&(l=t)})),f)break}return f}t.registerHelper("hint","sql",(function(i,s){e=function(t){var e={};if(l(t))for(var r=t.length-1;r>=0;r--){var n=t[r];e[f(n).toUpperCase()]=c(f(n),n)}else if(t)for(var o in t)e[o.toUpperCase()]=c(o,t[o]);return e}(s&&s.tables);var u=s&&s.defaultTable,d=s&&s.disableKeywords;r=u&&p(u),n=function(e){var r=e.doc.modeOption;return"sql"===r&&(r="text/x-sql"),t.resolveMode(r).keywords}(i),o=function(e){var r=e.doc.modeOption;return"sql"===r&&(r="text/x-sql"),t.resolveMode(r).identifierQuote||"`"}(i),u&&!r&&(r=y(u,i)),(r=r||[]).columns&&(r=r.columns);var m,b,q,C=i.getCursor(),A=[],j=i.getTokenAt(C);return j.end>C.ch&&(j.end=C.ch,j.string=j.string.slice(0,C.ch-j.start)),j.string.match(/^[.`"\w@]\w*$/)?(q=j.string,m=j.start,b=j.end):(m=b=C.ch,q=""),"."==q.charAt(0)||q.charAt(0)==o?m=function(t,n,i,s){for(var u=!1,l=[],f=n.start,c=!0;c;)c="."==n.string.charAt(0),u=u||n.string.charAt(0)==o,f=n.start,l.unshift(h(n.string)),"."==(n=s.getTokenAt(a(t.line,n.start))).string&&(c=!0,n=s.getTokenAt(a(t.line,n.start)));var d=l.join(".");v(i,d,e,(function(t){return u?x(t):t})),v(i,d,r,(function(t){return u?x(t):t})),d=l.pop();var m=l.join("."),b=!1,q=m;if(!p(m)){var C=m;(m=y(m,s))!==C&&(b=!0)}var A=p(m);return A&&A.columns&&(A=A.columns),A&&v(i,d,A,(function(t){var e=m;return 1==b&&(e=q),"string"==typeof t?t=e+"."+t:(t=g(t)).text=e+"."+t.text,u?x(t):t})),f}(C,j,A,i):(v(A,q,e,(function(t){return t})),v(A,q,r,(function(t){return t})),d||v(A,q,n,(function(t){return t.toUpperCase()}))),{list:A,from:a(C.line,m),to:a(C.line,b)}}))}));