{
    "scope": "source.js -string -comment -constant",
    "completions": [
        "accessKey",
        "align",
        "alt",
        "appletName",
        "arguments",            // Local to a function
        "attributes",
        "background",           // Body/ Table D
        "baseURI",
        "bgColor",              // Body/ Document/ Table D
        "blur()",
        "body",
        "border",               // Image/ <object>/ Table D
        "childNodes",
        "className",
        "click()",
        "clientHeight",
        "clientWidth",
        "code",
        "constructor",
        "cssRules",
        "currentStyle",         // IE et al
        "dir",
        "disabled",
        "document",
        "firstChild",
        "focus()",
        "form",
        "frame",                // from the frames collection
        "hasAttributes()",
        "hasChildNodes()",
        "hash",
        "height",               // Table D
        "history",
        "href",
        "htmlFor",
        "id",
        "Infinity",
        "innerHTML",
        "innerText",
        "lang",
        "lastChild",
        "length",
        "localName",
        "location",
        "MAX_VALUE",
        "media",                // Link (may be used in future)
        "MIN_VALUE",
        "name",
        "namespaceURI",
        "NaN",
        "navigator",
        "NEGATIVE_INFINITY",
        "nextSibling",
        "nodeName",
        "nodeType",
        "nodeValue",
        "normalize()",
        "offsetHeight",         // NON spec
        "offsetLeft",
        "offsetParent",
        "offsetTop",
        "offsetWidth",
        "onblur",
        "onclick",
        "ondblclick",
        "onfocus",
        "onkeydown",
        "onkeypress",
        "onkeyup",
        "offline",              // Inconsistent support
        "online",               // Inconsistent support
        "onmousedown",
        "onmousemove",
        "onmouseout",
        "onmouseover",
        "onmouseup",
        "onscroll",
        "ownerDocument",
        "ownerNode",            // styleSheet
        "owningElement",        // IE lt9 (cf ownerNode)
        "parentNode",
        "POSITIVE_INFINITY",
        "prefix",
        "previousSibling",
        "prototype",
        "returnValue",
        "rules",                // css IE lt9
        "screen",
        "scrollHeight",
        "scrollLeft",
        "scrollTop",
        "scrollWidth",
        "select()",             // All inputs and TextArea
        "style",
        "styleSheets",
        "tabIndex",
        "tagName",
        "target",
        "text",
        "textContent",
        "title",
        "toJSON",
        "toLocaleString()",     // Date/ Number
        "toString()",
        "type",
        "value",
        "valueOf()",
        "width",
        "window",
        "XDomainRequest()",
        "XMLHttpRequest()",
        // Global functions/constructors
        { "trigger": "ActiveXObject()", "contents": "ActiveXObject(\"${1:Microsoft.XMLHTTP}\")$0" },
        { "trigger": "Date()", "contents": "Date()" },
        { "trigger": "Date(full)", "contents": "Date(${1:year}, ${2:month}, ${3:day}, ${4:hours}, ${5:minute}, ${6:seconds}, ${7:ms})$0" },
        { "trigger": "Date(ms)", "contents": "Date(${1:milliseconds})$0" },
        { "trigger": "Date(string)", "contents": "Date(${1:datestring})$0" },
        { "trigger": "decodeURI()", "contents": "decodeURI(${1:uri})$0" },
        { "trigger": "decodeURIComponent()", "contents": "decodeURIComponent(${1:s})$0" },
        { "trigger": "encodeURI()", "contents": "encodeURI(${1:uri})$0" },
        { "trigger": "encodeURIComponent()", "contents": "encodeURIComponent(${1:s})$0" },
        { "trigger": "escape()", "contents": "escape(${1:s})$0" },
        { "trigger": "eval()", "contents": "eval(${1:code})$0" },
        { "trigger": "Image()", "contents": "Image(${1:width}, ${2:height})$0" },
        { "trigger": "isFinite()", "contents": "isFinite(${1:n})$0" },
        { "trigger": "isNaN()", "contents": "isNaN(${1:x})$0" },
        { "trigger": "Number()", "contents": "Number(${1:value})$0" },
        { "trigger": "Option()", "contents": "Option(${1:[, text]}${2:[, value]}${3:[, defaultSelected]}${4:[, selected]})$0" },
        { "trigger": "parseFloat()", "contents": "parseFloat(${1:s})$0" },
        { "trigger": "parseInt()", "contents": "parseInt(${1:s}${2:[, radix]})$0" },
        { "trigger": "RegExp()", "contents": "RegExp(${1:pattern}${2:[, attributes]})$0" },
        { "trigger": "String()", "contents": "String(${1:s})$0" },
        { "trigger": "unescape()", "contents": "unescape(${1:s})$0" },

        // Global (Object) properties and methods
        { "trigger": "hasOwnProperty()", "contents": "hasOwnProperty(${1:propname})$0" },
        { "trigger": "isPrototypeOf()", "contents": "isPrototypeOf(${1:obj})$0" },
        { "trigger": "propertyIsEnumerable()", "contents": "propertyIsEnumerable(${1:propname})$0" },
        { "trigger": "toString(radix)", "contents": "toString(${1:[radix]})$0" },

        // Miscellaneous
        "arguments.callee",     // local to a function
        "arguments.length",
        { "trigger": "arguments[]", "contents": "arguments[${1:n}]$0" },
        { "trigger": "createHTMLDocument()\tDOMImplementation", "contents": "createHTMLDocument(${1:title})$0" },
        { "trigger": "hasFeature()\tDOMImplementation", "contents": "hasFeature(${1:feature}, ${2:version})$0" },

        // Element/ Node methods
        { "trigger": "addEventListener()", "contents": "addEventListener(${1:event}, ${2:listener}, ${3:useCapture})$0" },
        { "trigger": "appendChild()", "contents": "appendChild(${1:newChild})$0" },
        { "trigger": "attachEvent()\tIE", "contents": "attachEvent(${1:eventType}, ${2:function})$0" },
        { "trigger": "attributes[]", "contents": "attributes[${1:index_or_name}]$0" },
        { "trigger": "childNodes[]", "contents": "childNodes[${1:index}]$0" },
        { "trigger": "cloneNode()", "contents": "cloneNode(${1:deep})$0" },
        { "trigger": "compareDocumentPosition()", "contents": "compareDocumentPosition(${1:node})$0" },
        { "trigger": "currentStyle[]", "contents": "currentStyle[${1:prop}]$0" },
        { "trigger": "detachEvent()\tIE", "contents": "detachEvent(${1:eventType}, ${2:function})$0" },
        { "trigger": "dispatchEvent()", "contents": "dispatchEvent(${1:eventObject})$0" },
        { "trigger": "getAttribute()", "contents": "getAttribute(${1:name})$0" },
        { "trigger": "getAttributeNode()", "contents": "getAttributeNode(${1:name})$0" },
        { "trigger": "getAttributeNodeNS()", "contents": "getAttributeNodeNS(${1:namespace}, ${2:localname})$0" },
        { "trigger": "getAttributeNS()", "contents": "getAttributeNS(${1:namespace}, ${2:localname})$0" },
        { "trigger": "getElementsByClassName()", "contents": "getElementsByClassName(${1:className})$0" },
        { "trigger": "getElementsByTagName()", "contents": "getElementsByTagName(${1:name})$0" },
        { "trigger": "getElementsByTagNameNS()", "contents": "getElementsByTagNameNS(${1:namespace}, ${2:localname})$0" },
        { "trigger": "getFeature()", "contents": "getFeature(${1:feature}, ${2:version})$0" },
        { "trigger": "getPropertyValue()", "contents": "getPropertyValue(${1:propertyName})$0" },
        { "trigger": "getPropertyCSSValue()", "contents": "getPropertyCSSValue(${1:propertyName})$0" },   // Not IE/Opera
        { "trigger": "getUserData()", "contents": "getUserData(${1:key})$0" },
        { "trigger": "hasAttribute()", "contents": "hasAttribute(${1:name})$0" },
        { "trigger": "hasAttributeNS()", "contents": "hasAttributeNS(${1:namespace}, ${2:localname})$0" },
        { "trigger": "insertBefore()", "contents": "insertBefore(${1:newChild}, ${2:refChild})$0" },
        { "trigger": "isDefaultNamespace()", "contents": "isDefaultNamespace(${1:URI})$0" },
        { "trigger": "isEqualNode()", "contents": "isEqualNode(${1:node})$0" },
        { "trigger": "isSameNode()", "contents": "isSameNode(${1:node})$0" },
        { "trigger": "isSupported()", "contents": "isSupported(${1:feature}, ${2:version})$0" },
        { "trigger": "item()", "contents": "item(${1:index})$0" },
        { "trigger": "lookupNamespaceURI()", "contents": "lookupNamespaceURI(${1:prefix})$0" },
        { "trigger": "lookupPrefix()", "contents": "lookupPrefix(${1:URI})$0" },
        { "trigger": "querySelector()", "contents": "querySelector(${1:selectors}${2:[, NSResolver]})$0" },
        { "trigger": "querySelectorAll()", "contents": "querySelectorAll(${1:selectors}${2:[, NSResolver]})$0" },
        { "trigger": "removeAttribute()", "contents": "removeAttribute(${1:name})$0" },
        { "trigger": "removeAttributeNode()", "contents": "removeAttributeNode(${1:oldAttr})$0" },
        { "trigger": "removeAttributeNS()", "contents": "removeAttributeNS(${1:namespace}, ${2:localname})$0" },
        { "trigger": "removeChild()", "contents": "removeChild(${1:oldChild})$0" },
        { "trigger": "removeEventListener()", "contents": "removeEventListener(${1:type}, ${2:listener}, ${3:useCapture})$0" },
        { "trigger": "removeProperty()", "contents": "removeProperty(${1:propertyName})$0" },
        { "trigger": "replaceChild()", "contents": "replaceChild(${1:newChild}, ${2:oldChild})$0" },
        { "trigger": "scrollIntoView()", "contents": "scrollIntoView(${1:[top]})$0" },
        { "trigger": "setAttribute()", "contents": "setAttribute(${1:name}, ${2:value}${3:[, iecaseflag]})$0" },
        { "trigger": "setAttributeNode()", "contents": "setAttributeNode(${1:newAttr})$0" },
        { "trigger": "setAttributeNS()", "contents": "setAttributeNS(${1:namespace}, ${2:qualifiedname}, ${3:value})$0" },
        { "trigger": "setProperty()", "contents": "setProperty(${1:propertyName}, ${2:propertyValue}, ${3:priority})$0" },
        { "trigger": "setUserData()", "contents": "setUserData(${1:key}, ${2:data}, ${3:handler})$0" },
        { "trigger": "supports()", "contents": "supports(${1:feature}${2:[, version]})$0" },

        { "trigger": "charset\tAnchor/Link", "contents": "charset" },
        { "trigger": "coords\tArea", "contents": "coords" },
        { "trigger": "host\tLink", "contents": "host" },
        { "trigger": "hostname\tLink", "contents": "hostname" },
        { "trigger": "hreflang\tAnchor/Link", "contents": "hreflang" },
        { "trigger": "noHref\tArea", "contents": "noHref" },
        { "trigger": "onselect\tArea", "contents": "onselect" },
        { "trigger": "pathname\tLink", "contents": "pathname" },
        { "trigger": "port\tArea/Link", "contents": "port" },
        { "trigger": "protocol\tArea/Link", "contents": "protocol" },
        { "trigger": "rel\tAnchor/Link", "contents": "rel" },
        { "trigger": "rev\tAnchor/Link", "contents": "rev" },
        { "trigger": "search\tArea/Link", "contents": "search" },
        { "trigger": "shape\tArea", "contents": "shape" },
        { "trigger": "target\tLink", "contents": "target" },

        { "trigger": "concat()\tArray", "contents": "concat(${1:values})$0" },
        { "trigger": "every()\tArray", "contents": "every(${1:testfunction}${2:[, thisobj]})$0" },
        { "trigger": "filter()\tArray", "contents": "filter(${1:testfunction}${2:[, thisobj]})$0" },
        { "trigger": "foreach()\tArray", "contents": "foreach(${1:testfunction}${2:[, thisobj]})$0" },
        { "trigger": "indexOf()\tArray", "contents": "indexOf(${1:targetElement}${2:[, startIndex]})$0" },
        { "trigger": "join()\tArray", "contents": "join(${1:separator})$0" },
        { "trigger": "lastIndexOf()\tArray", "contents": "lastIndexOf(${1:targetElement}${2:[, startIndex]})$0" },
        { "trigger": "map()\tArray", "contents": "map(${1:testfunction}${2:[, thisobj]})$0" },
        { "trigger": "pop()\tArray", "contents": "pop()" },
        { "trigger": "push()\tArray", "contents": "push(${1:values})$0" },
        { "trigger": "reverse()\tArray", "contents": "reverse()" },
        { "trigger": "shift()\tArray", "contents": "shift()" },
        { "trigger": "slice()\tArray", "contents": "slice(${1:start}${2:[, end]})$0" },
        { "trigger": "some()\tArray", "contents": "some(${1:testfunction}${2:[, thisobj]})$0" },
        { "trigger": "sort()\tArray", "contents": "sort(${1:[orderfunc]})$0" },
        { "trigger": "splice()\tArray", "contents": "splice(${1:start}${2:[, deleteCount]}${3:[, values]})$0" },
        { "trigger": "toSource()\tArray", "contents": "toSource()" },
        { "trigger": "unshift()\tArray", "contents": "unshift(${1:values})$0" },

        { "trigger": "isId\tAttr", "contents": "isId" },
        { "trigger": "getNamedItem()\tAttr", "contents": "getNamedItem(${1:name})$0" },
        { "trigger": "ownerElement\tAttr", "contents": "ownerElement" },
        { "trigger": "schemaTypeInfo\tAttr", "contents": "schemaTypeInfo" },
        { "trigger": "specified\tAttr", "contents": "specified" },

        { "trigger": "aLink\tBody", "contents": "aLink" },
        { "trigger": "link\tBody", "contents": "link" },
        { "trigger": "onafterprint\tBody", "contents": "onafterprint" },
        { "trigger": "onbeforeprint\tBody", "contents": "onbeforeprint" },
        { "trigger": "onload\tBody", "contents": "onload" },
        { "trigger": "vLink\tBody", "contents": "vLink" },

        { "trigger": "toSource()\tBoolean", "contents": "toSource()" },

        // Canvas (mainly through 2DContext object)
        { "trigger": "arc()\tCanvas 2", "contents": "arc(${1:x}, ${2:y}, ${3:radius}, ${4:startAngle}, ${5:endAngle}, ${6:anticlockwise})$0" },
        { "trigger": "arcTo()\tCanvas 2", "contents": "arcTo(${1:x1}, ${2:y1}, ${3:x2}, ${4:y2}, ${5:radius})$0" },
        { "trigger": "beginPath()\tCanvas 2", "contents": "beginPath()" },
        { "trigger": "bezierCurveTo()\tCanvas 2", "contents": "bezierCurveTo(${1:cp1x}, ${2:cp1y}, ${3:cp2x}, ${4:cp2y}, ${5:x}, ${6:y})$0" },
        { "trigger": "canvas\tCanvas 2", "contents": "canvas" },
        { "trigger": "clearRect()\tCanvas 2", "contents": "clearRect(${1:x}, ${2:y}, ${3:w}, ${4:h})$0" },
        { "trigger": "clip()\tCanvas 2", "contents": "clip()" },
        { "trigger": "closePath()\tCanvas 2", "contents": "closePath()" },
        { "trigger": "createImageData()\tCanvas 2", "contents": "createImageData(${1:sw}, ${2:sh})$0" },
        { "trigger": "createImageData(imagedata)\tCanvas 2", "contents": "createImageData(${1:imagedata})$0" },
        { "trigger": "createLinearGradient()\tCanvas 2", "contents": "createLinearGradient(${1:x0}, ${2:y0}, ${3:x1}, ${4:y1})$0" },
        { "trigger": "createRadialGradient()\tCanvas 2", "contents": "createRadialGradient(${1:x0}, ${2:y0}, ${3:r0}, ${4:x1}, ${5:y1}, ${6:r1})$0" },
        { "trigger": "createPattern()\tCanvas 2", "contents": "createPattern(${1:image}, ${2:repetition})$0" },
        { "trigger": "data\tCanvas/ImageData", "contents": "data" },
        { "trigger": "drawImage()\tCanvas 2", "contents": "drawImage(${1:image}, ${2:dx}, ${3:dy}${4:[, dw]}${5:[, dh]})$0" },
        { "trigger": "drawImage(part)\tCanvas 2", "contents": "drawImage(${1:image}, ${2:sx}, ${3:sy}, ${4:sw}, ${5:sh}, ${6:dx}, ${7:dy}, ${8:dw}, ${9:dh})$0" },
        { "trigger": "fill()\tCanvas 2", "contents": "fill()$0" },
        { "trigger": "fillRect()\tCanvas 2", "contents": "fillRect(${1:x}, ${2:y}, ${3:w}, ${4:h})$0" },
        { "trigger": "fillStyle\tCanvas 2", "contents": "fillStyle" },
        { "trigger": "fillText()\tCanvas 2", "contents": "fillText(${1:text}, ${2:x}, ${3:y}${4:[, maxWidth]})$0" },
        { "trigger": "font\tCanvas 2", "contents": "font" },
        { "trigger": "getContext()\tCanvas", "contents": "getContext(\"2d\")$0" },
        { "trigger": "getImageData()\tCanvas 2", "contents": "getImageData(${1:sx}, ${2:sy}, ${3:sw}, ${4:sh})$0" },
        { "trigger": "globalAlpha\tCanvas 2", "contents": "globalAlpha" },
        { "trigger": "globalCompositeOperation\tCanvas 2", "contents": "globalCompositeOperation" },
        { "trigger": "isPointInPath()\tCanvas 2", "contents": "isPointInPath(${1:x}, ${2:y})$0" },
        { "trigger": "lineCap\tCanvas 2", "contents": "lineCap" },
        { "trigger": "lineJoin\tCanvas 2", "contents": "lineJoin" },
        { "trigger": "lineTo()\tCanvas 2", "contents": "lineTo(${1:x}, ${2:y})$0" },
        { "trigger": "lineWidth\tCanvas 2", "contents": "lineWidth" },
        { "trigger": "measureText()\tCanvas 2", "contents": "measureText(${1:text})$0" },
        { "trigger": "miterLimit\tCanvas 2", "contents": "miterLimit" },
        { "trigger": "moveTo()\tCanvas 2", "contents": "moveTo(${1:x}, ${2:y})$0" },
        { "trigger": "putImageData()\tCanvas 2", "contents": "putImageData(${1:imagedata}, ${2:dx}, ${3:dy}${4:[, dirtyX]}${5:[, dirtyY]}${6:[, dirtyWidth]}${7:[, dirtyHeight]})$0" },
        { "trigger": "quadraticCurveTo()\tCanvas 2", "contents": "quadraticCurveTo(${1:cpx}, ${2:cpy}, ${3:x}, ${4:y})$0" },
        { "trigger": "rect()\tCanvas 2", "contents": "rect(${1:x}, ${2:y}, ${3:w}, ${4:h})$0" },
        { "trigger": "restore()\tCanvas 2", "contents": "restore()" },
        { "trigger": "rotate()\tCanvas 2", "contents": "rotate(${1:angle})$0" },
        { "trigger": "save()\tCanvas 2", "contents": "save()" },
        { "trigger": "scale()\tCanvas 2", "contents": "scale(${1:x}, ${2:y})$0" },
        { "trigger": "setTransform()\tCanvas 2", "contents": "setTransform(${1:m11}, ${2:m12}, ${3:m21}, ${4:m22}, ${5:dx}, ${6:dy})$0" },
        { "trigger": "shadowBlur\tCanvas 2", "contents": "shadowBlur" },
        { "trigger": "shadowColor\tCanvas 2", "contents": "shadowColor" },
        { "trigger": "shadowOffsetX\tCanvas 2", "contents": "shadowOffsetX" },
        { "trigger": "shadowOffsetY\tCanvas 2", "contents": "shadowOffsetY" },
        { "trigger": "stroke()\tCanvas 2", "contents": "stroke()" },
        { "trigger": "strokeRect()\tCanvas 2", "contents": "strokeRect(${1:x}, ${2:y}, ${3:w}, ${4:h})$0" },
        { "trigger": "strokeStyle\tCanvas 2", "contents": "strokeStyle" },
        { "trigger": "strokeText()\tCanvas 2", "contents": "strokeText(${1:text}, ${2:x}, ${3:y}${4:[, maxWidth]})$0" },
        { "trigger": "textAlign\tCanvas 2", "contents": "textAlign" },
        { "trigger": "textBaseLine\tCanvas 2", "contents": "textBaseLine" },
        { "trigger": "translate()\tCanvas 2", "contents": "translate(${1:x}, ${2:y})$0" },
        { "trigger": "transform()\tCanvas 2", "contents": "transform(${1:m11}, ${2:m12}, ${3:m21}, ${4:m22}, ${5:dx}, ${6:dy})$0" },
        { "trigger": "toDataURL()\tCanvas", "contents": "toDataURL(${1:[type]}, ${2:args})$0" },
        { "trigger": "addColorStop()\tCanvasGrad", "contents": "addColorStop(${1:offset}, ${2:color})$0" },

        // Static Date methods
        { "trigger": "parse()\tDate", "contents": "parse(${1:datestring})$0" },
        { "trigger": "UTC()\tDate", "contents": "UTC(${1:yr}, ${2:mon}${3:[, day]}${4:[, hr]}${5:[, min]}${6:[, sec]}${7:[, ms]})$0" },

        { "trigger": "getDate()", "contents": "getDate()" },
        { "trigger": "getDay()", "contents": "getDay()" },
        { "trigger": "getFullYear()", "contents": "getFullYear()" },
        { "trigger": "getHours()", "contents": "getHours()" },
        { "trigger": "getMilliseconds()", "contents": "getMilliseconds()" },
        { "trigger": "getMinutes()", "contents": "getMinutes()" },
        { "trigger": "getSeconds()", "contents": "getSeconds()" },
        { "trigger": "getTime()", "contents": "getTime()" },
        { "trigger": "getTimeZoneOffset()", "contents": "getTimeZoneOffset()" },
        { "trigger": "getUTCDate()", "contents": "getUTCDate()" },
        { "trigger": "getUTCDay()", "contents": "getUTCDay()" },
        { "trigger": "getUTCFullYear()", "contents": "getUTCFullYear()" },
        { "trigger": "getUTCHours()", "contents": "getUTCHours()" },
        { "trigger": "getUTCMilliseconds()", "contents": "getUTCMilliseconds()" },
        { "trigger": "getUTCMinutes()", "contents": "getUTCMinutes()" },
        { "trigger": "getUTCMonth()", "contents": "getUTCMonth()" },
        { "trigger": "getUTCSeconds()", "contents": "getUTCSeconds()" },
        { "trigger": "getYear()", "contents": "getYear()" },
        { "trigger": "setDate()", "contents": "setDate(${1:day_of_month})$0" },
        { "trigger": "setFullYear()", "contents": "setFullYear(${1:year}${2:[, month]}${3:[, day]})$0" },
        { "trigger": "setHours()", "contents": "setHours(${1:hours}${2:[, mins]}${3:[, secs]}${4:[, ms]})$0" },
        { "trigger": "setMilliseconds()", "contents": "setMilliseconds(${1:millis})$0" },
        { "trigger": "setMinutes()", "contents": "setMinutes(${1:minutes}${2:[, seconds]}${3:[, millisec]})$0" },
        { "trigger": "setMonth()", "contents": "setMonth(${1:month}${2:[, day]})$0" },
        { "trigger": "setSeconds()", "contents": "setSeconds(${1:seconds}${2:[, millis]})$0" },
        { "trigger": "setTime()", "contents": "setTime(${1:milliseconds})$0" },
        { "trigger": "setUTCDate()", "contents": "setUTCDate(${1:day_of_month})$0" },
        { "trigger": "setUTCDay()", "contents": "setUTCDay(${1:value})$0" },
        { "trigger": "setUTCFullYear()", "contents": "setUTCFullYear(${1:year}${2:[, month]}${3:[, day]})$0" },
        { "trigger": "setUTCHours()", "contents": "setUTCHours(${1:hours}${2:[, mins]}${3:[, secs]}${4:[, ms]})$0" },
        { "trigger": "setUTCMinutes()", "contents": "setUTCMinutes(${1:minutes}${2:[, seconds]}${3:[, millisec]})$0" },
        { "trigger": "setUTCMonth()", "contents": "setUTCMonth(${1:month}${2:[, day]})$0" },
        { "trigger": "setUTCSeconds()", "contents": "setUTCSeconds(${1:seconds}${2:[, millis]})$0" },
        { "trigger": "setUTCMilliseconds()", "contents": "setUTCMilliseconds(${1:millis})$0" },
        { "trigger": "setYear()", "contents": "setYear(${1:year})$0" },
        { "trigger": "toDateString()", "contents": "toDateString()" },
        { "trigger": "toGMTString()", "contents": "toGMTString()" },
        { "trigger": "toTimeString()", "contents": "toTimeString()" },
        { "trigger": "toUTCString()", "contents": "toUTCString()" },
        { "trigger": "toLocaleDateString()", "contents": "toLocaleDateString()" },
        { "trigger": "toLocaleTimeString()", "contents": "toLocaleTimeString()" },

        { "trigger": "alinkColor\tDocument", "contents": "alinkColor" },
        { "trigger": "anchors[]\tDocument", "contents": "anchors[${1:index_or_name}]$0" },
        { "trigger": "anchors\tDocument", "contents": "anchors" },
        { "trigger": "applets[]\tDocument", "contents": "applets[${1:index_or_name}]$0" },
        { "trigger": "applets\tDocument", "contents": "applets" },
        { "trigger": "body\tDocument", "contents": "body" },
        { "trigger": "close()\tDocument", "contents": "close()" },
        { "trigger": "compatMode\tDocument", "contents": "compatMode" },
        { "trigger": "cookie\tDocument", "contents": "cookie" },
        { "trigger": "createAttribute()\tDocument", "contents": "createAttribute(${1:name})$0" },
        { "trigger": "createComment()\tDocument", "contents": "createComment(${1:text})$0" },
        { "trigger": "createDocumentFragment()\tDocument", "contents": "createDocumentFragment()" },
        { "trigger": "createElement()\tDocument", "contents": "createElement(${1:tagName})$0" },
        { "trigger": "createTextNode()\tDocument", "contents": "createTextNode(${1:text})$0" },
        { "trigger": "defaultView\tDocument", "contents": "defaultView" },
        { "trigger": "documentElement\t(html) Document", "contents": "documentElement" },
        { "trigger": "documentMode\tIE8 Document", "contents": "documentMode" },
        { "trigger": "domain\tDocument", "contents": "domain" },
        { "trigger": "embeds[]\tDocument", "contents": "embeds[${1:index}]$0" },
        { "trigger": "embeds\tDocument", "contents": "embeds" },
        { "trigger": "execCommand()\tIE Document", "contents": "execCommand(\"${1:Stop}\")$0" },
        { "trigger": "fgColor\tDocument", "contents": "fgColor" },
        { "trigger": "fileSize\tIE Document", "contents": "fileSize" },
        { "trigger": "forms[]\tDocument", "contents": "forms[${1:name_or_number}]$0" },
        { "trigger": "forms\tDocument", "contents": "forms" },
        { "trigger": "getElementById()\tDocument", "contents": "getElementById(${1:id})$0" },
        { "trigger": "getElementsByName()\tDocument", "contents": "getElementsByName(${1:name})$0" },
        { "trigger": "getElementsByTagName()\tDocument", "contents": "getElementsByTagName(${1:tagname})$0" },
        { "trigger": "images[]\tDocument", "contents": "images[${1:index_or_name}]$0" },
        { "trigger": "images\tDocument", "contents": "images" },
        { "trigger": "implementation\tDocument", "contents": "implementation" },
        { "trigger": "importNode()\tDocument", "contents": "importNode(${1:importedNode}${2:[, deep]})$0" },
        { "trigger": "lastModified\tDocument", "contents": "lastModified" },
        { "trigger": "linkColor\tDocument", "contents": "linkColor" },
        { "trigger": "links[]\tDocument", "contents": "links[${1:i}]$0" },
        { "trigger": "links\tDocument", "contents": "links" },
        { "trigger": "open()\tDocument", "contents": "open(${1:[mimetype]}${2:[, replace]})$0" },
        { "trigger": "plugins[]\tDocument", "contents": "plugins[${1:index}]$0" },
        { "trigger": "plugins\tDocument", "contents": "plugins" },
        { "trigger": "readyState\tDocument", "contents": "readyState" },
        { "trigger": "referrer\tDocument", "contents": "referrer" },
        { "trigger": "styleSheets[]\tDocument", "contents": "styleSheets[${1:arg}]$0" },
        { "trigger": "title\tDocument", "contents": "title" },
        { "trigger": "URL\tDocument", "contents": "URL" },
        { "trigger": "write()\tDocument", "contents": "write(${1:string})$0" },
        { "trigger": "writeln()\tDocument", "contents": "writeln(${1:string})$0" },
        { "trigger": "vlinkColor\tDocument", "contents": "vlinkColor" },

        { "trigger": "button\tEvent", "contents": "button" },
        { "trigger": "cancelBubble\tIE Event", "contents": "cancelBubble" },
        { "trigger": "clientX\tEvent", "contents": "clientX" },
        { "trigger": "clientY\tEvent", "contents": "clientY" },
        { "trigger": "currentTarget\tEvent", "contents": "currentTarget" },
        { "trigger": "fromElement\tIE Event", "contents": "fromElement" },
        { "trigger": "keyCode\tEvent", "contents": "keyCode" },
        { "trigger": "pageX\tEvent", "contents": "pageX" },
        { "trigger": "pageY\tEvent", "contents": "pageY"},
        { "trigger": "preventDefault\tEvent", "contents": "preventDefault" },
        { "trigger": "preventDefault()\tEvent", "contents": "preventDefault()" },
        { "trigger": "relatedTarget\tEvent", "contents": "relatedTarget" },
        { "trigger": "srcElement\tEvent", "contents": "srcElement" },
        { "trigger": "stopPropagation()\tEvent", "contents": "stopPropagation()" },
        { "trigger": "target\tEvent", "contents": "target" },
        { "trigger": "toElement\tIE Event", "contents": "toElement" },
        { "trigger": "type\tEvent", "contents": "type" },
        { "trigger": "which\tEvent", "contents": "which" },

        { "trigger": "acceptCharset\tForm", "contents": "acceptCharset" },
        { "trigger": "action\tForm", "contents": "action" },
        { "trigger": "elements[]\tForm", "contents": "elements[${1:index_or_name}]$0" },
        { "trigger": "elements\tForm", "contents": "elements" },
        { "trigger": "encoding\tForm", "contents": "encoding" },
        { "trigger": "enctype\tForm", "contents": "enctype" },
        { "trigger": "method\tForm", "contents": "method" },
        { "trigger": "onreset\tForm", "contents": "onreset" },
        { "trigger": "onsubmit\tForm", "contents": "onsubmit" },
        { "trigger": "reset()\tForm", "contents": "reset()" },
        { "trigger": "submit()\tForm", "contents": "submit()" },

        { "trigger": "clearInterval()\tFrame", "contents": "clearInterval(${1:id})$0" },
        { "trigger": "clearTimeout()\tFrame", "contents": "clearTimeout(${1:id})$0" },
        { "trigger": "contentDocument\tFrame", "contents": "contentDocument" },
        { "trigger": "contentWindow\tFrame", "contents": "contentWindow" },     // NON spec
        { "trigger": "frameBorder\tFrame", "contents": "frameBorder" },
        { "trigger": "frames\tFrame", "contents": "frames" },
        { "trigger": "frames[]\tFrame", "contents": "frames[${1:ref}]$0" },
        { "trigger": "longDesc\tFrame", "contents": "longDesc" },
        { "trigger": "marginHeight\tFrame", "contents": "marginHeight" },
        { "trigger": "marginWidth\tFrame", "contents": "marginWidth" },
        { "trigger": "noResize\tFrame", "contents": "noResize" },
        { "trigger": "onbeforeunload\tFrame", "contents": "onbeforeunload" },
        { "trigger": "onresize\tIFrame", "contents": "onresize" },
        { "trigger": "onunload\tIFrame", "contents": "onunload" },
        { "trigger": "parent\tFrame", "contents": "parent" },
        { "trigger": "scrolling\tFrame", "contents": "scrolling" },
        { "trigger": "self\tFrame", "contents": "self" },
        { "trigger": "setInterval()\tFrame", "contents": "setInterval(${1:func}, ${2:interval}${3:[, args]})$0" },
        { "trigger": "setTimeout()\tFrame", "contents": "setTimeout(${1:func}, ${2:delay}${3:[, lang]})$0" },
        { "trigger": "src\tFrame", "contents": "src" },

        { "trigger": "cols\tFrameset", "contents": "cols" },
        { "trigger": "frameBorder\tFrameset", "contents": "cols" },
        { "trigger": "onload\tFrameset", "contents": "onload" },
        { "trigger": "rows\tFrameset", "contents": "rows" },

        // Function properties and methods
        { "trigger": "apply()\tFunction", "contents": "apply(${1:thisobj}${2:[, args]})$0" },
        { "trigger": "call()\tFunction", "contents": "call(${1:thisobj}${2:[, args]})$0" },
        { "trigger": "caller\tFunction (depr.)", "contents": "caller" },

        { "trigger": "back()\tHistory", "contents": "back()" },
        { "trigger": "go()\tHistory", "contents": "go(${1:n})$0" },
        { "trigger": "forward()\tHistory", "contents": "forward()" },

        { "trigger": "complete\tImage", "contents": "complete" },
        { "trigger": "fileSize\tImage IE", "contents": "fileSize" },
        { "trigger": "hspace\tImage", "contents": "hspace" },
        { "trigger": "longDesc\tImage", "contents": "longDesc" },
        { "trigger": "lowsrc\tImage", "contents": "lowsrc" },      // NON spec
        { "trigger": "onabort\tImage", "contents": "onabort" },
        { "trigger": "onerror\tImage", "contents": "onerror" },
        { "trigger": "onload\tImage", "contents": "onload " },
        { "trigger": "src\tImage", "contents": "src" },         // NON spec
        { "trigger": "useMap\tImage", "contents": "useMap" },
        { "trigger": "vspace\tImage", "contents": "vspace" },

        { "trigger": "accept\tInput", "contents": "accept" },      // FileUpload
        { "trigger": "checked\tInput", "contents": "checked" },
        { "trigger": "defaultChecked\tInput", "contents": "defaultChecked" },
        { "trigger": "defaultValue\tInput", "contents": "defaultValue" },
        { "trigger": "maxLength\tInput", "contents": "maxLength" },
        { "trigger": "onchange\tInput", "contents": "onchange" },
        { "trigger": "onselect\tInput", "contents": "onselect" },
        { "trigger": "readOnly\tInput", "contents": "readOnly" },
        { "trigger": "size\tInput", "contents": "size" },

        // Static JSON methods
        { "trigger": "stringify()\tJSON", "contents": "stringify(${1:object}${2:[, replacer]}${3:[, space]})$0" },
        { "trigger": "parse()\tJSON", "contents": "parse(${1:string}${2:[, reviver]})$0" },

        { "trigger": "host\tLocation", "contents": "host" },
        { "trigger": "hostname\tLocation", "contents": "hostname" },
        { "trigger": "pathname\tLocation", "contents": "pathname" },
        { "trigger": "port\tLocation", "contents": "port" },
        { "trigger": "protocol\tLocation", "contents": "protocol" },
        { "trigger": "reload()\tLocation", "contents": "reload(${1:[forceGet]})$0" },
        { "trigger": "replace()\tLocation", "contents": "replace(${1:url})$0" },
        { "trigger": "search\tLocation", "contents": "search" },

        { "trigger": "Math.abs()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}abs(${1:x})$0" },
        { "trigger": "Math.acos()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}acos(${1:x})$0" },
        { "trigger": "Math.asin()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}asin(${1:x})$0" },
        { "trigger": "Math.atan()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}atan(${1:x})$0" },
        { "trigger": "Math.atan2()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}atan2(${1:y},${2:x})$0" },
        { "trigger": "Math.ceil()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}ceil(${1:x})$0" },
        { "trigger": "Math.cos()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}cos(${1:x})$0" },
        { "trigger": "Math.E", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}E" },
        { "trigger": "Math.exp()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}exp(${1:x})$0" },
        { "trigger": "Math.floor()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}floor(${1:x})$0" },
        { "trigger": "Math.LN10", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}LN10" },
        { "trigger": "Math.LN2", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}LN2" },
        { "trigger": "Math.log()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}log(${1:x})$0" },
        { "trigger": "Math.LOG10E", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}LOG10E" },
        { "trigger": "Math.LOG2E", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}ELOG2E" },
        { "trigger": "Math.max()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}max(${1:args})$0" },
        { "trigger": "Math.min()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}min(${1:args})$0" },
        { "trigger": "Math.PI", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}PI" },
        { "trigger": "Math.pow()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}pow(${1:x},${2:y})$0" },
        { "trigger": "Math.random()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}random()" },
        { "trigger": "Math.round()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}round(${1:x})$0" },
        { "trigger": "Math.sin()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}sin(${1:x})$0" },
        { "trigger": "Math.sqrt()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}sqrt(${1:x})$0" },
        { "trigger": "Math.SQRT1_2", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}SQRT1_2" },
        { "trigger": "Math.SQRT2", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}SQRT2" },
        { "trigger": "Math.tan()", "contents": "${TM_CURRENT_WORD/\\.\\W*|\\w+|(.*)/(?1:Math\\.)/}tan(${1:x})$0" },

        { "trigger": "charset\tMeta", "contents": "charset" },
        { "trigger": "content\tMeta", "contents": "content" },
        { "trigger": "httpEquiv\tMeta", "contents": "httpEquiv" },
        { "trigger": "scheme\tMeta", "contents": "scheme" },

        { "trigger": "appCodeName\tNavigator", "contents": "appCodeName" },
        { "trigger": "appName\tNavigator", "contents": "appName" },
        { "trigger": "appVersion\tNavigator", "contents": "appVersion" },
        { "trigger": "cookieEnabled\tNavigator", "contents": "cookieEnabled" },
        { "trigger": "javaEnabled\tNavigator", "contents": "javaEnabled()" },
        { "trigger": "language\tNavigator FF", "contents": "language" },
        { "trigger": "mimeTypes[]\tNavigator FF", "contents": "mimeTypes[$1]$0" },
        { "trigger": "mimeTypes\tNavigator FF", "contents": "mimeTypes" },
        { "trigger": "onLine\tNavigator HTML5", "contents": "onLine" },
        { "trigger": "platform\tNavigator", "contents": "platform" },
        { "trigger": "plugins\tNavigator FF", "contents": "plugins" },
        { "trigger": "plugins[]\tNavigator FF", "contents": "plugins[$1]$0" },
        { "trigger": "plugins.refresh()\tNavigator FF", "contents": "plugins.refresh(${1:[reload]})$0" },
        { "trigger": "systemLanguage\tNavigator IE", "contents": "systemLanguage" },
        { "trigger": "userAgent\tNavigator", "contents": "userAgent" },
        { "trigger": "userLanguage\tNavigator IE", "contents": "userLanguage" },
        { "trigger": "vendor\tNavigator", "contents": "vendor" },

        { "trigger": "toExponential()\tNumber", "contents": "toExponential(${1:digits})$0" },
        { "trigger": "toFixed()\tNumber", "contents": "toFixed(${1:digits})$0" },
        { "trigger": "toPrecision()\tNumber", "contents": "toPrecision(${1:precision})$0" },
        { "trigger": "MAX_VALUE\tNumber", "contents": "MAX_VALUE" },
        { "trigger": "MIN_VALUE\tNumber", "contents": "MIN_VALUE" },
        { "trigger": "NaN\tNumber", "contents": "NaN" },
        { "trigger": "NEGATIVE_INFINITY\tNumber", "contents": "NEGATIVE_INFINITY" },
        { "trigger": "POSITIVE_INFINITY\tNumber", "contents": "POSITIVE_INFINITY" },

        // Static Object methods
        { "trigger": "getOwnPropertyNames()\tObject", "contents": "getOwnPropertyNames(${1:obj})$0" },
        { "trigger": "keys()\tObject", "contents": "keys(${1:obj})$0" },

        { "trigger": "archive\t<object>", "contents": "archive" },
        { "trigger": "code\t<object>", "contents": "code" },
        { "trigger": "codeBase\t<object>", "contents": "codeBase" },
        { "trigger": "codeType\t<object>", "contents": "codeType" },
        { "trigger": "data\t<object>", "contents": "data" },
        { "trigger": "declare\t<object>", "contents": "declare" },
        { "trigger": "hspace\t<object>", "contents": "hspace" },
        { "trigger": "standby\t<object>", "contents": "standby" },
        { "trigger": "useMap\t<object>", "contents": "useMap" },
        { "trigger": "vspace\t<object>", "contents": "vspace" },

        { "trigger": "defaultSelected\tOption", "contents": "defaultSelected" },
        { "trigger": "index\tOption", "contents": "index" },     
        { "trigger": "selected\tOption", "contents": "selected" },

        { "trigger": "compile()\tRegExp", "contents": "compile(${1:regexp}${2:[, modifier]})$0" },
        { "trigger": "exec()\tRegExp", "contents": "exec(${1:string})$0" },
        { "trigger": "global\tRegExp", "contents": "global" },
        { "trigger": "ignoreCase\tRegExp", "contents": "ignoreCase" },
        { "trigger": "lastIndex\tRegExp", "contents": "lastIndex" },
        { "trigger": "multiline\tRegExp", "contents": "multiline" },
        { "trigger": "source\tRegExp", "contents": "source" },
        { "trigger": "test()\tRegExp", "contents": "test(${1:string})$0" },

        { "trigger": "availHeight\tScreen", "contents": "availHeight" },
        { "trigger": "availWidth\tScreen", "contents": "availWidth" },
        { "trigger": "colorDepth\tScreen", "contents": "colorDepth" },
        { "trigger": "pixelDepth\tScreen FF", "contents": "pixelDepth" },

        { "trigger": "add()\tSelect", "contents": "add(${1:new}, ${2:before})$0" },
        { "trigger": "multiple\tSelect", "contents": "multiple" },
        { "trigger": "onchange\tSelect", "contents": "onchange" },
        { "trigger": "options[]\tSelect", "contents": "options[${1:index}]$0" },
        { "trigger": "options\tSelect", "contents": "options" },
        { "trigger": "remove()\tSelect", "contents": "remove(${1:optionindex})$0" },
        { "trigger": "selectedIndex\tSelect", "contents": "selectedIndex" },
        { "trigger": "size\tSelect", "contents": "size" },

        // Static String method
        { "trigger": "fromCharCode()\tString", "contents": "fromCharCode(${1:chars})$0" },

        // String methods
        { "trigger": "anchor()\tString", "contents": "anchor(${1:name})$0" },
        { "trigger": "big()\tString", "contents": "big()" },
        { "trigger": "blink()\tString", "contents": "blink()" },
        { "trigger": "bold()\tString", "contents": "bold()" },
        { "trigger": "charAt()\tString", "contents": "charAt(${1:n})$0" },
        { "trigger": "charCodeAt()\tString", "contents": "charCodeAt(${1:n})$0" },
        { "trigger": "concat()\tString", "contents": "concat(${1:strings})$0" },
        { "trigger": "fixed()\tString", "contents": "fixed()" },
        { "trigger": "fontcolor()\tString", "contents": "fontcolor(${1:color})$0" },
        { "trigger": "fontsize()\tString", "contents": "fontsize(${1:size})$0" },
        { "trigger": "indexOf()\tString", "contents": "indexOf(${1:substr}${2:[, start]})$0" },
        { "trigger": "italics()\tString", "contents": "italics()" },
        { "trigger": "lastIndexOf()\tString", "contents": "lastIndexOf(${1:substr}${2:[, start]})$0" },
        { "trigger": "link()\tString", "contents": "link(${1:url})$0" },
        { "trigger": "localeCompare()\tString", "contents": "localeCompare()" },
        { "trigger": "match()\tString", "contents": "match(${1:regexp})$0" },
        { "trigger": "replace()\tString", "contents": "replace(${1:regexp}${2:[, replacement]})$0" },
        { "trigger": "search()\tString", "contents": "search(${1:regexp})$0" },
        { "trigger": "slice()\tString", "contents": "slice(${1:start}${2:[, end]})$0" },
        { "trigger": "small()\tString", "contents": "small()" },
        { "trigger": "split()\tString", "contents": "split(${1:delimiter}${2:[, limit]})$0" },
        { "trigger": "strike()\tString", "contents": "strike()" },
        { "trigger": "sub()\tString", "contents": "sub()" },
        { "trigger": "substring()\tString", "contents": "substring(${1:from}${2:[, to]})$0" },
        { "trigger": "substr()\tString", "contents": "substr(${1:start}${2:[, length]})$0" },
        { "trigger": "sup()\tString", "contents": "sup()" },
        { "trigger": "toLowerCase()\tString", "contents": "toLowerCase()" },
        { "trigger": "toUpperCase()\tString", "contents": "toUpperCase()" },
        { "trigger": "trim()\tString", "contents": "trim()" },
        
        { "trigger": "borderColorDark\tTable IE", "contents": "borderColorDark" },
        { "trigger": "borderColorLight\tTable IE", "contents": "borderColorLight" },
        { "trigger": "caption\tTable", "contents": "caption" },
        { "trigger": "cellPadding\tTable", "contents": "cellPadding" },
        { "trigger": "cellSpacing\tTable", "contents": "cellSpacing" },
        { "trigger": "cells\tTable/TR", "contents": "cells" },
        { "trigger": "cells[]\tTable/TR", "contents": "cells[${1:index}]$0" },
        { "trigger": "cells.item()\tTable/TR", "contents": "cells.item(${1:index})$0" },
        { "trigger": "cells.namedItem()\tTable/TR", "contents": "cells.namedItem(${1:id})$0" },
        { "trigger": "createCaption()\tTable", "contents": "createCaption()" },
        { "trigger": "createTFoot()\tTable", "contents": "createTFoot()" },
        { "trigger": "createTHead()\tTable", "contents": "createTHead()" },
        { "trigger": "deleteCaption()\tTable", "contents": "deleteCaption()" },
        { "trigger": "deleteCell()\tTable", "contents": "${1:trObject}.deleteCell(${1:index})$0" },
        { "trigger": "deleteRow()\tTable", "contents": "deleteRow(${1:index})$0" },
        { "trigger": "deleteTFoot()\tTable", "contents": "deleteTFoot()" },
        { "trigger": "deleteTHead()\tTable", "contents": "deleteTHead()" },
        { "trigger": "frame\tTable", "contents": "frame" },
        { "trigger": "insertRow()\tTable", "contents": "insertRow(${1:index})$0" },
        { "trigger": "moveRow()\tTable", "contents": "moveRow(${1:fromIndex}, ${2:toIndex})$0" },
        { "trigger": "rows\tTable", "contents": "rows" },
        { "trigger": "rows[]\tTable", "contents": "rows[${1:index}]$0" },
        { "trigger": "rules\tTable", "contents": "rules" },
        { "trigger": "summary\tTable", "contents": "summary" },
        { "trigger": "tBodies\tTable", "contents": "tBodies" },
        { "trigger": "tBodies[]\tTable", "contents": "tBodies[${1:index}]$0" },
        { "trigger": "tFoot\tTable", "contents": "tFoot" },
        { "trigger": "tHead\tTable", "contents": "tHead" },

        { "trigger": "abbr\tTD/TH", "contents": "abbr" },
        { "trigger": "axis\tTD/TH", "contents": "axis" },
        { "trigger": "cellIndex\tTD/TH", "contents": "cellIndex" },
        { "trigger": "ch\tTD/TH/TR", "contents": "ch" },
        { "trigger": "chOff \tTD/TH/TR", "contents": "chOff" },
        { "trigger": "colSpan\tTD/TH", "contents": "colSpan" },
        { "trigger": "headers\tTD/TH", "contents": "headers" },
        { "trigger": "rowSpan\tTD/TH", "contents": "rowSpan" },
        { "trigger": "vAlign\tTD/TH/TR", "contents": "vAlign" },
        { "trigger": "rowSpan\tTD/TH", "contents": "rowSpan" },

        { "trigger": "deleteCell()\tTR", "contents": "deleteCell(${1:index})$0" },
        { "trigger": "insertCell()\tTR", "contents": "insertCell(${1:index})$0" },
        { "trigger": "rowIndex\tTR", "contents": "rowIndex" },
        { "trigger": "sectionRowIndex\tTR", "contents": "sectionRowIndex" },

        { "trigger": "cols\tTextArea", "contents": "cols" },
        { "trigger": "defaultValue\tTextArea", "contents": "defaultValue" },
        { "trigger": "onchange\tTextArea", "contents": "onchange" },
        { "trigger": "readOnly\tTextArea", "contents": "readOnly" },
        { "trigger": "rows\tTextArea", "contents": "rows" },

        { "trigger": "alert()\tWindow", "contents": "alert(${1:message})$0" },
        { "trigger": "clearInterval()\tWindow", "contents": "clearInterval(${1:id})$0" },
        { "trigger": "clearTimeout()\tWindow", "contents": "clearTimeout(${1:id})$0" },
        { "trigger": "clipboardData\tWindow IE", "contents": "clipboardData" },
        { "trigger": "close()\tWindow", "contents": "close()" },
        { "trigger": "closed\tWindow", "contents": "closed" },
        { "trigger": "confirm()\tWindow", "contents": "confirm(${1:question})$0" },
        { "trigger": "defaultStatus\tWindow", "contents": "defaultStatus" },
        { "trigger": "document\tWindow", "contents": "document" },
        { "trigger": "event\tWindow", "contents": "event" },
        { "trigger": "find()\tWindow FF", "contents": "find(${1:string})$0" },
        { "trigger": "frames[]\tWindow", "contents": "frames[${1:arg}]$0" },
        { "trigger": "frames\tWindow", "contents": "frames" },
        { "trigger": "getComputedStyle\tWindow", "contents": "getComputedStyle" },
        { "trigger": "getComputedStyle()\tWindow", "contents": "getComputedStyle(${1:elt}${2:[, pseudoElt]})$0" },
        { "trigger": "history\tWindow", "contents": "history" },
        { "trigger": "home()\tWindow FF", "contents": "home()" },
        { "trigger": "innerHeight\tWindow", "contents": "innerHeight" },
        { "trigger": "innerWidth\tWindow", "contents": "innerWidth" },
        { "trigger": "location\tWindow", "contents": "location" },
        { "trigger": "moveBy()\tWindow", "contents": "moveBy(${1:dx}, ${2:dy})$0" },
        { "trigger": "moveTo()\tWindow", "contents": "moveTo(${1:x}, ${2:y})$0" },
        { "trigger": "onafterprint\tWindow IE", "contents": "onafterprint" },
        { "trigger": "onbeforeprint\tWindow IE", "contents": "onbeforeprint" },
        { "trigger": "onbeforeunload\tWindow", "contents": "onbeforeunload" },
        { "trigger": "onclose\tWindow non-spec", "contents": "onclose" },
        { "trigger": "onerror\tWindow non-spec", "contents": "onerror" },
        { "trigger": "onload\tWindow", "contents": "onload" },
        { "trigger": "onresize\tWindow", "contents": "onresize" },
        { "trigger": "onscroll\tWindow", "contents": "onscroll" },
        { "trigger": "onunload\tWindow", "contents": "onunload" },
        { "trigger": "open()\tWindow", "contents": "open(${1:url}${2:[, name]}${3:[, features]}${4:[, replace]})$0" },
        { "trigger": "opener\tWindow", "contents": "opener" },
        { "trigger": "outerHeight\tWindow", "contents": "outerHeight" },
        { "trigger": "outerWidth\tWindow", "contents": "outerWidth" },
        { "trigger": "pageXOffset\tWindow", "contents": "pageXOffset" },
        { "trigger": "pageYOffset\tWindow", "contents": "pageYOffset" },
        { "trigger": "parent\tWindow", "contents": "parent" },
        { "trigger": "print()\tWindow", "contents": "print()" },
        { "trigger": "prompt()\tWindow", "contents": "prompt(${1:message}${2:[, default]})$0" },
        { "trigger": "resizeBy()\tWindow", "contents": "resizeBy(${1:dw}, ${2:dh})$0" },
        { "trigger": "resizeTo()\tWindow", "contents": "resizeTo(${1:width}, ${2:height})$0" },
        { "trigger": "screen\tWindow", "contents": "screen" },
        { "trigger": "screenLeft\tWindow", "contents": "screenLeft" },
        { "trigger": "screenTop\tWindow", "contents": "screenTop" },
        { "trigger": "screenX\tWindow", "contents": "screenX" },
        { "trigger": "screenY\tWindow", "contents": "screenY" },
        { "trigger": "scrollBy()\tWindow", "contents": "scrollBy(${1:dx}, ${2:dy})$0" },
        { "trigger": "scrollTo()\tWindow", "contents": "scrollTo(${1:x}, ${2:y})$0" },
        { "trigger": "scrollX\tWindow", "contents": "scrollX" },
        { "trigger": "scrollY\tWindow", "contents": "scrollY" },
        { "trigger": "self\tWindow", "contents": "self" },
        { "trigger": "setInterval()\tWindow", "contents": "setInterval(${1:func}, ${2:interval}${3:[, args]})$0" },
        { "trigger": "setTimeout()\tWindow", "contents": "setTimeout(${1:func}, ${2:delay}${3:[, lang]})$0" },
        { "trigger": "status\tWindow", "contents": "status" },
        { "trigger": "stop()\tWindow", "contents": "stop()" },
        { "trigger": "top\tWindow", "contents": "top" },

        // Other events (check compatibility before use)
        "oncut", "oncontextmenu", "oncopy", "onhashchange",     // Body/ Window FF/IE
        { "trigger": "onmouseenter\tIE", "contents": "onmouseenter" },
        { "trigger": "onmouseleave\tIE", "contents": "onmouseleave" },
        { "trigger": "onmousewheel\tnot FF", "contents": "onmousewheel" },
        "onoffline", "ononline",        // Body and Window (inconsistently supported)
        "onpaste", "onreadystatechange",

        { "trigger": "azimuth\tcss", "contents": "azimuth" },
        { "trigger": "background\tcss", "contents": "background" },
        { "trigger": "backgroundAttachment\tcss", "contents": "backgroundAttachment" },
        { "trigger": "backgroundColor\tcss", "contents": "backgroundColor" },
        { "trigger": "backgroundImage\tcss", "contents": "backgroundImage" },
        { "trigger": "backgroundPosition\tcss", "contents": "backgroundPosition" },
        { "trigger": "backgroundRepeat\tcss", "contents": "backgroundRepeat" },
        { "trigger": "border\tcss", "contents": "border" },
        { "trigger": "borderBottom\tcss", "contents": "borderBottom" },
        { "trigger": "borderBottomColor\tcss", "contents": "borderBottomColor" },
        { "trigger": "borderBottomStyle\tcss", "contents": "borderBottomStyle" },
        { "trigger": "borderBottomWidth\tcss", "contents": "borderBottomWidth" },
        { "trigger": "borderCollapse\tcss", "contents": "borderCollapse" },
        { "trigger": "borderColor\tcss", "contents": "borderColor" },
        { "trigger": "borderLeft\tcss", "contents": "borderLeft" },
        { "trigger": "borderLeftColor\tcss", "contents": "borderLeftColor" },
        { "trigger": "borderLeftStyle\tcss", "contents": "borderLeftStyle" },
        { "trigger": "borderLeftWidth\tcss", "contents": "borderLeftWidth" },
        { "trigger": "borderRight\tcss", "contents": "borderRight" },
        { "trigger": "borderRightColor\tcss", "contents": "borderRightColor" },
        { "trigger": "borderRightStyle\tcss", "contents": "borderRightStyle" },
        { "trigger": "borderRightWidth\tcss", "contents": "borderRightWidth" },
        { "trigger": "borderSpacing\tcss", "contents": "borderSpacing" },
        { "trigger": "borderStyle\tcss", "contents": "borderStyle" },
        { "trigger": "borderTop\tcss", "contents": "borderTop" },
        { "trigger": "borderTopColor\tcss", "contents": "borderTopColor" },
        { "trigger": "borderTopStyle\tcss", "contents": "borderTopStyle" },
        { "trigger": "borderTopWidth\tcss", "contents": "borderTopWidth" },
        { "trigger": "borderWidth\tcss", "contents": "borderWidth" },
        { "trigger": "bottom\tcss", "contents": "bottom" },
        { "trigger": "captionSide\tcss", "contents": "captionSide" },
        { "trigger": "clear\tcss", "contents": "clear" },
        { "trigger": "clip\tcss", "contents": "clip" },
        { "trigger": "color\tcss", "contents": "color" },
        { "trigger": "content\tcss", "contents": "content" },
        { "trigger": "counterIncrement\tcss", "contents": "counterIncrement" },
        { "trigger": "counterReset\tcss", "contents": "counterReset" },
        { "trigger": "cssFloat\tcss", "contents": "cssFloat" },
        { "trigger": "cue\tcss", "contents": "cue" },
        { "trigger": "cueAfter\tcss", "contents": "cueAfter" },
        { "trigger": "cueBefore\tcss", "contents": "cueBefore" },
        { "trigger": "cursor\tcss", "contents": "cursor" },
        { "trigger": "direction\tcss", "contents": "direction" },
        { "trigger": "display\tcss", "contents": "display" },
        { "trigger": "elevation\tcss", "contents": "elevation" },
        { "trigger": "emptyCells\tcss", "contents": "emptyCells" },
        { "trigger": "font\tcss", "contents": "font" },
        { "trigger": "fontFamily\tcss", "contents": "fontFamily" },
        { "trigger": "fontSizeAdjust\tcss", "contents": "fontSizeAdjust" },
        { "trigger": "fontStretch\tcss", "contents": "fontStretch" },
        { "trigger": "fontStyle\tcss", "contents": "fontStyle" },
        { "trigger": "fontVariant\tcss", "contents": "fontVariant" },
        { "trigger": "fontWeight\tcss", "contents": "fontWeight" },
        { "trigger": "height\tcss", "contents": "height" },
        { "trigger": "left\tcss", "contents": "left" },
        { "trigger": "letterSpacing\tcss", "contents": "letterSpacing" },
        { "trigger": "lineHeight\tcss", "contents": "lineHeight" },
        { "trigger": "listStyle\tcss", "contents": "listStyle" },
        { "trigger": "listStyleImage\tcss", "contents": "listStyleImage" },
        { "trigger": "listStylePosition\tcss", "contents": "listStylePosition" },
        { "trigger": "listStyleType\tcss", "contents": "listStyleType" },
        { "trigger": "margin\tcss", "contents": "margin" },
        { "trigger": "marginBottom\tcss", "contents": "marginBottom" },
        { "trigger": "marginLeft\tcss", "contents": "marginLeft" },
        { "trigger": "marginRight\tcss", "contents": "marginRight" },
        { "trigger": "marginTop\tcss", "contents": "marginTop" },
        { "trigger": "markerOffset\tcss", "contents": "markerOffset" },
        { "trigger": "marks\tcss", "contents": "marks" },
        { "trigger": "maxHeight\tcss", "contents": "maxHeight" },
        { "trigger": "maxWidth\tcss", "contents": "maxWidth" },
        { "trigger": "minHeight\tcss", "contents": "minHeight" },
        { "trigger": "minWidth\tcss", "contents": "minWidth" },
        { "trigger": "orphans\tcss", "contents": "orphans" },
        { "trigger": "outline\tcss", "contents": "outline" },
        { "trigger": "outlineColor\tcss", "contents": "outlineColor" },
        { "trigger": "outlineStyle\tcss", "contents": "outlineStyle" },
        { "trigger": "outlineWidth\tcss", "contents": "outlineWidth" },
        { "trigger": "overflow\tcss", "contents": "overflow" },
        { "trigger": "padding\tcss", "contents": "padding" },
        { "trigger": "paddingBottom\tcss", "contents": "paddingBottom" },
        { "trigger": "paddingLeft\tcss", "contents": "paddingLeft" },
        { "trigger": "paddingRight\tcss", "contents": "paddingRight" },
        { "trigger": "paddingTop\tcss", "contents": "paddingTop" },
        { "trigger": "page\tcss", "contents": "page" },
        { "trigger": "pageBreakAfter\tcss", "contents": "pageBreakAfter" },
        { "trigger": "pageBreakBefore\tcss", "contents": "pageBreakBefore" },
        { "trigger": "pageBreakInside\tcss", "contents": "pageBreakInside" },
        { "trigger": "pause\tcss", "contents": "pause" },
        { "trigger": "pauseAfter\tcss", "contents": "pauseAfter" },
        { "trigger": "pauseBefore\tcss", "contents": "pauseBefore" },
        { "trigger": "pitch\tcss", "contents": "pitch" },
        { "trigger": "pitchRange\tcss", "contents": "pitchRange" },
        { "trigger": "pitchDuring\tcss", "contents": "pitchDuring" },
        { "trigger": "playDuring\tcss", "contents": "playDuring" },
        { "trigger": "position\tcss", "contents": "position" },
        { "trigger": "quotes\tcss", "contents": "quotes" },
        { "trigger": "richness\tcss", "contents": "richness" },
        { "trigger": "right\tcss", "contents": "right" },
        { "trigger": "size\tcss", "contents": "size" },
        { "trigger": "speak\tcss", "contents": "speak" },
        { "trigger": "speakHeader\tcss", "contents": "speakHeader" },
        { "trigger": "speakNumeral\tcss", "contents": "speakNumeral" },
        { "trigger": "speakPunctuation\tcss", "contents": "speakPunctuation" },
        { "trigger": "speechRate\tcss", "contents": "speechRate" },
        { "trigger": "stress\tcss", "contents": "stress" },
        { "trigger": "styleFloat\tcss IE", "contents": "styleFloat" },
        { "trigger": "tableLayout\tcss", "contents": "tableLayout" },
        { "trigger": "textAlign\tcss", "contents": "textAlign" },
        { "trigger": "textDecoration\tcss", "contents": "textDecoration" },
        { "trigger": "textIndent\tcss", "contents": "textIndent" },
        { "trigger": "textShadow\tcss", "contents": "textShadow" },
        { "trigger": "textTransform\tcss", "contents": "textTransform" },
        { "trigger": "top\tcss", "contents": "top" },
        { "trigger": "unicodeBidi\tcss", "contents": "unicodeBidi" },
        { "trigger": "verticalAlign\tcss", "contents": "verticalAlign" },
        { "trigger": "visibility\tcss", "contents": "visibility" },
        { "trigger": "voiceFamily\tcss", "contents": "voiceFamily" },
        { "trigger": "volume\tcss", "contents": "volume" },
        { "trigger": "width\tcss", "contents": "width" },
        { "trigger": "whiteSpace\tcss", "contents": "whiteSpace" },
        { "trigger": "widows\tcss", "contents": "widows" },
        { "trigger": "wordSpacing\tcss", "contents": "wordSpacing" },
        { "trigger": "zIndex\tcss", "contents": "zIndex" }
    ]
}