{
    "scope": "source.js.jquery -string -comment -constant -meta.selector",

    "completions": [
        "jQuery",
        "context",
        "jquery",   /* version number */

        { "trigger": "jQuery()", "contents": "jQuery(${1})$0" },
        { "trigger": "callback", "contents": "function ($1) {\n\t$2\n}$0" },    /* anonymous function */
        { "trigger": "handler", "contents": "function ($1) {\n\t$2\n}$0" },

        { "trigger": "add()\tjQuery", "contents": "add(${1:selector}${2:[, context]})$0" },
        { "trigger": "addClass()\tjQuery", "contents": "addClass(${1:classname_or_fn})$0" },
        { "trigger": "after()\tjQuery", "contents": "after(${1:contents_or_fn})$0" },
        { "trigger": "ajaxComplete()\tjQuery", "contents": "ajaxComplete(${1:handler})$0" },
        { "trigger": "ajaxError()\tjQuery", "contents": "ajaxError(${1:handler})$0" },
        { "trigger": "ajaxSend()\tjQuery", "contents": "ajaxSend(${1:handler})$0" },
        { "trigger": "ajaxStart()\tjQuery", "contents": "ajaxStart(${1:handler})$0" },
        { "trigger": "ajaxStop()\tjQuery", "contents": "ajaxStop(${1:handler})$0" },
        { "trigger": "ajaxSuccess()\tjQuery", "contents": "ajaxSuccess(${1:handler})$0" },
        { "trigger": "andSelf()\tjQuery", "contents": "andSelf()$0" },
        { "trigger": "animate(duration)\tjQuery", "contents": "animate(${1:properties}${2:[, duration]}${3:[, easing]}${4:[, complete]})$0" },
        { "trigger": "animate(options)\tjQuery", "contents": "animate(${1:properties}, ${2:options})$0" },
        { "trigger": "append()\tjQuery", "contents": "append(${1:contents_or_fn})$0" },
        { "trigger": "appendTo()\tjQuery", "contents": "appendTo(${1:target})$0" },
        { "trigger": "attr()\tjQuery", "contents": "attr(${1:attributeName}${2:[, value]})$0" },
        { "trigger": "before()\tjQuery", "contents": "before(${1:contents_or_fn})$0" },
        { "trigger": "bind(events)\tjQuery", "contents": "bind(${1:events})$0" },
        { "trigger": "bind()\tjQuery", "contents": "bind(${1:eventType}${2:[, eventData]}${3:[, preventBubble_or_fn]})$0" },
        { "trigger": "blur()\tjQuery", "contents": "blur()$0" },
        { "trigger": "blur(handler)\tjQuery", "contents": "blur(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "change()\tjQuery", "contents": "change()$0" },
        { "trigger": "change(handler)\tjQuery", "contents": "change(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "children()\tjQuery", "contents": "children(${1:[selector]})$0" },
        { "trigger": "clearQueue()\tjQuery", "contents": "clearQueue(${1:[queueName]})$0" },
        { "trigger": "click()\tjQuery", "contents": "click()$0" },
        { "trigger": "click(handler)\tjQuery", "contents": "click(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "clone()\tjQuery", "contents": "clone(${1:[withDataAndEvents]}${2:[, deep]})$0" },
        { "trigger": "closest()\tjQuery", "contents": "closest(${1:selectors}${2:[, context]})$0" },
        { "trigger": "contents()\tjQuery", "contents": "contents()$0" },
        { "trigger": "css()\tjQuery", "contents": "css(${1:propertyName}${2:[, value]})$0" },
        { "trigger": "data(key, value)\tjQuery", "contents": "data(${1:key}${2:[, value]})$0" },
        { "trigger": "data(obj)\tjQuery", "contents": "data(${1})$0" },
        { "trigger": "dblclick()\tjQuery", "contents": "dblclick()$0" },
        { "trigger": "dblclick(handler)\tjQuery", "contents": "dblclick(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "delay()\tjQuery", "contents": "delay(${1:duration}${2:[, queueName]})$0" },
        { "trigger": "delegate()\tjQuery", "contents": "delegate(${1:selector}, ${2:events})$0" },
        { "trigger": "dequeue()\tjQuery", "contents": "dequeue(${1:[queueName]})$0" },
        { "trigger": "die()\tjQuery", "contents": "die()$0" },
        { "trigger": "die(event)\tjQuery", "contents": "die(${1:eventType}${2:[, handler]})$0" },
        { "trigger": "each()\tjQuery", "contents": "each(function (index, elem) {\n\t$1\n})$0" },
        { "trigger": "empty()\tjQuery", "contents": "empty()$0" },
        { "trigger": "end()\tjQuery", "contents": "end()$0" },
        { "trigger": "eq()\tjQuery", "contents": "eq(${1:index})$0" },
        { "trigger": "error()\tjQuery", "contents": "error(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "fadeIn()\tjQuery", "contents": "fadeIn(${1:[duration]}${2:[, easing]}${3:[, callback]})$0" },
        { "trigger": "fadeOut()\tjQuery", "contents": "fadeOut(${1:[duration]}${2:[, easing]}${3:[, callback]})$0" },
        { "trigger": "fadeTo()\tjQuery", "contents": "fadeTo(${1:duration}, ${2:opacity}${3:[, easing]}${4:[, callback]})$0" },
        { "trigger": "fadeToggle()\tjQuery", "contents": "fadeToggle(${1:[duration]}${2:[, easing]}${3:[, callback]})$0" },
        { "trigger": "filter()\tjQuery", "contents": "filter(${1:selector_or_fn})$0" },
        { "trigger": "find()\tjQuery", "contents": "find(${1:selector})$0" },
        { "trigger": "first()\tjQuery", "contents": "first()$0" },
        { "trigger": "focus()\tjQuery", "contents": "focus()$0" },
        { "trigger": "focus(handler)\tjQuery", "contents": "focus(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "focusin()\tjQuery", "contents": "focusin(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "focusout()\tjQuery", "contents": "focusout(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "get()\tjQuery", "contents": "get(${1:[index]})$0" },
        { "trigger": "has()\tjQuery", "contents": "has(${1:selector/contained})$0" },
        { "trigger": "hasClass()\tjQuery", "contents": "hasClass(${1:className})$0" },
        { "trigger": "height()\tjQuery", "contents": "height()$0" },
        { "trigger": "height(value)\tjQuery", "contents": "height(${1:value_or_fn})$0" },
        { "trigger": "hide()\tjQuery", "contents": "hide()$0" },
        { "trigger": "hide(duration)\tjQuery", "contents": "hide(${1:[duration]}${2:[, easing]}${3:[, callback]})$0" },
        { "trigger": "hover()\tjQuery", "contents": "hover(${1:handlers_inout})$0" },
        { "trigger": "html()\tjQuery", "contents": "html(${1:[htmlString]})$0" },
        { "trigger": "html(fn)\tjQuery", "contents": "html(function (index, oldhtml) {\n\t$1\n})$0" },
        { "trigger": "index()\tjQuery", "contents": "index(${1:[selector]})$0" },
        { "trigger": "innerHeight()\tjQuery", "contents": "innerHeight()$0" },
        { "trigger": "innerWidth()\tjQuery", "contents": "innerWidth()$0" },
        { "trigger": "insertAfter()\tjQuery", "contents": "insertAfter(${1:target})$0" },
        { "trigger": "insertBefore()\tjQuery", "contents": "insertBefore(${1:target})$0" },
        { "trigger": "is()\tjQuery", "contents": "is(${1:selector_or_fn})$0" },
        { "trigger": "keydown()\tjQuery", "contents": "keydown()$0" },
        { "trigger": "keydown(handler)\tjQuery", "contents": "keydown(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "keypress()\tjQuery", "contents": "keypress()$0" },
        { "trigger": "keypress(handler)\tjQuery", "contents": "keypress(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "keyup()\tjQuery", "contents": "keyup()$0" },
        { "trigger": "keyup(handler)\tjQuery", "contents": "keyup(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "last()\tjQuery", "contents": "last()$0" },
        { "trigger": "live()\tjQuery (depr.)", "contents": "live($1)$0" },
        { "trigger": "load(handler)\tjQuery", "contents": "load(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "load(url)\tjQuery", "contents": "load(${1:url}${2:[, data]}${3:[, complete(responseText, textStatus, XMLHttpRequest)]})$0" },
        { "trigger": "map()\tjQuery", "contents": "map(function (index, domElement) {\n\t$1\n})$0" },
        { "trigger": "mousedown()\tjQuery", "contents": "mousedown()$0" },
        { "trigger": "mousedown(handler)\tjQuery", "contents": "mousedown(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "mouseenter()\tjQuery", "contents": "mouseenter()$0" },
        { "trigger": "mouseenter(handler)\tjQuery", "contents": "mouseenter(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "mouseleave()\tjQuery", "contents": "mouseleave()$0" },
        { "trigger": "mouseleave(handler)\tjQuery", "contents": "mouseleave(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "mousemove()\tjQuery", "contents": "mousemove()$0" },
        { "trigger": "mousemove(handler)\tjQuery", "contents": "mousemove(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "mouseout()\tjQuery", "contents": "mouseout()$0" },
        { "trigger": "mouseout(handler)\tjQuery", "contents": "mouseout(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "mouseover()\tjQuery", "contents": "mouseover()$0" },
        { "trigger": "mouseover(handler)\tjQuery", "contents": "mouseover(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "mouseup()\tjQuery", "contents": "mouseup()$0" },
        { "trigger": "mouseup(handler)\tjQuery", "contents": "mouseup(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "next()\tjQuery", "contents": "next(${1:[selector]})$0" },
        { "trigger": "nextAll()\tjQuery", "contents": "nextAll(${1:[selector]})$0" },
        { "trigger": "nextUntil()\tjQuery", "contents": "nextUntil(${1:[selector]}${2:[, filter]})$0" },
        { "trigger": "not()\tjQuery", "contents": "not(${1:selector_or_fn})$0" },
        { "trigger": "off()\tjQuery", "contents": "off($1)$0" },
        { "trigger": "offset()\tjQuery", "contents": "offset(${1:[coords_or_fn]})$0" },
        { "trigger": "offsetParent()\tjQuery", "contents": "offsetParent()$0" },
        { "trigger": "on()\tjQuery", "contents": "on($1)$0" },
        { "trigger": "one()\tjQuery", "contents": "one($1)$0" },
        { "trigger": "outerHeight()\tjQuery", "contents": "outerHeight(${1:[includeMargin]})$0" },
        { "trigger": "outerWidth()\tjQuery", "contents": "outerWidth(${1:[includeMargin]})$0" },
        { "trigger": "parent()\tjQuery", "contents": "parent(${1:[selector]})$0" },
        { "trigger": "parents()\tjQuery", "contents": "parents(${1:[selector]})$0" },
        { "trigger": "parentsUntil()\tjQuery", "contents": "parentsUntil(${1:[selector]}${2:[, filter]})$0" },
        { "trigger": "position()\tjQuery", "contents": "position()$0" },
        { "trigger": "prepend()\tjQuery", "contents": "prepend(${1:contents_or_fn})$0" },
        { "trigger": "prependTo()\tjQuery", "contents": "prependTo(${1:target})$0" },
        { "trigger": "prev()\tjQuery", "contents": "prev(${1:[selector]})$0" },
        { "trigger": "prevAll()\tjQuery", "contents": "prevAll(${1:[selector]})$0" },
        { "trigger": "prevUntil()\tjQuery", "contents": "prevUntil(${1:[selector]}${2:[, filter]})$0" },
        { "trigger": "promise()\tjQuery", "contents": "promise(${1:[type]}${2:[, target]})$0" },
        { "trigger": "prop()\tjQuery", "contents": "prop(${1:propertyName_or_map}${2:[, value_or_fn]})$0" },
        { "trigger": "pushStack()\tjQuery", "contents": "pushStack(${1:elements}${2:[, name]}${3:[, arguments]})$0" },
        { "trigger": "queue()\tjQuery", "contents": "queue(${1:[queueName]}${2:[, newQueue_or_fn]})$0" },
        { "trigger": "ready()\tjQuery", "contents": "ready(${1:handler})$0" },
        { "trigger": "remove()\tjQuery", "contents": "remove(${1:[selector]})$0" },
        { "trigger": "removeAttr()\tjQuery", "contents": "removeAttr(${1:attributeName})$0" },
        { "trigger": "removeClass()\tjQuery", "contents": "removeClass(${1:[className_or_fn]})$0" },
        { "trigger": "removeData()\tjQuery", "contents": "removeData(${1:[name_or_list]})$0" },
        { "trigger": "removeProp()\tjQuery", "contents": "removeProp(${1:propertyName})$0" },
        { "trigger": "replaceAll()\tjQuery", "contents": "replaceAll(${1:target})$0" },
        { "trigger": "replaceWith()\tjQuery", "contents": "replaceWith(${1:newContent_or_fn})$0" },
        { "trigger": "resize()\tjQuery", "contents": "resize()$0" },
        { "trigger": "resize(handler)\tjQuery", "contents": "resize(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "scroll()\tjQuery", "contents": "scroll()$0" },
        { "trigger": "scroll(handler)\tjQuery", "contents": "scroll(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "scrollLeft()\tjQuery", "contents": "scrollLeft(${1:[value]})$0" },
        { "trigger": "scrollTop()\tjQuery", "contents": "scrollTop(${1:[value]})$0" },
        { "trigger": "select()\tjQuery", "contents": "select()$0" },
        { "trigger": "select(handler)\tjQuery", "contents": "select(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "serialize()\tjQuery", "contents": "serialize()$0" },
        { "trigger": "serializeArray()\tjQuery", "contents": "serializeArray()$0" },
        { "trigger": "show()\tjQuery", "contents": "show()$0" },
        { "trigger": "show(duration)\tjQuery", "contents": "show(${1:[duration]}${2:[, easing]}${3:[, callback]})$0" },
        { "trigger": "siblings()\tjQuery", "contents": "siblings(${1:[selector]})$0" },
        { "trigger": "size()\tjQuery", "contents": "size()$0" },
        { "trigger": "slice()\tjQuery", "contents": "slice(${1:start}${2:[, end]})$0" },
        { "trigger": "slideDown()\tjQuery", "contents": "slideDown(${1:[duration]}${2:[, easing]}${3:[, callback]})$0" },
        { "trigger": "slideToggle()\tjQuery", "contents": "slideToggle(${1:[duration]}${2:[, easing]}${3:[, callback]})$0" },
        { "trigger": "slideUp()\tjQuery", "contents": "slideUp(${1:[duration]}${2:[, easing]}${3:[, callback]})$0" },
        { "trigger": "stop()\tjQuery", "contents": "stop(${1:[queue]}${2:[, clearQueue]}${3:[, jumpToEnd]})$0" },
        { "trigger": "submit()\tjQuery", "contents": "submit()$0" },
        { "trigger": "submit(handler)\tjQuery", "contents": "submit(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "text()\tjQuery", "contents": "text($1)$0" },
        { "trigger": "toArray()\tjQuery", "contents": "toArray($1)$0" },
        { "trigger": "toggle()\tjQuery", "contents": "toggle($1)$0" },
        { "trigger": "toggleClass()\tjQuery", "contents": "toggleClass($1)$0" },
        { "trigger": "trigger(event)\tjQuery", "contents": "trigger(${1:event})$0" },
        { "trigger": "trigger(type)\tjQuery", "contents": "trigger(${1:eventType}${2:[, extraParameters]})$0" },
        { "trigger": "triggerHandler()\tjQuery", "contents": "triggerHandler(${1:eventType}${2:[, extraParameters]})$0" },
        { "trigger": "unbind()\tjQuery", "contents": "unbind($1)$0" },
        { "trigger": "undelegate()\tjQuery", "contents": "undelegate($1)$0" },
        { "trigger": "unload()\tjQuery", "contents": "unload(${1:[eventData, ]}${2:handler})$0" },
        { "trigger": "unwrap()\tjQuery", "contents": "unwrap()$0" },
        { "trigger": "val()\tjQuery", "contents": "val()$0" },
        { "trigger": "val(value)\tjQuery", "contents": "val(${1:value_or_fn})$0" },
        { "trigger": "width()\tjQuery", "contents": "width()$0" },
        { "trigger": "width(value)\tjQuery", "contents": "width(${1:value_or_fn})$0" },
        { "trigger": "wrap()\tjQuery", "contents": "wrap(${1:element_or_fn})$0" },
        { "trigger": "wrapAll()\tjQuery", "contents": "wrapAll(${1:wrappingElement})$0" },
        { "trigger": "wrapInner()\tjQuery", "contents": "wrapInner(${1:element_or_fn})$0" },

        { "trigger": "ajax()\t$.", "contents": "ajax(${1:[url, ]}${2:[settings]})$0" },
        { "trigger": "ajaxPrefilter()\t$.", "contents": "ajaxPrefilter($1)$0" },
        { "trigger": "ajaxSetup()\t$.", "contents": "ajaxSetup(${1:options})$0" },
        { "trigger": "boxModel\t$.deprecated ", "contents": "boxModel" },
        { "trigger": "browser\t$.deprecated ", "contents": "browser" },
        { "trigger": "Callbacks()\t$.", "contents": "Callbacks(${1:[flags]})$0" },
        { "trigger": "contains()\t$.", "contents": "contains(${1:container}, ${2:contained})$0" },
        { "trigger": "cssHooks\t$.", "contents": "cssHooks" },
        { "trigger": "data()\t$.", "contents": "data(${1:element}${2:[, key]}${3:[, value]})$0" },
        { "trigger": "dequeue()\t$.", "contents": "dequeue(${1:element}${2:[, queueName]})$0" },
        { "trigger": "each()\t$.", "contents": "each(${1:collection}, ${2:callback(index, value)})$0" },
        { "trigger": "error()\t$.", "contents": "error(${1:message})$0" },
        { "trigger": "extend()\t$.", "contents": "extend(${1:[deep, ]}${2:target}${3:[, objects]})$0" },
        { "trigger": "fx.interval\t$.", "contents": "fx.interval" },
        { "trigger": "fx.off\t$.", "contents": "fx.off" },
        { "trigger": "get()\t$.", "contents": "get(${1:url}${2:[, data]}${3:[, success(data, textStatus, jqXHR)]}${4:[, dataType]})$0" },
        { "trigger": "getJSON()\t$.", "contents": "getJSON(${1:url}${2:[, data]}${3:[, success(data, textStatus, jqXHR)]})$0" },
        { "trigger": "getScript()\t$.", "contents": "getScript(${1:url}${2:[, success(script, textStatus, jqXHR)]})$0" },
        { "trigger": "globalEval()\t$.", "contents": "globalEval(${1:code})$0" },
        { "trigger": "grep()\t$.", "contents": "grep(${1:array}, ${2:function(element, index)}${3:[, invert]})$0" },
        { "trigger": "hasData()\t$.", "contents": "hasData(${1:element})$0" },
        { "trigger": "holdReady()\t$.", "contents": "holdReady(${1:hold})$0" },
        { "trigger": "inArray()\t$.", "contents": "inArray(${1:value}, ${2:array}${3:[, fromIndex]})$0" },
        { "trigger": "isArray()\t$.", "contents": "isArray(${1:obj})$0" },
        { "trigger": "isEmptyObject()\t$.", "contents": "isEmptyObject(${1:object})$0" },
        { "trigger": "isFunction()\t$.", "contents": "isFunction(${1:obj})$0" },
        { "trigger": "isNumeric()\t$.", "contents": "isNumeric(${1:value})$0" },
        { "trigger": "isPlainObject()\t$.", "contents": "isPlainObject(${1:object})$0" },
        { "trigger": "isWindow()\t$.", "contents": "isWindow(${1:obj})$0" },
        { "trigger": "isXMLDoc()\t$.", "contents": "isXMLDoc(${1:node})$0" },
        { "trigger": "makeArray()\t$.", "contents": "makeArray(${1:obj})$0" },
        { "trigger": "map()\t$.", "contents": "map(${1:arrayOrObject}, ${2:callback(elementOrValue, indexOrKey)})$0" },
        { "trigger": "merge()\t$.", "contents": "merge(${1:first}, ${2:second})$0" },
        { "trigger": "noConflict()\t$.", "contents": "noConflict(${1:[removeAll]})$0" },
        { "trigger": "noop()\t$.", "contents": "noop()$0" },
        { "trigger": "now()\t$.", "contents": "now()$0" },
        { "trigger": "param()\t$.", "contents": "param(${1:obj}${2:[, traditional]})$0" },
        { "trigger": "parseJSON()\t$.", "contents": "parseJSON(${1:json})$0" },
        { "trigger": "parseXML()\t$.", "contents": "parseXML(${1:data})$0" },
        { "trigger": "post()\t$.", "contents": "post(${1:url}${2:[, data]}${3:[, success(data, textStatus, jqXHR)]}${4:[, dataType]})$0" },
        { "trigger": "proxy()\t$.", "contents": "proxy(${1:function/context}, ${2:context/name})$0" },
        { "trigger": "queue()\t$.", "contents": "queue(${1:element}${2:[, queueName]}${3:[, newQueue_or_fn]})$0" },
        { "trigger": "removeData()\t$.", "contents": "removeData(${1:element}${2:[, name]})$0" },
        { "trigger": "support\t$.", "contents": "support" },
        { "trigger": "trim()\t$.", "contents": "trim(${1:str})$0" },
        { "trigger": "type()\t$.", "contents": "type(${1:obj})$0" },
        { "trigger": "unique()\t$.", "contents": "unique(${1:array})$0" },
        { "trigger": "when()\t$.", "contents": "when(${1:deferreds})$0" },

        { "trigger": "currentTarget\tjQ event", "contents": "currentTarget" },
        { "trigger": "data\tjQ event", "contents": "data" },
        { "trigger": "delegateTarget\tjQ event", "contents": "delegateTarget" },
        { "trigger": "isDefaultPrevented()\tjQ event", "contents": "isDefaultPrevented()$0" },
        { "trigger": "isImmediatePropagationStopped()\tjQ event", "contents": "isImmediatePropagationStopped()$0" },
        { "trigger": "isPropagationStopped()\tjQ event", "contents": "isPropagationStopped()$0" },
        { "trigger": "namespace\tjQ event", "contents": "namespace" },
        { "trigger": "pageX\tjQ event", "contents": "pageX" },
        { "trigger": "pageY\tjQ event", "contents": "pageY" },
        { "trigger": "preventDefault()\tjQ event", "contents": "preventDefault()$0" },
        { "trigger": "relatedTarget\tjQ event", "contents": "relatedTarget" },
        { "trigger": "result\tjQ event", "contents": "result" },
        { "trigger": "stopImmediatePropagation()\tjQ event", "contents": "stopImmediatePropagation()$0" },
        { "trigger": "stopPropagation()\tjQ event", "contents": "stopPropagation()$0" },
        { "trigger": "target\tjQ event", "contents": "target" },
        { "trigger": "timeStamp\tjQ event", "contents": "timeStamp" },
        { "trigger": "type\tjQ event", "contents": "type" },
        { "trigger": "which\tjQ event", "contents": "which" },

        { "trigger": "add()\tjQ callbacks", "contents": "add(${1:callbacks})$0" },
        { "trigger": "disable()\tjQ callbacks", "contents": "disable()$0" },
        { "trigger": "empty()\tjQ callbacks", "contents": "empty()$0" },
        { "trigger": "fire()\tjQ callbacks", "contents": "fire(${1:arguments})$0" },
        { "trigger": "fired()\tjQ callbacks", "contents": "fired()$0" },
        { "trigger": "fireWith()\tjQ callbacks", "contents": "fireWith(${1:context}${2:[, args]})$0" },
        { "trigger": "has()\tjQ callbacks", "contents": "has(${1:callback})$0" },
        { "trigger": "lock()\tjQ callbacks", "contents": "lock()$0" },
        { "trigger": "locked()\tjQ callbacks", "contents": "locked()$0" },
        { "trigger": "remove()\tjQ callbacks", "contents": "remove(${1:callbacks})$0" },

        { "trigger": "always()\tjQ deferred", "contents": "always(${1:alwaysCallbacks})$0" },
        { "trigger": "done()\tjQ deferred", "contents": "done(${1:doneCallbacks})$0" },
        { "trigger": "fail()\tjQ deferred", "contents": "fail(${1:failCallbacks})$0" },
        { "trigger": "isRejected()\tjQ deferred", "contents": "isRejected()$0" },
        { "trigger": "isResolved()\tjQ deferred", "contents": "isResolved()$0" },
        { "trigger": "notify()\tjQ deferred", "contents": "notify(${1:args})$0" },
        { "trigger": "notifyWith()\tjQ deferred", "contents": "notifyWith(${1:context}${2:[, args]})$0" },
        { "trigger": "pipe()\tjQ deferred", "contents": "pipe(${1:[doneFilter]}${2:[, failFilter]}${3:[, progressFilter]})$0" },
        { "trigger": "progress()\tjQ deferred", "contents": "progress(${1:progressCallbacks})$0" },
        { "trigger": "promise()\tjQ deferred", "contents": "promise(${1:[target]})$0" },
        { "trigger": "reject()\tjQ deferred", "contents": "reject(${1:args})$0" },
        { "trigger": "rejectWith()\tjQ deferred", "contents": "rejectWith(${1:context}${2:[, args]})$0" },
        { "trigger": "resolve()\tjQ deferred", "contents": "resolve(${1:args})$0" },
        { "trigger": "resolveWith()\tjQ deferred", "contents": "resolveWith(${1:context}${2:[, args]})$0" },
        { "trigger": "state()\tjQ deferred", "contents": "state()$0" },
        { "trigger": "then()\tjQ deferred", "contents": "then(${1:doneCallbacks}, ${2:failCallbacks}${3:[, progressCallbacks]})$0" }
    ]
}