{
   "scope": "source.coffee",
   "version": "0.10",
   "completions":
   [
    { "trigger": "assert", "contents": "assert ${1:expression}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.fail", "contents": "assert.fail ${1:actual}, ${2:expected}${3:, \"${4:[message]}\", ${5:[operator]}}$0"},
    { "trigger": "assert.ok", "contents": "assert.ok ${1:object}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.equal", "contents": "assert.equal ${1:actual}, ${2:expected}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.notEqual", "contents": "assert.notEqual ${1:actual}, ${2:expected}${3:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.strictEqual", "contents": "assert.strictEqual ${1:actual}, ${2:expected}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.notStrictEqual", "contents": "assert.notStrictEqual ${1:actual}, ${2:expected}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.deepEqual", "contents": "assert.deepEqual ${1:actual}, ${2:expected}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.notDeepEqual", "contents": "assert.notDeepEqual ${1:actual}, ${2:expected}${3:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isTrue", "contents": "assert.isTrue ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isFalse", "contents": "assert.isFalse ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isNull", "contents": "assert.isNull ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isNotNull", "contents": "assert.isNotNull ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isUndefined", "contents": "assert.isUndefined ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isDefined", "contents": "assert.isDefined ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isFunction", "contents": "assert.isFunction ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isNotFunction", "contents": "assert.isNotFunction ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isObject", "contents": "assert.isObject ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isNotObject", "contents": "assert.isNotObject ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isArray", "contents": "assert.isArray ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isNotArray", "contents": "assert.isNotArray ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isString", "contents": "assert.isString ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isNotString", "contents": "assert.isNotString ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isNumber", "contents": "assert.isNumber ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isNotNumber", "contents": "assert.isNotNumber ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isBoolean", "contents": "assert.isBoolean ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.isNotBoolean", "contents": "assert.isNotBoolean ${1:value}${2:, \"${3:[message]}\"}$0"},
    { "trigger": "assert.typeOf", "contents": "assert.typeOf ${1:value}, ${2:name}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.notTypeOf", "contents": "assert.notTypeOf ${1:value}, ${2:name}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.instanceOf", "contents": "assert.instanceOf ${1:object}, ${2:constructor}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.notInstanceOf", "contents": "assert.notInstanceOf ${1:object}, ${2:constructor}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.include", "contents": "assert.include ${1:haystack}, ${2:needle}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.match", "contents": "assert.match ${1:value}, ${2:regexp}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.notMatch", "contents": "assert.notMatch ${1:value}, ${2:regexp}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.property", "contents": "assert.property ${1:object}, ${2:property}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.notProperty", "contents": "assert.notProperty ${1:object}, ${2:property}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.deepProperty", "contents": "assert.deepProperty ${1:object}, ${2:property}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.notDeepProperty", "contents": "assert.notDeepProperty ${1:object}, ${2:property}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.propertyVal", "contents": "assert.notDeepProperty ${1:object}, ${2:property}, ${3:value}${4:, \"${5:[message]}\"}$0"},
    { "trigger": "assert.propertyNotVal", "contents": "assert.propertyNotVal ${1:object}, ${2:property} ${3:value}${4:, \"${5:[message]}\"}$0"},
    { "trigger": "assert.deepPropertyVal", "contents": "assert.deepPropertyVal ${1:object}, ${2:property} ${3:value}${4:, \"${5:[message]}\"}$0"},
    { "trigger": "assert.deepPropertyNotVal", "contents": "assert.deepPropertyNotVal ${1:object}, ${2:property}, ${3:value}${4:, \"${5:[message]}\"}$0"},
    { "trigger": "assert.lengthOf", "contents": "assert.lengthOf ${1:object}, ${2:length}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.throws", "contents": "assert.throws ${1:function}, ${2:constructor/regexp}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.doesNotThrow", "contents": "assert.doesNotThrow ${1:function}, ${2:constructor/regexp}${3:, \"${4:[message]}\"}$0"},
    { "trigger": "assert.operator", "contents": "assert.operator ${1:val1}, ${2:operator}, ${3:val2}${4:, \"${5:[message]}\"}$0"},
    { "trigger": "assert.closeTo", "contents": "assert.closeTo ${1:actual}, ${2:expected}, ${3:delta}${4:, \"${5:[message]}\"}$0" }
   ]
}