Current File : /home/pacjaorg/public_html/kmm/media/vendor/codemirror/addon/hint/sql-hint.min.js |
(function(b){typeof exports=="object"&&typeof module=="object"?b(require("../../lib/codemirror"),require("../../mode/sql/sql")):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../../mode/sql/sql"],b):b(CodeMirror)})(function(b){"use strict";var A,h,Q,g,U={QUERY_DIV:";",ALIAS_KEYWORD:"AS"},x=b.Pos,R=b.cmpPos;function I(r){return Object.prototype.toString.call(r)=="[object Array]"}function L(r,e){return r.getModeAt(r.getCursor()).config[e]||b.resolveMode("text/x-sql")[e]}function D(r){return L(r,"keywords")||[]}function K(r){return L(r,"identifierQuote")||"`"}function C(r){return typeof r=="string"?r:r.text}function q(r,e){return I(e)&&(e={columns:e}),e.text||(e.text=r),e}function Y(r){var e={};if(I(r))for(var t=r.length-1;t>=0;t--){var a=r[t];e[C(a).toUpperCase()]=q(C(a),a)}else if(r)for(var s in r)e[s.toUpperCase()]=q(s,r[s]);return e}function T(r){return A[r.toUpperCase()]}function E(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(e[t]=r[t]);return e}function O(r,e){var t=r.length,a=C(e).substr(0,t);return r.toUpperCase()===a.toUpperCase()}function y(r,e,t,a){if(I(t))for(var s=0;s<t.length;s++)O(e,t[s])&&r.push(a(t[s]));else for(var i in t)if(t.hasOwnProperty(i)){var n=t[i];!n||n===!0?n=i:n=n.displayText?{text:n.text,displayText:n.displayText}:n.text,O(e,n)&&r.push(a(n))}}function _(r){r.charAt(0)=="."&&(r=r.substr(1));for(var e=r.split(g+g),t=0;t<e.length;t++)e[t]=e[t].replace(new RegExp(g,"g"),"");return e.join(g)}function m(r){for(var e=C(r).split("."),t=0;t<e.length;t++)e[t]=g+e[t].replace(new RegExp(g,"g"),g+g)+g;var a=e.join(".");return typeof r=="string"?a:(r=E(r),r.text=a,r)}function N(r,e,t,a){for(var s=!1,i=[],n=e.start,l=!0;l;)l=e.string.charAt(0)==".",s=s||e.string.charAt(0)==g,n=e.start,i.unshift(_(e.string)),e=a.getTokenAt(x(r.line,e.start)),e.string=="."&&(l=!0,e=a.getTokenAt(x(r.line,e.start)));var p=i.join(".");y(t,p,A,function(u){return s?m(u):u}),y(t,p,h,function(u){return s?m(u):u}),p=i.pop();var f=i.join("."),v=!1,o=f;if(!T(f)){var c=f;f=M(f,a),f!==c&&(v=!0)}var d=T(f);return d&&d.columns&&(d=d.columns),d&&y(t,p,d,function(u){var P=f;return v==!0&&(P=o),typeof u=="string"?u=P+"."+u:(u=E(u),u.text=P+"."+u.text),s?m(u):u}),n}function V(r,e){for(var t=r.split(/\s+/),a=0;a<t.length;a++)t[a]&&e(t[a].replace(/[`,;]/g,""))}function M(r,e){for(var t=e.doc,a=t.getValue(),s=r.toUpperCase(),i="",n="",l=[],p={start:x(0,0),end:x(e.lastLine(),e.getLineHandle(e.lastLine()).length)},f=a.indexOf(U.QUERY_DIV);f!=-1;)l.push(t.posFromIndex(f)),f=a.indexOf(U.QUERY_DIV,f+1);l.unshift(x(0,0)),l.push(x(e.lastLine(),e.getLineHandle(e.lastLine()).text.length));for(var v=null,o=e.getCursor(),c=0;c<l.length;c++){if((v==null||R(o,v)>0)&&R(o,l[c])<=0){p={start:v,end:l[c]};break}v=l[c]}if(p.start)for(var d=t.getRange(p.start,p.end,!1),c=0;c<d.length;c++){var u=d[c];if(V(u,function(S){var j=S.toUpperCase();j===s&&T(i)&&(n=i),j!==U.ALIAS_KEYWORD&&(i=S)}),n)break}return n}b.registerHelper("hint","sql",function(r,e){A=Y(e&&e.tables);var t=e&&e.defaultTable,a=e&&e.disableKeywords;h=t&&T(t),Q=D(r),g=K(r),t&&!h&&(h=M(t,r)),h=h||[],h.columns&&(h=h.columns);var s=r.getCursor(),i=[],n=r.getTokenAt(s),l,p,f;if(n.end>s.ch&&(n.end=s.ch,n.string=n.string.slice(0,s.ch-n.start)),n.string.match(/^[.`"'\w@][\w$#]*$/g)?(f=n.string,l=n.start,p=n.end):(l=p=s.ch,f=""),f.charAt(0)=="."||f.charAt(0)==g)l=N(s,n,i,r);else{var v=function(o,c){return typeof o=="object"?o.className=c:o={text:o,className:c},o};y(i,f,h,function(o){return v(o,"CodeMirror-hint-table CodeMirror-hint-default-table")}),y(i,f,A,function(o){return v(o,"CodeMirror-hint-table")}),a||y(i,f,Q,function(o){return v(o.toUpperCase(),"CodeMirror-hint-keyword")})}return{list:i,from:x(s.line,l),to:x(s.line,p)}})});