diff options
| author | Wu Cheng-Han | 2016-11-28 01:36:48 +0800 | 
|---|---|---|
| committer | Wu Cheng-Han | 2016-11-28 01:36:48 +0800 | 
| commit | 9f79ed929e4156dc8b5b45161895d70d51cfa5a2 (patch) | |
| tree | 760e0491a52558036b93b0c986e96aa95b4c0127 /public/vendor/codemirror/addon/hint | |
| parent | 3a305b8258782797b328f2ce46e8bb74e9603594 (diff) | |
Update to move custom CodeMirror codebase to our own repo and update webpack build config
Diffstat (limited to 'public/vendor/codemirror/addon/hint')
| -rw-r--r-- | public/vendor/codemirror/addon/hint/anyword-hint.js | 41 | ||||
| -rw-r--r-- | public/vendor/codemirror/addon/hint/css-hint.js | 60 | ||||
| -rw-r--r-- | public/vendor/codemirror/addon/hint/html-hint.js | 348 | ||||
| -rw-r--r-- | public/vendor/codemirror/addon/hint/javascript-hint.js | 155 | ||||
| -rw-r--r-- | public/vendor/codemirror/addon/hint/show-hint.css | 36 | ||||
| -rw-r--r-- | public/vendor/codemirror/addon/hint/show-hint.js | 438 | ||||
| -rw-r--r-- | public/vendor/codemirror/addon/hint/sql-hint.js | 271 | ||||
| -rw-r--r-- | public/vendor/codemirror/addon/hint/xml-hint.js | 110 | 
8 files changed, 0 insertions, 1459 deletions
| diff --git a/public/vendor/codemirror/addon/hint/anyword-hint.js b/public/vendor/codemirror/addon/hint/anyword-hint.js deleted file mode 100644 index dae78e2e..00000000 --- a/public/vendor/codemirror/addon/hint/anyword-hint.js +++ /dev/null @@ -1,41 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { -  if (typeof exports == "object" && typeof module == "object") // CommonJS -    mod(require("../../lib/codemirror")); -  else if (typeof define == "function" && define.amd) // AMD -    define(["../../lib/codemirror"], mod); -  else // Plain browser env -    mod(CodeMirror); -})(function(CodeMirror) { -  "use strict"; - -  var WORD = /[\w$]+/, RANGE = 500; - -  CodeMirror.registerHelper("hint", "anyword", function(editor, options) { -    var word = options && options.word || WORD; -    var range = options && options.range || RANGE; -    var cur = editor.getCursor(), curLine = editor.getLine(cur.line); -    var end = cur.ch, start = end; -    while (start && word.test(curLine.charAt(start - 1))) --start; -    var curWord = start != end && curLine.slice(start, end); - -    var list = options && options.list || [], seen = {}; -    var re = new RegExp(word.source, "g"); -    for (var dir = -1; dir <= 1; dir += 2) { -      var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir; -      for (; line != endLine; line += dir) { -        var text = editor.getLine(line), m; -        while (m = re.exec(text)) { -          if (line == cur.line && m[0] === curWord) continue; -          if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) { -            seen[m[0]] = true; -            list.push(m[0]); -          } -        } -      } -    } -    return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)}; -  }); -}); diff --git a/public/vendor/codemirror/addon/hint/css-hint.js b/public/vendor/codemirror/addon/hint/css-hint.js deleted file mode 100644 index 22642727..00000000 --- a/public/vendor/codemirror/addon/hint/css-hint.js +++ /dev/null @@ -1,60 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { -  if (typeof exports == "object" && typeof module == "object") // CommonJS -    mod(require("../../lib/codemirror"), require("../../mode/css/css")); -  else if (typeof define == "function" && define.amd) // AMD -    define(["../../lib/codemirror", "../../mode/css/css"], mod); -  else // Plain browser env -    mod(CodeMirror); -})(function(CodeMirror) { -  "use strict"; - -  var pseudoClasses = {link: 1, visited: 1, active: 1, hover: 1, focus: 1, -                       "first-letter": 1, "first-line": 1, "first-child": 1, -                       before: 1, after: 1, lang: 1}; - -  CodeMirror.registerHelper("hint", "css", function(cm) { -    var cur = cm.getCursor(), token = cm.getTokenAt(cur); -    var inner = CodeMirror.innerMode(cm.getMode(), token.state); -    if (inner.mode.name != "css") return; - -    if (token.type == "keyword" && "!important".indexOf(token.string) == 0) -      return {list: ["!important"], from: CodeMirror.Pos(cur.line, token.start), -              to: CodeMirror.Pos(cur.line, token.end)}; - -    var start = token.start, end = cur.ch, word = token.string.slice(0, end - start); -    if (/[^\w$_-]/.test(word)) { -      word = ""; start = end = cur.ch; -    } - -    var spec = CodeMirror.resolveMode("text/css"); - -    var result = []; -    function add(keywords) { -      for (var name in keywords) -        if (!word || name.lastIndexOf(word, 0) == 0) -          result.push(name); -    } - -    var st = inner.state.state; -    if (st == "pseudo" || token.type == "variable-3") { -      add(pseudoClasses); -    } else if (st == "block" || st == "maybeprop") { -      add(spec.propertyKeywords); -    } else if (st == "prop" || st == "parens" || st == "at" || st == "params") { -      add(spec.valueKeywords); -      add(spec.colorKeywords); -    } else if (st == "media" || st == "media_parens") { -      add(spec.mediaTypes); -      add(spec.mediaFeatures); -    } - -    if (result.length) return { -      list: result, -      from: CodeMirror.Pos(cur.line, start), -      to: CodeMirror.Pos(cur.line, end) -    }; -  }); -}); diff --git a/public/vendor/codemirror/addon/hint/html-hint.js b/public/vendor/codemirror/addon/hint/html-hint.js deleted file mode 100644 index c6769bca..00000000 --- a/public/vendor/codemirror/addon/hint/html-hint.js +++ /dev/null @@ -1,348 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { -  if (typeof exports == "object" && typeof module == "object") // CommonJS -    mod(require("../../lib/codemirror"), require("./xml-hint")); -  else if (typeof define == "function" && define.amd) // AMD -    define(["../../lib/codemirror", "./xml-hint"], mod); -  else // Plain browser env -    mod(CodeMirror); -})(function(CodeMirror) { -  "use strict"; - -  var langs = "ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" "); -  var targets = ["_blank", "_self", "_top", "_parent"]; -  var charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"]; -  var methods = ["get", "post", "put", "delete"]; -  var encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"]; -  var media = ["all", "screen", "print", "embossed", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "speech", -               "3d-glasses", "resolution [>][<][=] [X]", "device-aspect-ratio: X/Y", "orientation:portrait", -               "orientation:landscape", "device-height: [X]", "device-width: [X]"]; -  var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags - -  var data = { -    a: { -      attrs: { -        href: null, ping: null, type: null, -        media: media, -        target: targets, -        hreflang: langs -      } -    }, -    abbr: s, -    acronym: s, -    address: s, -    applet: s, -    area: { -      attrs: { -        alt: null, coords: null, href: null, target: null, ping: null, -        media: media, hreflang: langs, type: null, -        shape: ["default", "rect", "circle", "poly"] -      } -    }, -    article: s, -    aside: s, -    audio: { -      attrs: { -        src: null, mediagroup: null, -        crossorigin: ["anonymous", "use-credentials"], -        preload: ["none", "metadata", "auto"], -        autoplay: ["", "autoplay"], -        loop: ["", "loop"], -        controls: ["", "controls"] -      } -    }, -    b: s, -    base: { attrs: { href: null, target: targets } }, -    basefont: s, -    bdi: s, -    bdo: s, -    big: s, -    blockquote: { attrs: { cite: null } }, -    body: s, -    br: s, -    button: { -      attrs: { -        form: null, formaction: null, name: null, value: null, -        autofocus: ["", "autofocus"], -        disabled: ["", "autofocus"], -        formenctype: encs, -        formmethod: methods, -        formnovalidate: ["", "novalidate"], -        formtarget: targets, -        type: ["submit", "reset", "button"] -      } -    }, -    canvas: { attrs: { width: null, height: null } }, -    caption: s, -    center: s, -    cite: s, -    code: s, -    col: { attrs: { span: null } }, -    colgroup: { attrs: { span: null } }, -    command: { -      attrs: { -        type: ["command", "checkbox", "radio"], -        label: null, icon: null, radiogroup: null, command: null, title: null, -        disabled: ["", "disabled"], -        checked: ["", "checked"] -      } -    }, -    data: { attrs: { value: null } }, -    datagrid: { attrs: { disabled: ["", "disabled"], multiple: ["", "multiple"] } }, -    datalist: { attrs: { data: null } }, -    dd: s, -    del: { attrs: { cite: null, datetime: null } }, -    details: { attrs: { open: ["", "open"] } }, -    dfn: s, -    dir: s, -    div: s, -    dl: s, -    dt: s, -    em: s, -    embed: { attrs: { src: null, type: null, width: null, height: null } }, -    eventsource: { attrs: { src: null } }, -    fieldset: { attrs: { disabled: ["", "disabled"], form: null, name: null } }, -    figcaption: s, -    figure: s, -    font: s, -    footer: s, -    form: { -      attrs: { -        action: null, name: null, -        "accept-charset": charsets, -        autocomplete: ["on", "off"], -        enctype: encs, -        method: methods, -        novalidate: ["", "novalidate"], -        target: targets -      } -    }, -    frame: s, -    frameset: s, -    h1: s, h2: s, h3: s, h4: s, h5: s, h6: s, -    head: { -      attrs: {}, -      children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"] -    }, -    header: s, -    hgroup: s, -    hr: s, -    html: { -      attrs: { manifest: null }, -      children: ["head", "body"] -    }, -    i: s, -    iframe: { -      attrs: { -        src: null, srcdoc: null, name: null, width: null, height: null, -        sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"], -        seamless: ["", "seamless"] -      } -    }, -    img: { -      attrs: { -        alt: null, src: null, ismap: null, usemap: null, width: null, height: null, -        crossorigin: ["anonymous", "use-credentials"] -      } -    }, -    input: { -      attrs: { -        alt: null, dirname: null, form: null, formaction: null, -        height: null, list: null, max: null, maxlength: null, min: null, -        name: null, pattern: null, placeholder: null, size: null, src: null, -        step: null, value: null, width: null, -        accept: ["audio/*", "video/*", "image/*"], -        autocomplete: ["on", "off"], -        autofocus: ["", "autofocus"], -        checked: ["", "checked"], -        disabled: ["", "disabled"], -        formenctype: encs, -        formmethod: methods, -        formnovalidate: ["", "novalidate"], -        formtarget: targets, -        multiple: ["", "multiple"], -        readonly: ["", "readonly"], -        required: ["", "required"], -        type: ["hidden", "text", "search", "tel", "url", "email", "password", "datetime", "date", "month", -               "week", "time", "datetime-local", "number", "range", "color", "checkbox", "radio", -               "file", "submit", "image", "reset", "button"] -      } -    }, -    ins: { attrs: { cite: null, datetime: null } }, -    kbd: s, -    keygen: { -      attrs: { -        challenge: null, form: null, name: null, -        autofocus: ["", "autofocus"], -        disabled: ["", "disabled"], -        keytype: ["RSA"] -      } -    }, -    label: { attrs: { "for": null, form: null } }, -    legend: s, -    li: { attrs: { value: null } }, -    link: { -      attrs: { -        href: null, type: null, -        hreflang: langs, -        media: media, -        sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"] -      } -    }, -    map: { attrs: { name: null } }, -    mark: s, -    menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } }, -    meta: { -      attrs: { -        content: null, -        charset: charsets, -        name: ["viewport", "application-name", "author", "description", "generator", "keywords"], -        "http-equiv": ["content-language", "content-type", "default-style", "refresh"] -      } -    }, -    meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } }, -    nav: s, -    noframes: s, -    noscript: s, -    object: { -      attrs: { -        data: null, type: null, name: null, usemap: null, form: null, width: null, height: null, -        typemustmatch: ["", "typemustmatch"] -      } -    }, -    ol: { attrs: { reversed: ["", "reversed"], start: null, type: ["1", "a", "A", "i", "I"] } }, -    optgroup: { attrs: { disabled: ["", "disabled"], label: null } }, -    option: { attrs: { disabled: ["", "disabled"], label: null, selected: ["", "selected"], value: null } }, -    output: { attrs: { "for": null, form: null, name: null } }, -    p: s, -    param: { attrs: { name: null, value: null } }, -    pre: s, -    progress: { attrs: { value: null, max: null } }, -    q: { attrs: { cite: null } }, -    rp: s, -    rt: s, -    ruby: s, -    s: s, -    samp: s, -    script: { -      attrs: { -        type: ["text/javascript"], -        src: null, -        async: ["", "async"], -        defer: ["", "defer"], -        charset: charsets -      } -    }, -    section: s, -    select: { -      attrs: { -        form: null, name: null, size: null, -        autofocus: ["", "autofocus"], -        disabled: ["", "disabled"], -        multiple: ["", "multiple"] -      } -    }, -    small: s, -    source: { attrs: { src: null, type: null, media: null } }, -    span: s, -    strike: s, -    strong: s, -    style: { -      attrs: { -        type: ["text/css"], -        media: media, -        scoped: null -      } -    }, -    sub: s, -    summary: s, -    sup: s, -    table: s, -    tbody: s, -    td: { attrs: { colspan: null, rowspan: null, headers: null } }, -    textarea: { -      attrs: { -        dirname: null, form: null, maxlength: null, name: null, placeholder: null, -        rows: null, cols: null, -        autofocus: ["", "autofocus"], -        disabled: ["", "disabled"], -        readonly: ["", "readonly"], -        required: ["", "required"], -        wrap: ["soft", "hard"] -      } -    }, -    tfoot: s, -    th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } }, -    thead: s, -    time: { attrs: { datetime: null } }, -    title: s, -    tr: s, -    track: { -      attrs: { -        src: null, label: null, "default": null, -        kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"], -        srclang: langs -      } -    }, -    tt: s, -    u: s, -    ul: s, -    "var": s, -    video: { -      attrs: { -        src: null, poster: null, width: null, height: null, -        crossorigin: ["anonymous", "use-credentials"], -        preload: ["auto", "metadata", "none"], -        autoplay: ["", "autoplay"], -        mediagroup: ["movie"], -        muted: ["", "muted"], -        controls: ["", "controls"] -      } -    }, -    wbr: s -  }; - -  var globalAttrs = { -    accesskey: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], -    "class": null, -    contenteditable: ["true", "false"], -    contextmenu: null, -    dir: ["ltr", "rtl", "auto"], -    draggable: ["true", "false", "auto"], -    dropzone: ["copy", "move", "link", "string:", "file:"], -    hidden: ["hidden"], -    id: null, -    inert: ["inert"], -    itemid: null, -    itemprop: null, -    itemref: null, -    itemscope: ["itemscope"], -    itemtype: null, -    lang: ["en", "es"], -    spellcheck: ["true", "false"], -    style: null, -    tabindex: ["1", "2", "3", "4", "5", "6", "7", "8", "9"], -    title: null, -    translate: ["yes", "no"], -    onclick: null, -    rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"] -  }; -  function populate(obj) { -    for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr)) -      obj.attrs[attr] = globalAttrs[attr]; -  } - -  populate(s); -  for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s) -    populate(data[tag]); - -  CodeMirror.htmlSchema = data; -  function htmlHint(cm, options) { -    var local = {schemaInfo: data}; -    if (options) for (var opt in options) local[opt] = options[opt]; -    return CodeMirror.hint.xml(cm, local); -  } -  CodeMirror.registerHelper("hint", "html", htmlHint); -}); diff --git a/public/vendor/codemirror/addon/hint/javascript-hint.js b/public/vendor/codemirror/addon/hint/javascript-hint.js deleted file mode 100644 index d7088c19..00000000 --- a/public/vendor/codemirror/addon/hint/javascript-hint.js +++ /dev/null @@ -1,155 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { -  if (typeof exports == "object" && typeof module == "object") // CommonJS -    mod(require("../../lib/codemirror")); -  else if (typeof define == "function" && define.amd) // AMD -    define(["../../lib/codemirror"], mod); -  else // Plain browser env -    mod(CodeMirror); -})(function(CodeMirror) { -  var Pos = CodeMirror.Pos; - -  function forEach(arr, f) { -    for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]); -  } - -  function arrayContains(arr, item) { -    if (!Array.prototype.indexOf) { -      var i = arr.length; -      while (i--) { -        if (arr[i] === item) { -          return true; -        } -      } -      return false; -    } -    return arr.indexOf(item) != -1; -  } - -  function scriptHint(editor, keywords, getToken, options) { -    // Find the token at the cursor -    var cur = editor.getCursor(), token = getToken(editor, cur); -    if (/\b(?:string|comment)\b/.test(token.type)) return; -    token.state = CodeMirror.innerMode(editor.getMode(), token.state).state; - -    // If it's not a 'word-style' token, ignore the token. -    if (!/^[\w$_]*$/.test(token.string)) { -      token = {start: cur.ch, end: cur.ch, string: "", state: token.state, -               type: token.string == "." ? "property" : null}; -    } else if (token.end > cur.ch) { -      token.end = cur.ch; -      token.string = token.string.slice(0, cur.ch - token.start); -    } - -    var tprop = token; -    // If it is a property, find out what it is a property of. -    while (tprop.type == "property") { -      tprop = getToken(editor, Pos(cur.line, tprop.start)); -      if (tprop.string != ".") return; -      tprop = getToken(editor, Pos(cur.line, tprop.start)); -      if (!context) var context = []; -      context.push(tprop); -    } -    return {list: getCompletions(token, context, keywords, options), -            from: Pos(cur.line, token.start), -            to: Pos(cur.line, token.end)}; -  } - -  function javascriptHint(editor, options) { -    return scriptHint(editor, javascriptKeywords, -                      function (e, cur) {return e.getTokenAt(cur);}, -                      options); -  }; -  CodeMirror.registerHelper("hint", "javascript", javascriptHint); - -  function getCoffeeScriptToken(editor, cur) { -  // This getToken, it is for coffeescript, imitates the behavior of -  // getTokenAt method in javascript.js, that is, returning "property" -  // type and treat "." as indepenent token. -    var token = editor.getTokenAt(cur); -    if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') { -      token.end = token.start; -      token.string = '.'; -      token.type = "property"; -    } -    else if (/^\.[\w$_]*$/.test(token.string)) { -      token.type = "property"; -      token.start++; -      token.string = token.string.replace(/\./, ''); -    } -    return token; -  } - -  function coffeescriptHint(editor, options) { -    return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options); -  } -  CodeMirror.registerHelper("hint", "coffeescript", coffeescriptHint); - -  var stringProps = ("charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight " + -                     "toUpperCase toLowerCase split concat match replace search").split(" "); -  var arrayProps = ("length concat join splice push pop shift unshift slice reverse sort indexOf " + -                    "lastIndexOf every some filter forEach map reduce reduceRight ").split(" "); -  var funcProps = "prototype apply call bind".split(" "); -  var javascriptKeywords = ("break case catch continue debugger default delete do else false finally for function " + -                  "if in instanceof new null return switch throw true try typeof var void while with").split(" "); -  var coffeescriptKeywords = ("and break catch class continue delete do else extends false finally for " + -                  "if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes").split(" "); - -  function forAllProps(obj, callback) { -    if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) { -      for (var name in obj) callback(name) -    } else { -      for (var o = obj; o; o = Object.getPrototypeOf(o)) -        Object.getOwnPropertyNames(o).forEach(callback) -    } -  } - -  function getCompletions(token, context, keywords, options) { -    var found = [], start = token.string, global = options && options.globalScope || window; -    function maybeAdd(str) { -      if (str.lastIndexOf(start, 0) == 0 && !arrayContains(found, str)) found.push(str); -    } -    function gatherCompletions(obj) { -      if (typeof obj == "string") forEach(stringProps, maybeAdd); -      else if (obj instanceof Array) forEach(arrayProps, maybeAdd); -      else if (obj instanceof Function) forEach(funcProps, maybeAdd); -      forAllProps(obj, maybeAdd) -    } - -    if (context && context.length) { -      // If this is a property, see if it belongs to some object we can -      // find in the current environment. -      var obj = context.pop(), base; -      if (obj.type && obj.type.indexOf("variable") === 0) { -        if (options && options.additionalContext) -          base = options.additionalContext[obj.string]; -        if (!options || options.useGlobalScope !== false) -          base = base || global[obj.string]; -      } else if (obj.type == "string") { -        base = ""; -      } else if (obj.type == "atom") { -        base = 1; -      } else if (obj.type == "function") { -        if (global.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') && -            (typeof global.jQuery == 'function')) -          base = global.jQuery(); -        else if (global._ != null && (obj.string == '_') && (typeof global._ == 'function')) -          base = global._(); -      } -      while (base != null && context.length) -        base = base[context.pop().string]; -      if (base != null) gatherCompletions(base); -    } else { -      // If not, just look in the global object and any local scope -      // (reading into JS mode internals to get at the local and global variables) -      for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name); -      for (var v = token.state.globalVars; v; v = v.next) maybeAdd(v.name); -      if (!options || options.useGlobalScope !== false) -        gatherCompletions(global); -      forEach(keywords, maybeAdd); -    } -    return found; -  } -}); diff --git a/public/vendor/codemirror/addon/hint/show-hint.css b/public/vendor/codemirror/addon/hint/show-hint.css deleted file mode 100644 index 5617ccca..00000000 --- a/public/vendor/codemirror/addon/hint/show-hint.css +++ /dev/null @@ -1,36 +0,0 @@ -.CodeMirror-hints { -  position: absolute; -  z-index: 10; -  overflow: hidden; -  list-style: none; - -  margin: 0; -  padding: 2px; - -  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); -  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); -  box-shadow: 2px 3px 5px rgba(0,0,0,.2); -  border-radius: 3px; -  border: 1px solid silver; - -  background: white; -  font-size: 90%; -  font-family: monospace; - -  max-height: 20em; -  overflow-y: auto; -} - -.CodeMirror-hint { -  margin: 0; -  padding: 0 4px; -  border-radius: 2px; -  white-space: pre; -  color: black; -  cursor: pointer; -} - -li.CodeMirror-hint-active { -  background: #08f; -  color: white; -} diff --git a/public/vendor/codemirror/addon/hint/show-hint.js b/public/vendor/codemirror/addon/hint/show-hint.js deleted file mode 100644 index 604bd3b7..00000000 --- a/public/vendor/codemirror/addon/hint/show-hint.js +++ /dev/null @@ -1,438 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { -  if (typeof exports == "object" && typeof module == "object") // CommonJS -    mod(require("../../lib/codemirror")); -  else if (typeof define == "function" && define.amd) // AMD -    define(["../../lib/codemirror"], mod); -  else // Plain browser env -    mod(CodeMirror); -})(function(CodeMirror) { -  "use strict"; - -  var HINT_ELEMENT_CLASS        = "CodeMirror-hint"; -  var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active"; - -  // This is the old interface, kept around for now to stay -  // backwards-compatible. -  CodeMirror.showHint = function(cm, getHints, options) { -    if (!getHints) return cm.showHint(options); -    if (options && options.async) getHints.async = true; -    var newOpts = {hint: getHints}; -    if (options) for (var prop in options) newOpts[prop] = options[prop]; -    return cm.showHint(newOpts); -  }; - -  CodeMirror.defineExtension("showHint", function(options) { -    options = parseOptions(this, this.getCursor("start"), options); -    var selections = this.listSelections() -    if (selections.length > 1) return; -    // By default, don't allow completion when something is selected. -    // A hint function can have a `supportsSelection` property to -    // indicate that it can handle selections. -    if (this.somethingSelected()) { -      if (!options.hint.supportsSelection) return; -      // Don't try with cross-line selections -      for (var i = 0; i < selections.length; i++) -        if (selections[i].head.line != selections[i].anchor.line) return; -    } - -    if (this.state.completionActive) this.state.completionActive.close(); -    var completion = this.state.completionActive = new Completion(this, options); -    if (!completion.options.hint) return; - -    CodeMirror.signal(this, "startCompletion", this); -    completion.update(true); -  }); - -  function Completion(cm, options) { -    this.cm = cm; -    this.options = options; -    this.widget = null; -    this.debounce = 0; -    this.tick = 0; -    this.startPos = this.cm.getCursor("start"); -    this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length; - -    var self = this; -    cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); }); -  } - -  var requestAnimationFrame = window.requestAnimationFrame || function(fn) { -    return setTimeout(fn, 1000/60); -  }; -  var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout; - -  Completion.prototype = { -    close: function() { -      if (!this.active()) return; -      this.cm.state.completionActive = null; -      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); -    }, - -    active: function() { -      return this.cm.state.completionActive == this; -    }, - -    pick: function(data, i) { -      var completion = data.list[i]; -      if (completion.hint) completion.hint(this.cm, data, completion); -      else this.cm.replaceRange(getText(completion), completion.from || data.from, -                                completion.to || data.to, "complete"); -      CodeMirror.signal(data, "pick", completion); -      this.close(); -    }, - -    cursorActivity: function() { -      if (this.debounce) { -        cancelAnimationFrame(this.debounce); -        this.debounce = 0; -      } - -      var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line); -      if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch || -          pos.ch < this.startPos.ch || this.cm.somethingSelected() || -          (pos.ch && this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) { -        this.close(); -      } else { -        var self = this; -        this.debounce = requestAnimationFrame(function() {self.update();}); -        if (this.widget) this.widget.disable(); -      } -    }, - -    update: function(first) { -      if (this.tick == null) return -      var self = this, myTick = ++this.tick -      fetchHints(this.options.hint, this.cm, this.options, function(data) { -        if (self.tick == myTick) self.finishUpdate(data, first) -      }) -    }, - -    finishUpdate: function(data, first) { -      if (this.data) CodeMirror.signal(this.data, "update"); - -      var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle); -      if (this.widget) this.widget.close(); - -      if (data && this.data && isNewCompletion(this.data, data)) return; -      this.data = data; - -      if (data && data.list.length) { -        if (picked && data.list.length == 1) { -          this.pick(data, 0); -        } else { -          this.widget = new Widget(this, data); -          CodeMirror.signal(data, "shown"); -        } -      } -    } -  }; - -  function isNewCompletion(old, nw) { -    var moved = CodeMirror.cmpPos(nw.from, old.from) -    return moved > 0 && old.to.ch - old.from.ch != nw.to.ch - nw.from.ch -  } - -  function parseOptions(cm, pos, options) { -    var editor = cm.options.hintOptions; -    var out = {}; -    for (var prop in defaultOptions) out[prop] = defaultOptions[prop]; -    if (editor) for (var prop in editor) -      if (editor[prop] !== undefined) out[prop] = editor[prop]; -    if (options) for (var prop in options) -      if (options[prop] !== undefined) out[prop] = options[prop]; -    if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos) -    return out; -  } - -  function getText(completion) { -    if (typeof completion == "string") return completion; -    else return completion.text; -  } - -  function buildKeyMap(completion, handle) { -    var baseMap = { -      Up: function() {handle.moveFocus(-1);}, -      Down: function() {handle.moveFocus(1);}, -      PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);}, -      PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);}, -      Home: function() {handle.setFocus(0);}, -      End: function() {handle.setFocus(handle.length - 1);}, -      Enter: handle.pick, -      Tab: handle.pick, -      Esc: handle.close -    }; -    var custom = completion.options.customKeys; -    var ourMap = custom ? {} : baseMap; -    function addBinding(key, val) { -      var bound; -      if (typeof val != "string") -        bound = function(cm) { return val(cm, handle); }; -      // This mechanism is deprecated -      else if (baseMap.hasOwnProperty(val)) -        bound = baseMap[val]; -      else -        bound = val; -      ourMap[key] = bound; -    } -    if (custom) -      for (var key in custom) if (custom.hasOwnProperty(key)) -        addBinding(key, custom[key]); -    var extra = completion.options.extraKeys; -    if (extra) -      for (var key in extra) if (extra.hasOwnProperty(key)) -        addBinding(key, extra[key]); -    return ourMap; -  } - -  function getHintElement(hintsElement, el) { -    while (el && el != hintsElement) { -      if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el; -      el = el.parentNode; -    } -  } - -  function Widget(completion, data) { -    this.completion = completion; -    this.data = data; -    this.picked = false; -    var widget = this, cm = completion.cm; - -    var hints = this.hints = document.createElement("ul"); -    hints.className = "CodeMirror-hints"; -    this.selectedHint = data.selectedHint || 0; - -    var completions = data.list; -    for (var i = 0; i < completions.length; ++i) { -      var elt = hints.appendChild(document.createElement("li")), cur = completions[i]; -      var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS); -      if (cur.className != null) className = cur.className + " " + className; -      elt.className = className; -      if (cur.render) cur.render(elt, data, cur); -      else elt.appendChild(document.createTextNode(cur.displayText || getText(cur))); -      elt.hintId = i; -    } - -    var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null); -    var left = pos.left, top = pos.bottom, below = true; -    hints.style.left = left + "px"; -    hints.style.top = top + "px"; -    // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor. -    var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth); -    var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight); -    (completion.options.container || document.body).appendChild(hints); -    var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH; -    var scrolls = hints.scrollHeight > hints.clientHeight + 1 -    var startScroll = cm.getScrollInfo(); - -    if (overlapY > 0) { -      var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top); -      if (curTop - height > 0) { // Fits above cursor -        hints.style.top = (top = pos.top - height) + "px"; -        below = false; -      } else if (height > winH) { -        hints.style.height = (winH - 5) + "px"; -        hints.style.top = (top = pos.bottom - box.top) + "px"; -        var cursor = cm.getCursor(); -        if (data.from.ch != cursor.ch) { -          pos = cm.cursorCoords(cursor); -          hints.style.left = (left = pos.left) + "px"; -          box = hints.getBoundingClientRect(); -        } -      } -    } -    var overlapX = box.right - winW; -    if (overlapX > 0) { -      if (box.right - box.left > winW) { -        hints.style.width = (winW - 5) + "px"; -        overlapX -= (box.right - box.left) - winW; -      } -      hints.style.left = (left = pos.left - overlapX) + "px"; -    } -    if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling) -      node.style.paddingRight = cm.display.nativeBarWidth + "px" - -    cm.addKeyMap(this.keyMap = buildKeyMap(completion, { -      moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); }, -      setFocus: function(n) { widget.changeActive(n); }, -      menuSize: function() { return widget.screenAmount(); }, -      length: completions.length, -      close: function() { completion.close(); }, -      pick: function() { widget.pick(); }, -      data: data -    })); - -    if (completion.options.closeOnUnfocus) { -      var closingOnBlur; -      cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); }); -      cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); }); -    } - -    cm.on("scroll", this.onScroll = function() { -      var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect(); -      var newTop = top + startScroll.top - curScroll.top; -      var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop); -      if (!below) point += hints.offsetHeight; -      if (point <= editor.top || point >= editor.bottom) return completion.close(); -      hints.style.top = newTop + "px"; -      hints.style.left = (left + startScroll.left - curScroll.left) + "px"; -    }); - -    CodeMirror.on(hints, "dblclick", function(e) { -      var t = getHintElement(hints, e.target || e.srcElement); -      if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();} -    }); - -    CodeMirror.on(hints, "click", function(e) { -      var t = getHintElement(hints, e.target || e.srcElement); -      if (t && t.hintId != null) { -        widget.changeActive(t.hintId); -        if (completion.options.completeOnSingleClick) widget.pick(); -      } -    }); - -    CodeMirror.on(hints, "mousedown", function() { -      setTimeout(function(){cm.focus();}, 20); -    }); - -    CodeMirror.signal(data, "select", completions[0], hints.firstChild); -    return true; -  } - -  Widget.prototype = { -    close: function() { -      if (this.completion.widget != this) return; -      this.completion.widget = null; -      this.hints.parentNode.removeChild(this.hints); -      this.completion.cm.removeKeyMap(this.keyMap); - -      var cm = this.completion.cm; -      if (this.completion.options.closeOnUnfocus) { -        cm.off("blur", this.onBlur); -        cm.off("focus", this.onFocus); -      } -      cm.off("scroll", this.onScroll); -    }, - -    disable: function() { -      this.completion.cm.removeKeyMap(this.keyMap); -      var widget = this; -      this.keyMap = {Enter: function() { widget.picked = true; }}; -      this.completion.cm.addKeyMap(this.keyMap); -    }, - -    pick: function() { -      this.completion.pick(this.data, this.selectedHint); -    }, - -    changeActive: function(i, avoidWrap) { -      if (i >= this.data.list.length) -        i = avoidWrap ? this.data.list.length - 1 : 0; -      else if (i < 0) -        i = avoidWrap ? 0  : this.data.list.length - 1; -      if (this.selectedHint == i) return; -      var node = this.hints.childNodes[this.selectedHint]; -      node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, ""); -      node = this.hints.childNodes[this.selectedHint = i]; -      node.className += " " + ACTIVE_HINT_ELEMENT_CLASS; -      if (node.offsetTop < this.hints.scrollTop) -        this.hints.scrollTop = node.offsetTop - 3; -      else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight) -        this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3; -      CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node); -    }, - -    screenAmount: function() { -      return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1; -    } -  }; - -  function applicableHelpers(cm, helpers) { -    if (!cm.somethingSelected()) return helpers -    var result = [] -    for (var i = 0; i < helpers.length; i++) -      if (helpers[i].supportsSelection) result.push(helpers[i]) -    return result -  } - -  function fetchHints(hint, cm, options, callback) { -    if (hint.async) { -      hint(cm, callback, options) -    } else { -      var result = hint(cm, options) -      if (result && result.then) result.then(callback) -      else callback(result) -    } -  } - -  function resolveAutoHints(cm, pos) { -    var helpers = cm.getHelpers(pos, "hint"), words -    if (helpers.length) { -      var resolved = function(cm, callback, options) { -        var app = applicableHelpers(cm, helpers); -        function run(i) { -          if (i == app.length) return callback(null) -          fetchHints(app[i], cm, options, function(result) { -            if (result && result.list.length > 0) callback(result) -            else run(i + 1) -          }) -        } -        run(0) -      } -      resolved.async = true -      resolved.supportsSelection = true -      return resolved -    } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) { -      return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) } -    } else if (CodeMirror.hint.anyword) { -      return function(cm, options) { return CodeMirror.hint.anyword(cm, options) } -    } else { -      return function() {} -    } -  } - -  CodeMirror.registerHelper("hint", "auto", { -    resolve: resolveAutoHints -  }); - -  CodeMirror.registerHelper("hint", "fromList", function(cm, options) { -    var cur = cm.getCursor(), token = cm.getTokenAt(cur); -    var to = CodeMirror.Pos(cur.line, token.end); -    if (token.string && /\w/.test(token.string[token.string.length - 1])) { -      var term = token.string, from = CodeMirror.Pos(cur.line, token.start); -    } else { -      var term = "", from = to; -    } -    var found = []; -    for (var i = 0; i < options.words.length; i++) { -      var word = options.words[i]; -      if (word.slice(0, term.length) == term) -        found.push(word); -    } - -    if (found.length) return {list: found, from: from, to: to}; -  }); - -  CodeMirror.commands.autocomplete = CodeMirror.showHint; - -  var defaultOptions = { -    hint: CodeMirror.hint.auto, -    completeSingle: true, -    alignWithWord: true, -    closeCharacters: /[\s()\[\]{};:>,]/, -    closeOnUnfocus: true, -    completeOnSingleClick: true, -    container: null, -    customKeys: null, -    extraKeys: null -  }; - -  CodeMirror.defineOption("hintOptions", null); -}); diff --git a/public/vendor/codemirror/addon/hint/sql-hint.js b/public/vendor/codemirror/addon/hint/sql-hint.js deleted file mode 100644 index 1ee4f0bb..00000000 --- a/public/vendor/codemirror/addon/hint/sql-hint.js +++ /dev/null @@ -1,271 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { -  if (typeof exports == "object" && typeof module == "object") // CommonJS -    mod(require("../../lib/codemirror"), require("../../mode/sql/sql")); -  else if (typeof define == "function" && define.amd) // AMD -    define(["../../lib/codemirror", "../../mode/sql/sql"], mod); -  else // Plain browser env -    mod(CodeMirror); -})(function(CodeMirror) { -  "use strict"; - -  var tables; -  var defaultTable; -  var keywords; -  var CONS = { -    QUERY_DIV: ";", -    ALIAS_KEYWORD: "AS" -  }; -  var Pos = CodeMirror.Pos, cmpPos = CodeMirror.cmpPos; - -  function isArray(val) { return Object.prototype.toString.call(val) == "[object Array]" } - -  function getKeywords(editor) { -    var mode = editor.doc.modeOption; -    if (mode === "sql") mode = "text/x-sql"; -    return CodeMirror.resolveMode(mode).keywords; -  } - -  function getText(item) { -    return typeof item == "string" ? item : item.text; -  } - -  function wrapTable(name, value) { -    if (isArray(value)) value = {columns: value} -    if (!value.text) value.text = name -    return value -  } - -  function parseTables(input) { -    var result = {} -    if (isArray(input)) { -      for (var i = input.length - 1; i >= 0; i--) { -        var item = input[i] -        result[getText(item).toUpperCase()] = wrapTable(getText(item), item) -      } -    } else if (input) { -      for (var name in input) -        result[name.toUpperCase()] = wrapTable(name, input[name]) -    } -    return result -  } - -  function getTable(name) { -    return tables[name.toUpperCase()] -  } - -  function shallowClone(object) { -    var result = {}; -    for (var key in object) if (object.hasOwnProperty(key)) -      result[key] = object[key]; -    return result; -  } - -  function match(string, word) { -    var len = string.length; -    var sub = getText(word).substr(0, len); -    return string.toUpperCase() === sub.toUpperCase(); -  } - -  function addMatches(result, search, wordlist, formatter) { -    if (isArray(wordlist)) { -      for (var i = 0; i < wordlist.length; i++) -        if (match(search, wordlist[i])) result.push(formatter(wordlist[i])) -    } else { -      for (var word in wordlist) if (wordlist.hasOwnProperty(word)) { -        var val = wordlist[word] -        if (!val || val === true) -          val = word -        else -          val = val.displayText ? {text: val.text, displayText: val.displayText} : val.text -        if (match(search, val)) result.push(formatter(val)) -      } -    } -  } - -  function cleanName(name) { -    // Get rid name from backticks(`) and preceding dot(.) -    if (name.charAt(0) == ".") { -      name = name.substr(1); -    } -    return name.replace(/`/g, ""); -  } - -  function insertBackticks(name) { -    var nameParts = getText(name).split("."); -    for (var i = 0; i < nameParts.length; i++) -      nameParts[i] = "`" + nameParts[i] + "`"; -    var escaped = nameParts.join("."); -    if (typeof name == "string") return escaped; -    name = shallowClone(name); -    name.text = escaped; -    return name; -  } - -  function nameCompletion(cur, token, result, editor) { -    // Try to complete table, column names and return start position of completion -    var useBacktick = false; -    var nameParts = []; -    var start = token.start; -    var cont = true; -    while (cont) { -      cont = (token.string.charAt(0) == "."); -      useBacktick = useBacktick || (token.string.charAt(0) == "`"); - -      start = token.start; -      nameParts.unshift(cleanName(token.string)); - -      token = editor.getTokenAt(Pos(cur.line, token.start)); -      if (token.string == ".") { -        cont = true; -        token = editor.getTokenAt(Pos(cur.line, token.start)); -      } -    } - -    // Try to complete table names -    var string = nameParts.join("."); -    addMatches(result, string, tables, function(w) { -      return useBacktick ? insertBackticks(w) : w; -    }); - -    // Try to complete columns from defaultTable -    addMatches(result, string, defaultTable, function(w) { -      return useBacktick ? insertBackticks(w) : w; -    }); - -    // Try to complete columns -    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 (!getTable(table)) { -      var oldTable = table; -      table = findTableByAlias(table, editor); -      if (table !== oldTable) alias = true; -    } - -    var columns = getTable(table); -    if (columns && columns.columns) -      columns = columns.columns; - -    if (columns) { -      addMatches(result, string, columns, function(w) { -        var tableInsert = table; -        if (alias == true) tableInsert = aliasTable; -        if (typeof w == "string") { -          w = tableInsert + "." + w; -        } else { -          w = shallowClone(w); -          w.text = tableInsert + "." + w.text; -        } -        return useBacktick ? insertBackticks(w) : w; -      }); -    } - -    return start; -  } - -  function eachWord(lineText, f) { -    if (!lineText) return; -    var excepted = /[,;]/g; -    var words = lineText.split(" "); -    for (var i = 0; i < words.length; i++) { -      f(words[i]?words[i].replace(excepted, '') : ''); -    } -  } - -  function findTableByAlias(alias, editor) { -    var doc = editor.doc; -    var fullQuery = doc.getValue(); -    var aliasUpperCase = alias.toUpperCase(); -    var previousWord = ""; -    var table = ""; -    var separator = []; -    var validRange = { -      start: Pos(0, 0), -      end: Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).length) -    }; - -    //add separator -    var indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV); -    while(indexOfSeparator != -1) { -      separator.push(doc.posFromIndex(indexOfSeparator)); -      indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV, indexOfSeparator+1); -    } -    separator.unshift(Pos(0, 0)); -    separator.push(Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).text.length)); - -    //find valid range -    var prevItem = null; -    var current = editor.getCursor() -    for (var i = 0; i < separator.length; i++) { -      if ((prevItem == null || cmpPos(current, prevItem) > 0) && cmpPos(current, separator[i]) <= 0) { -        validRange = {start: prevItem, end: separator[i]}; -        break; -      } -      prevItem = separator[i]; -    } - -    var query = doc.getRange(validRange.start, validRange.end, false); - -    for (var i = 0; i < query.length; i++) { -      var lineText = query[i]; -      eachWord(lineText, function(word) { -        var wordUpperCase = word.toUpperCase(); -        if (wordUpperCase === aliasUpperCase && getTable(previousWord)) -          table = previousWord; -        if (wordUpperCase !== CONS.ALIAS_KEYWORD) -          previousWord = word; -      }); -      if (table) break; -    } -    return table; -  } - -  CodeMirror.registerHelper("hint", "sql", function(editor, options) { -    tables = parseTables(options && options.tables) -    var defaultTableName = options && options.defaultTable; -    var disableKeywords = options && options.disableKeywords; -    defaultTable = defaultTableName && getTable(defaultTableName); -    keywords = getKeywords(editor); - -    if (defaultTableName && !defaultTable) -      defaultTable = findTableByAlias(defaultTableName, editor); - -    defaultTable = defaultTable || []; - -    if (defaultTable.columns) -      defaultTable = defaultTable.columns; - -    var cur = editor.getCursor(); -    var result = []; -    var token = editor.getTokenAt(cur), start, end, search; -    if (token.end > cur.ch) { -      token.end = cur.ch; -      token.string = token.string.slice(0, cur.ch - token.start); -    } - -    if (token.string.match(/^[.`\w@]\w*$/)) { -      search = token.string; -      start = token.start; -      end = token.end; -    } else { -      start = end = cur.ch; -      search = ""; -    } -    if (search.charAt(0) == "." || search.charAt(0) == "`") { -      start = nameCompletion(cur, token, result, editor); -    } else { -      addMatches(result, search, tables, function(w) {return w;}); -      addMatches(result, search, defaultTable, function(w) {return w;}); -      if (!disableKeywords) -        addMatches(result, search, keywords, function(w) {return w.toUpperCase();}); -    } - -    return {list: result, from: Pos(cur.line, start), to: Pos(cur.line, end)}; -  }); -}); diff --git a/public/vendor/codemirror/addon/hint/xml-hint.js b/public/vendor/codemirror/addon/hint/xml-hint.js deleted file mode 100644 index 9b9baa0c..00000000 --- a/public/vendor/codemirror/addon/hint/xml-hint.js +++ /dev/null @@ -1,110 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { -  if (typeof exports == "object" && typeof module == "object") // CommonJS -    mod(require("../../lib/codemirror")); -  else if (typeof define == "function" && define.amd) // AMD -    define(["../../lib/codemirror"], mod); -  else // Plain browser env -    mod(CodeMirror); -})(function(CodeMirror) { -  "use strict"; - -  var Pos = CodeMirror.Pos; - -  function getHints(cm, options) { -    var tags = options && options.schemaInfo; -    var quote = (options && options.quoteChar) || '"'; -    if (!tags) return; -    var cur = cm.getCursor(), token = cm.getTokenAt(cur); -    if (token.end > cur.ch) { -      token.end = cur.ch; -      token.string = token.string.slice(0, cur.ch - token.start); -    } -    var inner = CodeMirror.innerMode(cm.getMode(), token.state); -    if (inner.mode.name != "xml") return; -    var result = [], replaceToken = false, prefix; -    var tag = /\btag\b/.test(token.type) && !/>$/.test(token.string); -    var tagName = tag && /^\w/.test(token.string), tagStart; - -    if (tagName) { -      var before = cm.getLine(cur.line).slice(Math.max(0, token.start - 2), token.start); -      var tagType = /<\/$/.test(before) ? "close" : /<$/.test(before) ? "open" : null; -      if (tagType) tagStart = token.start - (tagType == "close" ? 2 : 1); -    } else if (tag && token.string == "<") { -      tagType = "open"; -    } else if (tag && token.string == "</") { -      tagType = "close"; -    } - -    if (!tag && !inner.state.tagName || tagType) { -      if (tagName) -        prefix = token.string; -      replaceToken = tagType; -      var cx = inner.state.context, curTag = cx && tags[cx.tagName]; -      var childList = cx ? curTag && curTag.children : tags["!top"]; -      if (childList && tagType != "close") { -        for (var i = 0; i < childList.length; ++i) if (!prefix || childList[i].lastIndexOf(prefix, 0) == 0) -          result.push("<" + childList[i]); -      } else if (tagType != "close") { -        for (var name in tags) -          if (tags.hasOwnProperty(name) && name != "!top" && name != "!attrs" && (!prefix || name.lastIndexOf(prefix, 0) == 0)) -            result.push("<" + name); -      } -      if (cx && (!prefix || tagType == "close" && cx.tagName.lastIndexOf(prefix, 0) == 0)) -        result.push("</" + cx.tagName + ">"); -    } else { -      // Attribute completion -      var curTag = tags[inner.state.tagName], attrs = curTag && curTag.attrs; -      var globalAttrs = tags["!attrs"]; -      if (!attrs && !globalAttrs) return; -      if (!attrs) { -        attrs = globalAttrs; -      } else if (globalAttrs) { // Combine tag-local and global attributes -        var set = {}; -        for (var nm in globalAttrs) if (globalAttrs.hasOwnProperty(nm)) set[nm] = globalAttrs[nm]; -        for (var nm in attrs) if (attrs.hasOwnProperty(nm)) set[nm] = attrs[nm]; -        attrs = set; -      } -      if (token.type == "string" || token.string == "=") { // A value -        var before = cm.getRange(Pos(cur.line, Math.max(0, cur.ch - 60)), -                                 Pos(cur.line, token.type == "string" ? token.start : token.end)); -        var atName = before.match(/([^\s\u00a0=<>\"\']+)=$/), atValues; -        if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return; -        if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget -        if (token.type == "string") { -          prefix = token.string; -          var n = 0; -          if (/['"]/.test(token.string.charAt(0))) { -            quote = token.string.charAt(0); -            prefix = token.string.slice(1); -            n++; -          } -          var len = token.string.length; -          if (/['"]/.test(token.string.charAt(len - 1))) { -            quote = token.string.charAt(len - 1); -            prefix = token.string.substr(n, len - 2); -          } -          replaceToken = true; -        } -        for (var i = 0; i < atValues.length; ++i) if (!prefix || atValues[i].lastIndexOf(prefix, 0) == 0) -          result.push(quote + atValues[i] + quote); -      } else { // An attribute name -        if (token.type == "attribute") { -          prefix = token.string; -          replaceToken = true; -        } -        for (var attr in attrs) if (attrs.hasOwnProperty(attr) && (!prefix || attr.lastIndexOf(prefix, 0) == 0)) -          result.push(attr); -      } -    } -    return { -      list: result, -      from: replaceToken ? Pos(cur.line, tagStart == null ? token.start : tagStart) : cur, -      to: replaceToken ? Pos(cur.line, token.end) : cur -    }; -  } - -  CodeMirror.registerHelper("hint", "xml", getHints); -}); | 
