Hbuilder自定义代码块示例,内置代码块列表-灵析社区

JACKY

Hbuilder内置了一些代码块,仅仅敲定几个字符,就可以输出一大片代码,大大的简化了开发步骤。 最让人称赞的是,用户可以自定义自己的代码块,作为有效的补充。

自定义代码块

自定义代码块效果

		"file-annotation": {
	    	"prefix": "anno",
	    	"body": [
				"/*",
"* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)",
"* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。",
"* @Email: 2909222303@qq.com",
"* @weixin: gis-dajianshi",
"* @First published in CSDN",
"* @First published time: 2024-01-$1",
				"*/"
				
	    	],
	     	"triggerAssist": false,
	     	"description": "file annotation"
		 },
		 

自定义代码块解释

    // 注意:本文档仅支持单行注释,并且'//'前不能有任何非空字符!!!
    //
    // HBuilderX使用json扩展代码块,兼容vscode的代码块格式
    // 本文档修改完毕,保存即可生效,无需重启。
    // 本文档用于用户自定义{1}代码块。
    // 每个配置项的说明如下:
    // 'key'    :代码块显示名称,显示在代码助手列表中的名字,以下例子中'console.log'就是一个key。
    // 'prefix' :代码块的触发字符,就是敲什么字母匹配这个代码块。
    // 'body'   :代码块的内容。内容中有如下特殊格式
    //          $1 表示代码块输入后光标的所在位置。如需要多光标,就在多个地方配置$1,如该位置有预置数据,则写法是${1:foo1}。多选项即下拉候选列表使用${1:foo1/foo2/foo3}
    //          $2 表示代码块输入后再次按tab后光标的切换位置tabstops(代码块展开后按tab可以跳到下一个tabstop)
    //          $0代表代码块输入后最终光标的所在位置(也可以按回车直接跳过去)。
    //          双引号使用\\'转义
    //          换行使用多个数组表示,每个行一个数组,用双引号包围,并用逗号分隔
    //          缩进需要用\\t表示,不能直接输入缩进!
    // 'triggerAssist' :为true表示该代码块输入到文档后立即在第一个tabstop上触发代码提示,拉出代码助手,默认为false。
    // 每个代码块以key为主键,多个代码块需要逗号分隔。
    // 如果json语法不合法,底部会弹出错误信息,请注意修正。
    // 例子:
    // "console.log": {
    //  "prefix": "logtwo",
    //  "body": [
    //      "console.log('$1');",
    // 	    "\tconsole.log('$2');"
    // 	],
    // 	"triggerAssist": false,
    // 	"description": "Log output to console twice"
    // }

内置代码块

内置html代码块

{
    "<!--[if IE]>": {
        "body": [
            "<!--[if IE]>",
            "\t$1",
            "<![endif]-->"
        ],
        "prefix": "ifie",
        "scope": "text.html.basic"
    },
    "<!--[if lte IE 6]>": {
        "body": [
            "<!--[if lte IE 6]>",
            "\t$1",
            "<![endif]-->"
        ],
        "prefix": "ifie6",
        "scope": "text.html.basic"
    },
    "Non-Breaking Space": {
        "body": [
            " "
        ],
        "prefix": "space",
        "scope": "text.html.basic"
    },
    "a_href": {
        "body": [
            "<a href=\"$1\">$0</a>"
        ],
        "prefix": "ahref",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "a_href_javascript": {
        "body": [
            "<a href=\"javascript:void(0);\">$1</a>$0"
        ],
        "prefix": "ajsvoid",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "applet (code width height)": {
        "body": [
            "<applet code=\"$1\" width=\"$2\" height=\"$3\">\n$0\n</applet>"
        ],
        "prefix": "applet",
        "scope": "text.html.basic"
    },
    "base": {
        "body": [
        ],
        "prefix": "base",
        "scope": "text.html.basic"
    },
    "basefont_color_size": {
        "body": [
            "<basefont color=\"$0\" size=\"$1\" />"
        ],
        "prefix": "basefont",
        "scope": "text.html.basic"
    },
    "button_type": {
        "body": [
            "<button type=\"button\">$0</button>"
        ],
        "prefix": "button",
        "scope": "text.html.basic"
    },
    "canvas (id width height)": {
        "body": [
            "<canvas id=\"$1\" width=\"$2\" height=\"$3\"></canvas>"
        ],
        "prefix": "canvas",
        "scope": "text.html.basic"
    },
    "data-": {
        "body": [
            "data-${1:type} = \"$2\""
        ],
        "prefix": "data-",
        "scope": "text.html.basic meta.tag.structure punctuation.definition.tag.end.html,text.html.basic meta.tag.structure"
    },
    "div_class": {
        "body": [
            "<div class=\"$1\">",
            "\t$0",
            "</div>"
        ],
        "prefix": "divc",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "div_id": {
        "body": [
            "<div id=\"$1\">",
            "\t$0",
            "</div>"
        ],
        "prefix": "div",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "dl_dt_dd": {
        "body": [
            "<dl>",
            "\t<dt>$1</dt>",
            "\t<dd>$2</dd>",
            "</dl>"
        ],
        "prefix": "dl",
        "scope": "text.html.basic"
    },
    "fieldset_id": {
        "body": [
            "<fieldset id=\"$2\">",
            "\t<legend>$1</legend>",
            "\t",
            "\t$0",
            "</fieldset>"
        ],
        "prefix": "fieldset",
        "scope": "text.html.basic"
    },
    "font_size_color": {
        "body": [
            "<font size=\"$1\" color=\"$2\">$0</font>"
        ],
        "prefix": "font",
        "scope": "text.html.basic"
    },
    "form_action_method": {
        "body": [
            "<form action=\"$1\" method=\"$2\">",
            "\t$0",
            "</form>"
        ],
        "prefix": "form",
        "scope": "text.html.basic"
    },
    "form_submit": {
        "body": [
            "<form action=\"$1\" method=\"${2:post}\">",
            "\t$0",
            "\t<input type=\"submit\" value=\"$3\"/>",
            "</form>"
        ],
        "prefix": "form",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "frame_src": {
        "body": [
            "<frame src=\"$0\" >"
        ],
        "prefix": "frame",
        "scope": "text.html.basic"
    },
    "frameset_cols": {
        "body": [
            "<frameset cols=\"$1\">",
            "\t$0",
            "</frameset>"
        ],
        "prefix": "frameset",
        "scope": "text.html.basic"
    },
    "head_structure": {
        "body": [
            "<head>",
            "\t<meta charset=\"utf-8\"/>",
            "\t<title>$1</title>",
            "\t",
            "</head>"
        ],
        "prefix": "head",
        "scope": "text.html.basic"
    },
    "html_5": {
        "body": [
            "<!DOCTYPE HTML>"
        ],
        "prefix": "dochtml5",
        "scope": "text.html.basic"
    },
    "html_structure": {
        "body": [
            "<!DOCTYPE html>",
            "<html>",
            "\t<head>",
            "\t\t<meta charset=\"utf-8\" />",
            "\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">",
            "\t\t<title>$0</title>",
            "\t</head>",
            "\t<body>",
            "\t\t",
            "\t</body>",
            "</html>"
        ],
        "prefix": "html",
        "scope": "text.html.basic"
    },
    "iframe_src_width_height": {
        "body": [
            "<iframe src=\"$1\" width=\"$2\" height=\"$3\"></iframe>"
        ],
        "prefix": "iframe",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "input_lable": {
        "body": [
            "<input type=\"${1:radio}\" name=\"$2\" id=\"$2\" value=\"$3\"/><label for=\"$2\">$4</label>"
        ],
        "prefix": "inputlable",
        "scope": "text.html.basic"
    },
    "input_reset": {
        "body": [
            "<input type=\"reset\" value=\"$1\" />"
        ],
        "prefix": "inreset",
        "scope": "text.html.basic"
    },
    "input_search": {
        "body": [
            "<input type=\"search\" name=\"$1\" required=\"$2\" placeholder=\"Search\" x-webkit-speech=\"$3\" x-webkit-grammar=\"builtin:search\" lang=\"zh-CN\">"
        ],
        "prefix": "insearch",
        "scope": "text.html.basic"
    },
    "input_structure": {
        "body": [
            "<input type=\"$1\" name=\"$2\" id=\"$2\" value=\"$3\" />"
        ],
        "prefix": "input",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "input_submit": {
        "body": [
            "<input type=\"submit\" id=\"$1\" name=\"$2\" />"
        ],
        "prefix": "insubmit",
        "scope": "text.html.basic"
    },
    "input_text": {
        "body": [
            "<input type=\"text\" id=\"$1\" value=\"$2\" />"
        ],
        "prefix": "intext",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "mActionsheet(H5模式弹出菜单)": {
        "body": [
            "<div id=\"sheet\" class=\"mui-popover mui-popover-bottom mui-popover-action \">",
            "\t<!-- 可选择菜单 -->",
            "\t<ul class=\"mui-table-view\">",
            "\t  <li class=\"mui-table-view-cell\">",
            "\t\t<a href=\"#\">${1:菜单1}</a>",
            "\t  </li>",
            "\t  <li class=\"mui-table-view-cell\">",
            "\t\t<a href=\"#\">${2:菜单2}</a>",
            "\t  </li>",
            "\t</ul>",
            "\t<!-- 取消菜单 -->",
            "\t<ul class=\"mui-table-view\">",
            "\t  <li class=\"mui-table-view-cell\">",
            "\t\t<a href=\"#sheet1\"><b>${4:取消}</b></a>",
            "\t  </li>",
            "\t</ul>",
            "</div>",
            "<a href=\"#sheet\" id=\"openSheet\" class=\"mui-btn mui-btn-primary mui-btn-block\">${3:打开操作表}</a>",
            "$0"
        ],
        "prefix": "mactionsheet",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mBody(主体)": {
        "body": [
            "<div class=\"mui-content\">",
            "\t$0",
            "</div>"
        ],
        "prefix": "mbody",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mButton(块状按钮)": {
        "body": [
            "<button type=\"button\" class=\"mui-btn ${1:mui-btn-blue/mui-btn-green/mui-btn-yellow/mui-btn-red/mui-btn-purple/mui-btn-grey} mui-btn-block\">${2:按钮}</button>$0"
        ],
        "prefix": "mbutton_block",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mButton(按钮)": {
        "body": [
            "<button type=\"button\" class=\"mui-btn ${1:mui-btn-blue/mui-btn-green/mui-btn-yellow/mui-btn-red/mui-btn-purple/mui-btn-grey}\">${2:按钮}</button>$0"
        ],
        "prefix": "mbutton",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mButton(按钮无底色,有边框)": {
        "body": [
            "<button type=\"button\" class=\"mui-btn ${1:mui-btn-blue/mui-btn-green/mui-btn-yellow/mui-btn-red/mui-btn-purple/mui-btn-grey} mui-btn-outlined\">${2:按钮}</button>$0"
        ],
        "prefix": "mbutton_outline",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mCheckbox(复选框)": {
        "body": [
            "<div class=\"mui-input-row mui-checkbox \">",
            "\t<label>${1:Checkbox}</label>",
            "\t<input name=\"${3:Checkbox}\" type=\"checkbox\" ${2:checked}>",
            "</div>",
            "$0"
        ],
        "prefix": "mcheckbox",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mCheckbox(复选框居左)": {
        "body": [
            "<div class=\"mui-input-row mui-checkbox mui-left\">",
            "  <label>${1:checkbox}</label>",
            "  <input name=\"${3:checkbox1}\" type=\"checkbox\" ${2:checked} >",
            "</div>",
            "$0"
        ],
        "prefix": "mcheckbox_left",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mCheckbox(复选框禁用选项)": {
        "body": [
            "<div class=\"mui-input-row mui-checkbox mui-disabled\">",
            "\t<label>${1:disabled checkbox}</label>",
            "\t<input name=\"checkbox\" type=\"checkbox\" ${2:disabled=\"disabled\"}>",
            "</div>",
            "$0"
        ],
        "prefix": "mcheckbox_disabled",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mDoctype(mui-dom结构)": {
        "body": [
            "<!doctype html>",
            "<html lang=\"en\">",
            "<head>",
            "\t<meta charset=\"UTF-8\" />",
            "\t<title>Document</title>",
            "\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no\" />",
            "\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${1:css\\/mui.css}\"/>",
            "</head>",
            "<body>",
            "\t$0",
            "\t<script src=\"${2:js\\/mui.js}\" type=\"text/javascript\" charset=\"utf-8\"></script>",
            "\t<script type=\"text/javascript\">",
            "\tmui.init()$3",
            "\t</script>",
            "</body>",
            "</html>"
        ],
        "prefix": "mdoctype",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "mForm(表单)": {
        "body": [
            "<form class=\"mui-input-group\">",
            "\t<div class=\"mui-input-row\">",
            "\t\t<label>${3:input}</label>",
            "\t\t<input type=\"${1:text}\" class=\"${2:mui-input-clear}\" placeholder=\"${3:请输入}\">",
            "\t</div>",
            "</form>$0"
        ],
        "prefix": "mform",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "mGallery-Table(图文表格)": {
        "body": [
            "<ul class=\"mui-table-view mui-grid-view\">",
            "\t<li class=\"mui-table-view-cell mui-media mui-col-xs-6\">",
            "\t\t<a href=\"#\">",
            "\t\t\t<img class=\"mui-media-object\" src=\"http://placehold.it/400x300\">",
            "\t\t\t<div class=\"mui-media-body\">${1:文字说明1}</div>",
            "\t\t</a>",
            "\t</li>",
            "\t<li class=\"mui-table-view-cell mui-media mui-col-xs-6\">",
            "\t\t<a href=\"#\">",
            "\t\t\t<img class=\"mui-media-object\" src=\"http://placehold.it/400x300\">",
            "\t\t\t<div class=\"mui-media-body\">${2:文字说明2}</div>",
            "\t\t</a>",
            "\t</li>",
            "</ul>$0"
        ],
        "prefix": "mslider_gallery_table",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mGallery图片轮播": {
        "body": [
            "<div id=\"slider\" class=\"mui-slider\" >",
            "  <div class=\"mui-slider-group mui-slider-loop\">",
            "\t<!-- 额外增加的一个节点(循环轮播:第一个节点是最后一张轮播) -->",
            "\t<div class=\"mui-slider-item mui-slider-item-duplicate\">",
            "\t  <a href=\"#\">",
            "\t\t<img src=\"${1:http:\\/\\/placehold.it\\/400x300}\">",
            "\t  </a>",
            "\t</div>",
            "\t<!-- 第一张 -->",
            "\t<div class=\"mui-slider-item\">",
            "\t  <a href=\"#\">",
            "\t\t<img src=\"${2:http:\\/\\/placehold.it\\/400x300}\">",
            "\t  </a>",
            "\t</div>",
            "\t<!-- 第二张 -->",
            "\t<div class=\"mui-slider-item\">",
            "\t  <a href=\"#\">",
            "\t\t<img src=\"${3:http:\\/\\/placehold.it\\/400x300}\">",
            "\t  </a>",
            "\t</div>",
            "\t<!-- 第三张 -->",
            "\t<div class=\"mui-slider-item\">",
            "\t  <a href=\"#\">",
            "\t\t<img src=\"${4:http:\\/\\/placehold.it\\/400x300}\">",
            "\t  </a>",
            "\t</div>",
            "\t<!-- 第四张 -->",
            "\t<div class=\"mui-slider-item\">",
            "\t  <a href=\"#\">",
            "\t\t<img src=\"${1:http:\\/\\/placehold.it\\/400x300}\">",
            "\t  </a>",
            "\t</div>",
            "\t<!-- 额外增加的一个节点(循环轮播:最后一个节点是第一张轮播) -->",
            "\t<div class=\"mui-slider-item mui-slider-item-duplicate\">",
            "\t  <a href=\"#\">",
            "\t\t<img src=\"${2:http:\\/\\/placehold.it\\/400x300}\">",
            "\t  </a>",
            "\t</div>",
            "  </div>",
            "  <div class=\"mui-slider-indicator\">",
            "\t<div class=\"mui-indicator mui-active\"></div>",
            "\t<div class=\"mui-indicator\"></div>",
            "\t<div class=\"mui-indicator\"></div>",
            "\t<div class=\"mui-indicator\"></div>",
            "  </div>",
            "</div>"
        ],
        "prefix": "mslider_gallery",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mGrid(九宫格)": {
        "body": [
            "<ul class=\"mui-table-view mui-grid-view mui-grid-9\">",
            "<li class=\"mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3\">",
            "\t<a href=\"#\">",
            "\t\t<span class=\"mui-icon mui-icon-home\"></span>",
            "\t\t<div class=\"mui-media-body\">${1:Home}</div>",
            "\t</a>",
            "</li>",
            "<li class=\"mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3\">",
            "\t<a href=\"#\">",
            "\t\t<span class=\"mui-icon mui-icon-email\"><span class=\"mui-badge mui-badge-red\">5</span></span>",
            "\t\t<div class=\"mui-media-body\">${2:Email}</div>",
            "\t</a>",
            "</li>",
            "<li class=\"mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3\">",
            "\t<a href=\"#\">",
            "\t\t<span class=\"mui-icon mui-icon-chatbubble\"></span>",
            "\t\t<div class=\"mui-media-body\">${3:Chat}</div>",
            "\t</a>",
            "</li>",
            "<li class=\"mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3\">",
            "\t<a href=\"#\">",
            "\t\t<span class=\"mui-icon mui-icon-location\"></span>",
            "\t\t<div class=\"mui-media-body\">${4:Location}</div>",
            "\t</a>",
            "</li>",
            "<li class=\"mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3\">",
            "\t<a href=\"#\">",
            "\t\t<span class=\"mui-icon mui-icon-search\"></span>",
            "\t\t<div class=\"mui-media-body\">${5:Search}</div>",
            "\t</a>",
            "</li>",
            "<li class=\"mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3\">",
            "\t<a href=\"#\">",
            "\t\t<span class=\"mui-icon mui-icon-phone\"></span>",
            "\t\t<div class=\"mui-media-body\">${6:Phone}</div>",
            "\t</a>",
            "</li>",
            "\t</ul>",
            "$0"
        ],
        "prefix": "mgrid",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mHeader(带返回箭头的标题栏)": {
        "body": [
            "<header class=\"mui-bar mui-bar-nav\">",
            "\t<a class=\"mui-action-back mui-icon mui-icon-left-nav mui-pull-left\"></a>",
            "\t<h1 class=\"mui-title\">${1:标题}</h1>",
            "</header>$0"
        ],
        "prefix": "mheaderwithBack",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mHeader(标题栏)": {
        "body": [
            "<header class=\"mui-bar mui-bar-nav\">",
            "\t<h1 class=\"mui-title\">${1:标题}</h1>",
            "</header>$0"
        ],
        "prefix": "mheader",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mIcon(图标)": {
        "body": [
            "<${2:span} class=\"mui-icon mui-icon-${1:weixin}\"></${2:span}>"
        ],
        "prefix": "micon",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "mList(列表)": {
        "body": [
            "<ul class=\"mui-table-view\">",
            "\t\t<li class=\"mui-table-view-cell\">",
            "\t\t\t<a class=\"mui-navigate-right\">",
            "\t\t\t\t${1:Item 1}",
            "\t\t\t</a>",
            "\t\t</li>",
            "\t\t<li class=\"mui-table-view-cell\">",
            "\t\t\t<a class=\"mui-navigate-right\">",
            "\t\t\t\t ${2:Item 2}",
            "\t\t\t</a>",
            "\t\t</li>",
            "\t\t<li class=\"mui-table-view-cell\">",
            "\t\t\t<a class=\"mui-navigate-right\">",
            "\t\t\t\t ${3:Item 3}",
            "\t\t\t</a>",
            "\t\t</li>",
            "\t</ul>$0"
        ],
        "prefix": "mlist",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mListMedia(图文列表图片居右)": {
        "body": [
            "<ul class=\"mui-table-view\">",
            "\t<li class=\"mui-table-view-cell mui-media\">",
            "\t\t<a href=\"javascript:;\">",
            "\t\t\t<img class=\"mui-media-object mui-pull-right\" src=\"${1}\">",
            "\t\t\t<div class=\"mui-media-body\">",
            "\t\t\t\t${4:幸福}",
            "\t\t\t\t<p class=\"mui-ellipsis\">${5:能和心爱的人一起睡觉,是件幸福的事情;可是,打呼噜怎么办?}</p>",
            "\t\t\t</div>",
            "\t\t</a>",
            "\t</li>",
            "\t<li class=\"mui-table-view-cell mui-media\">",
            "\t\t<a href=\"javascript:;\">",
            "\t\t\t<img class=\"mui-media-object mui-pull-right\" src=\"${2}\">",
            "\t\t\t<div class=\"mui-media-body\">",
            "\t\t\t\t${6:木屋}",
            "\t\t\t\t<p class=\"mui-ellipsis\">${7:想要这样一间小木屋,夏天挫冰吃瓜,冬天围炉取暖.}</p>",
            "\t\t\t</div>",
            "\t\t</a>",
            "\t</li>",
            "\t<li class=\"mui-table-view-cell mui-media\">",
            "\t\t<a href=\"javascript:;\">",
            "\t\t\t<img class=\"mui-media-object mui-pull-right\" src=\"${3}\">",
            "\t\t\t<div class=\"mui-media-body\">",
            "\t\t\t   ${8: CBD}",
            "\t\t\t\t<p class=\"mui-ellipsis\">${9:烤炉模式的城,到黄昏,如同打翻的调色盘一般.}</p>",
            "\t\t\t</div>",
            "\t\t</a>",
            "\t</li>",
            "</ul>$0"
        ],
        "prefix": "mlist_Media_right",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "mListMedia(图文列表图片居左)": {
        "body": [
            "<ul class=\"mui-table-view\">",
            "\t<li class=\"mui-table-view-cell mui-media\">",
            "\t\t<a href=\"javascript:;\">",
            "\t\t\t<img class=\"mui-media-object mui-pull-left\" src=\"${1}\">",
            "\t\t\t<div class=\"mui-media-body\">",
            "\t\t\t\t${4:幸福}",
            "\t\t\t\t<p class=\"mui-ellipsis\">${5:能和心爱的人一起睡觉,是件幸福的事情;可是,打呼噜怎么办?}</p>",
            "\t\t\t</div>",
            "\t\t</a>",
            "\t</li>",
            "\t<li class=\"mui-table-view-cell mui-media\">",
            "\t\t<a href=\"javascript:;\">",
            "\t\t\t<img class=\"mui-media-object mui-pull-left\" src=\"${2}\">",
            "\t\t\t<div class=\"mui-media-body\">",
            "\t\t\t\t${6:木屋}",
            "\t\t\t\t<p class=\"mui-ellipsis\">${7:想要这样一间小木屋,夏天挫冰吃瓜,冬天围炉取暖.}</p>",
            "\t\t\t</div>",
            "\t\t</a>",
            "\t</li>",
            "\t<li class=\"mui-table-view-cell mui-media\">",
            "\t\t<a href=\"javascript:;\">",
            "\t\t\t<img class=\"mui-media-object mui-pull-left\" src=\"${3}\">",
            "\t\t\t<div class=\"mui-media-body\">",
            "\t\t\t   ${8: CBD}",
            "\t\t\t\t<p class=\"mui-ellipsis\">${9:烤炉模式的城,到黄昏,如同打翻的调色盘一般.}</p>",
            "\t\t\t</div>",
            "\t\t</a>",
            "\t</li>",
            "</ul>$0"
        ],
        "prefix": "mlist_Media_left",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "mOffcanvas(侧滑导航-主界面、菜单同时移动)": {
        "body": [
            "<!-- 主界面菜单同时移动 -->",
            "\t<!-- 侧滑导航根容器 -->",
            "\t<div class=\"mui-off-canvas-wrap mui-draggable\">",
            "\t\t<!-- 主页面容器 -->",
            "\t\t<div class=\"mui-inner-wrap\">",
            "\t\t\t<!-- 菜单容器 -->",
            "\t\t\t<aside class=\"mui-off-canvas-left\" id=\"offCanvasSide\">",
            "\t\t\t\t<div class=\"mui-scroll-wrapper\">",
            "\t\t\t\t\t<div class=\"mui-scroll\">",
            "\t\t\t\t\t\t<!-- 菜单具体展示内容 -->",
            "\t\t\t\t\t\t",
            "\t\t\t\t\t</div>",
            "\t\t\t\t</div>",
            "\t\t\t</aside>",
            "\t\t\t<!-- 主页面标题 -->",
            "\t\t\t<header class=\"mui-bar mui-bar-nav\">",
            "\t\t\t\t<a class=\"mui-icon mui-action-menu mui-icon-bars mui-pull-left\" href=\"#offCanvasSide\"></a>",
            "\t\t\t\t<h1 class=\"mui-title\">标题</h1>",
            "\t\t\t</header>",
            "\t\t\t<nav class=\"mui-bar mui-bar-tab\">",
            "\t\t\t\t<a class=\"mui-tab-item mui-active\">",
            "\t\t\t\t\t<span class=\"mui-icon mui-icon-home\"></span>",
            "\t\t\t\t\t<span class=\"mui-tab-label\">首页</span>",
            "\t\t\t\t</a>",
            "\t\t\t\t<a class=\"mui-tab-item\">",
            "\t\t\t\t\t<span class=\"mui-icon mui-icon-phone\"></span>",
            "\t\t\t\t\t<span class=\"mui-tab-label\">电话</span>",
            "\t\t\t\t</a>",
            "\t\t\t\t<a class=\"mui-tab-item\">",
            "\t\t\t\t\t<span class=\"mui-icon mui-icon-email\"></span>",
            "\t\t\t\t\t<span class=\"mui-tab-label\">邮件</span>",
            "\t\t\t\t</a>",
            "\t\t\t\t<a class=\"mui-tab-item\">",
            "\t\t\t\t\t<span class=\"mui-icon mui-icon-gear\"></span>",
            "\t\t\t\t\t<span class=\"mui-tab-label\">设置</span>",
            "\t\t\t\t</a>",
            "\t\t\t</nav>",
            "\t\t\t<!-- 主页面内容容器 -->",
            "\t\t\t<div class=\"mui-content mui-scroll-wrapper\">",
            "\t\t\t\t<div class=\"mui-scroll\">",
            "\t\t\t\t\t<!-- 主界面具体展示内容 -->",
            "\t\t\t\t\t",
            "\t\t\t\t</div>",
            "\t\t\t</div>",
            "\t   \t <div class=\"mui-off-canvas-backdrop\"></div>",
            "\t\t</div>",
            "\t</div>"
        ],
        "prefix": "moffcanvasall",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mOffcanvas(侧滑导航-主界面不动、菜单移动)": {
        "body": [
            "<!-- 主界面不动、菜单移动 -->",
            "<!-- 侧滑导航根容器 -->",
            "<div class=\"mui-off-canvas-wrap mui-draggable mui-slide-in\">",
            "  <!-- 菜单容器 -->",
            "  <aside class=\"mui-off-canvas-left\" id=\"offCanvasSide\">",
            "\t<div class=\"mui-scroll-wrapper\">",
            "\t  <div class=\"mui-scroll\">",
            "\t\t<!-- 菜单具体展示内容 -->",
            "\t\t$1",
            "\t  </div>",
            "\t</div>",
            "  </aside>",
            "  <!-- 主页面容器 -->",
            "  <div class=\"mui-inner-wrap\">",
            "\t<!-- 主页面标题 -->",
            "\t<header class=\"mui-bar mui-bar-nav\">",
            "\t  <a class=\"mui-icon mui-action-menu mui-icon-bars mui-pull-left\" href=\"#offCanvasSide\"></a>",
            "\t  <h1 class=\"mui-title\">标题</h1>",
            "\t</header>",
            "\t<nav class=\"mui-bar mui-bar-tab\">",
            "\t\t<a class=\"mui-tab-item mui-active\">",
            "\t\t\t<span class=\"mui-icon mui-icon-home\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">首页</span>",
            "\t\t</a>",
            "\t\t<a class=\"mui-tab-item\">",
            "\t\t\t<span class=\"mui-icon mui-icon-phone\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">电话</span>",
            "\t\t</a>",
            "\t\t<a class=\"mui-tab-item\">",
            "\t\t\t<span class=\"mui-icon mui-icon-email\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">邮件</span>",
            "\t\t</a>",
            "\t\t<a class=\"mui-tab-item\">",
            "\t\t\t<span class=\"mui-icon mui-icon-gear\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">设置</span>",
            "\t\t</a>",
            "\t</nav>",
            "\t<div class=\"mui-content mui-scroll-wrapper\">",
            "\t  <div class=\"mui-scroll\">",
            "\t\t<!-- 主界面具体展示内容 -->",
            "\t\t$2",
            "\t  </div>",
            "\t</div>  ",
            "\t<div class=\"mui-off-canvas-backdrop\"></div>",
            "  </div>",
            "</div>"
        ],
        "prefix": "moffcanvasmenu",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mOffcanvas(侧滑导航-主界面移动、菜单不动)": {
        "body": [
            "<!-- 主界面移动、菜单不动 -->",
            "<div class=\"mui-off-canvas-wrap mui-draggable\">",
            "  <!-- 菜单容器 -->",
            "  <aside class=\"mui-off-canvas-left\" id=\"offCanvasSide\">",
            "\t<div class=\"mui-scroll-wrapper\">",
            "\t  <div class=\"mui-scroll\">",
            "\t\t<!-- 菜单具体展示内容 -->",
            "\t\t\t$1",
            "\t  </div>",
            "\t</div>",
            "  </aside>",
            "  <!-- 主页面容器 -->",
            "  <div class=\"mui-inner-wrap\">",
            "\t<!-- 主页面标题 -->",
            "\t<header class=\"mui-bar mui-bar-nav\">",
            "\t  <a class=\"mui-icon mui-action-menu mui-icon-bars mui-pull-left\"  href=\"#offCanvasSide\" ></a>",
            "\t  <h1 class=\"mui-title\">标题</h1>",
            "\t</header>",
            "\t<nav class=\"mui-bar mui-bar-tab\">",
            "\t\t<a class=\"mui-tab-item mui-active\">",
            "\t\t\t<span class=\"mui-icon mui-icon-home\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">首页</span>",
            "\t\t</a>",
            "\t\t<a class=\"mui-tab-item\">",
            "\t\t\t<span class=\"mui-icon mui-icon-phone\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">电话</span>",
            "\t\t</a>",
            "\t\t<a class=\"mui-tab-item\">",
            "\t\t\t<span class=\"mui-icon mui-icon-email\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">邮件</span>",
            "\t\t</a>",
            "\t\t<a class=\"mui-tab-item\">",
            "\t\t\t<span class=\"mui-icon mui-icon-gear\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">设置</span>",
            "\t\t</a>",
            "\t</nav>",
            "\t<div class=\"mui-content mui-scroll-wrapper\">",
            "\t  <div class=\"mui-scroll\">",
            "\t\t<!-- 主界面具体展示内容 -->",
            "\t\t \t$2",
            "\t  </div>",
            "\t</div> ",
            "\t<div class=\"mui-off-canvas-backdrop\"></div>",
            "  </div> ",
            "</div>$0"
        ],
        "prefix": "moffcanvasmain",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mOffcanvas(缩放式侧滑(类手机QQ))": {
        "body": [
            "<!-- 缩放式侧滑(类手机QQ) -->",
            "<!-- 侧滑导航根容器 -->",
            "<div class=\"mui-off-canvas-wrap mui-draggable mui-scalable\">",
            "  <!-- 菜单容器 -->",
            "  <aside class=\"mui-off-canvas-left mui-transitioning\" id=\"offCanvasSide\">",
            "\t<div class=\"mui-scroll-wrapper\">",
            "\t  <div class=\"mui-scroll\">",
            "\t\t<!-- 菜单具体展示内容 -->",
            "\t\t$1",
            "\t  </div>",
            "\t</div>",
            "  </aside>",
            "  <!-- 主页面容器 -->",
            "  <div class=\"mui-inner-wrap mui-transitioning\">",
            "\t<!-- 主页面标题 -->",
            "\t<header class=\"mui-bar mui-bar-nav\">",
            "\t  <a class=\"mui-icon mui-action-menu mui-icon-bars mui-pull-left\" href=\"#offCanvasSide\"></a>",
            "\t  <h1 class=\"mui-title\">标题</h1>",
            "\t</header>",
            "\t<nav class=\"mui-bar mui-bar-tab\">",
            "\t\t<a class=\"mui-tab-item mui-active\">",
            "\t\t\t<span class=\"mui-icon mui-icon-home\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">首页</span>",
            "\t\t</a>",
            "\t\t<a class=\"mui-tab-item\">",
            "\t\t\t<span class=\"mui-icon mui-icon-phone\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">电话</span>",
            "\t\t</a>",
            "\t\t<a class=\"mui-tab-item\">",
            "\t\t\t<span class=\"mui-icon mui-icon-email\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">邮件</span>",
            "\t\t</a>",
            "\t\t<a class=\"mui-tab-item\">",
            "\t\t\t<span class=\"mui-icon mui-icon-gear\"></span>",
            "\t\t\t<span class=\"mui-tab-label\">设置</span>",
            "\t\t</a>",
            "\t</nav>",
            "\t<div class=\"mui-content mui-scroll-wrapper\">",
            "\t  <div class=\"mui-scroll\">",
            "\t\t<!-- 主界面具体展示内容 -->",
            "\t\t$2",
            "\t  </div>",
            "\t</div>  ",
            "\t<div class=\"mui-off-canvas-backdrop\"></div>",
            "  </div>",
            "</div>$0"
        ],
        "prefix": "moffcanvasscalable",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mPagination(分页)": {
        "body": [
            "<ul class=\"mui-pagination\">",
            "\t<li class=\"mui-disabled\">",
            "\t\t<span> « </span>",
            "\t</li>",
            "\t<li class=\"mui-active\">",
            "\t\t<a href=\"#\">${1:1}</a>",
            "\t</li>",
            "\t<li>",
            "\t\t<a href=\"#\">${2:2}</a>",
            "\t</li>",
            "\t<li>",
            "\t\t<a href=\"#\">»</a>",
            "\t</li>",
            "</ul>$0"
        ],
        "prefix": "mpagination",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mPopover(弹出菜单)": {
        "body": [
            "${1:<style type=\"text\\/css\">",
            "#popover{",
            "\theight: 100px;",
            "\twidth:200px;",
            "\\}",
            "<\\/style>}",
            "<div id=\"popover\" class=\"mui-popover\">",
            "\t<div class=\"mui-scroll-wrapper\">",
            "\t\t<div class=\"mui-scroll\">",
            "\t\t\t<ul class=\"mui-table-view\">",
            "\t\t\t\t<li class=\"mui-table-view-cell\"><a href=\"#\">Item1</a></li>",
            "\t\t\t\t<li class=\"mui-table-view-cell\"><a href=\"#\">Item2</a></li>",
            "\t\t\t\t<li class=\"mui-table-view-cell\"><a href=\"#\">Item3</a></li>",
            "\t\t\t\t<li class=\"mui-table-view-cell\"><a href=\"#\">Item4</a></li>",
            "\t\t\t\t<li class=\"mui-table-view-cell\"><a href=\"#\">Item5</a></li>",
            "\t\t\t</ul>",
            "\t\t</div>",
            "\t</div>",
            "</div>",
            "<a href=\"#popover\" id=\"openPopover\" class=\"mui-btn mui-btn-primary mui-btn-block\">打开弹出菜单</a>",
            "${2:mui('.mui-scroll-wrapper').scroll()}"
        ],
        "prefix": "mpopover",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mRadio(单选框)": {
        "body": [
            "<div class=\"mui-input-row mui-radio \">",
            "\t<label>${1:Radio}</label>",
            "\t<input name=\"${3:radio}\" type=\"radio\" ${2:checked}>",
            "</div>$0"
        ],
        "prefix": "mradio",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mRadio(单选框居左)": {
        "body": [
            "<div class=\"mui-input-row mui-radio mui-left\">",
            "\t<label>${1:Radio}</label>",
            "\t<input name=\"${3:radio}\" type=\"radio\" ${2:checked}>",
            "</div>$0"
        ],
        "prefix": "mradio_left",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mRadio(禁用单选框)": {
        "body": [
            "<div class=\"mui-input-row mui-radio mui-disabled\">",
            "\t<label>${1:Radio}</label>",
            "\t<input name=\"${3:radio}\" type=\"radio\" disabled=\"disabled\">",
            "</div>$0"
        ],
        "prefix": "mradio_disable",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mRadios(默认选中指定项)": {
        "body": [
            "<ul class=\"mui-table-view mui-table-view-radio\">",
            "\t<li class=\"mui-table-view-cell\">",
            "\t\t<a class=\"mui-navigate-right\">${1:Item 1}</a>",
            "\t</li>",
            "\t<li class=\"mui-table-view-cell mui-selected\">",
            "\t\t<a class=\"mui-navigate-right\">${2:Item 2}</a>",
            "\t</li>",
            "\t<li class=\"mui-table-view-cell\">",
            "\t\t<a class=\"mui-navigate-right\">${3:Item 3}</a>",
            "\t</li>",
            "</ul>",
            "$0"
        ],
        "prefix": "mradio_selected",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mRange(Label+滑块)": {
        "body": [
            "<div class=\"mui-input-row mui-input-range\">",
            "\t<label>Range</label>",
            "\t<input type=\"range\" min=\"0\" max=\"100\" value=\"50\">",
            "</div>"
        ],
        "prefix": "mrangelabel",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mScroll(区域滚动)": {
        "body": [
            "<div class=\"mui-scroll-wrapper\">",
            "\t<div class=\"mui-scroll\">",
            "\t\t${1:<!--这里放置真实显示的DOM内容-->}",
            "\t</div>",
            "</div>",
            "$0"
        ],
        "prefix": "mscroll",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mSwitch(开关 - 蓝色)": {
        "body": [
            "<div class=\"mui-input-row\">",
            "\t<label>${2:Switch}</label>",
            "\t<div class=\"mui-switch${1: mui-active} mui-switch-blue\">",
            "\t\t<div class=\"mui-switch-handle\"></div>",
            "\t</div>",
            "</div>$0"
        ],
        "prefix": "mswitchblue",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mSwitch(开关)": {
        "body": [
            "<div class=\"mui-input-row\">",
            "\t<label>${2:Switch}</label>",
            "\t<div class=\"mui-switch${1: mui-active}\">",
            "\t\t<div class=\"mui-switch-handle\"></div>",
            "\t</div>",
            "</div>$0"
        ],
        "prefix": "mswitch",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mSwitch(开关Mini - blue)": {
        "body": [
            "<div class=\"mui-switch mui-switch-mini${1: mui-active} mui-switch-blue\">",
            "  <div class=\"mui-switch-handle\"></div>",
            "</div>"
        ],
        "prefix": "mswitchminiblue",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mSwitch(开关Mini)": {
        "body": [
            "<div class=\"mui-switch mui-switch-mini${1: mui-active}\">",
            "  <div class=\"mui-switch-handle\"></div>",
            "</div>"
        ],
        "prefix": "mswitchmini",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mTab(底部选项卡)": {
        "body": [
            "<nav class=\"mui-bar mui-bar-tab\">",
            "\t<a class=\"mui-tab-item mui-active\">",
            "\t\t<span class=\"mui-icon mui-icon-home\"></span>",
            "\t\t<span class=\"mui-tab-label\">${1:首页}</span>",
            "\t</a>",
            "\t<a class=\"mui-tab-item\">",
            "\t\t<span class=\"mui-icon mui-icon-phone\"></span>",
            "\t\t<span class=\"mui-tab-label\">${2:电话}</span>",
            "\t</a>",
            "\t<a class=\"mui-tab-item\">",
            "\t\t<span class=\"mui-icon mui-icon-email\"></span>",
            "\t\t<span class=\"mui-tab-label\">${3:邮件}</span>",
            "\t</a>",
            "\t<a class=\"mui-tab-item\">",
            "\t\t<span class=\"mui-icon mui-icon-gear\"></span>",
            "\t\t<span class=\"mui-tab-label\">${4:设置}</span>",
            "\t</a>",
            "</nav>$0"
        ],
        "prefix": "mtab",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mTabSegmented(div选项卡)": {
        "body": [
            "<div class=\"mui-segmented-control\">",
            "\t<a class=\"mui-control-item mui-active\" href=\"#item1\">${1:选项卡1}</a>",
            "\t<a class=\"mui-control-item\" href=\"#item2\">${1:选项卡2}</a>",
            "</div>$0"
        ],
        "prefix": "mtabsegmented",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mTabSegmented(可左右拖动的选项卡)": {
        "body": [
            "<div class=\"mui-slider\">",
            "\t<div class=\"mui-slider-indicator mui-segmented-control mui-segmented-control-inverted\">",
            "\t\t<a class=\"mui-control-item\" href=\"#item1\">${1:选项卡1}</a>",
            "\t\t<a class=\"mui-control-item\" href=\"#item2\">${2:选项卡2}</a>",
            "\t</div>",
            "\t<div id=\"sliderProgressBar\" class=\"mui-slider-progress-bar mui-col-xs-6\"></div>",
            "\t<div class=\"mui-slider-group\">",
            "\t\t<div id=\"item1\" class=\"mui-slider-item mui-control-content mui-active\">",
            "\t\t\t<ul class=\"mui-table-view\">",
            "\t\t\t\t<li class=\"mui-table-view-cell\">${3:第1个选项卡子项}</li>",
            "\t\t\t\t<li class=\"mui-table-view-cell\">${4:第1个选项卡子项}</li>",
            "\t\t\t</ul>",
            "\t\t</div>",
            "\t\t<div id=\"item2\" class=\"mui-slider-item mui-control-content\">",
            "\t\t\t<ul class=\"mui-table-view\">",
            "\t\t\t\t<li class=\"mui-table-view-cell\">${5:第2个选项卡子项}</li>",
            "\t\t\t\t<li class=\"mui-table-view-cell\">${6:第2个选项卡子项}</li>",
            "\t\t\t</ul>",
            "\t\t</div>",
            "\t</div>",
            "</div>$0"
        ],
        "prefix": "mtabviewpage",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mText(文本框)": {
        "body": [
            "<div class=\"mui-input-row\">",
            "\t<label>${3:Input}</label>",
            "\t<input type=\"${1:text}\" placeholder=\"${2:普通输入框}\">",
            "</div>",
            "$0"
        ],
        "prefix": "minputtext",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "mText_Clear(带清除按钮的文本框)": {
        "body": [
            "<div class=\"mui-input-row\">",
            "\t<label>Input</label>",
            "\t<input type=\"text\" class=\"mui-input-clear\" placeholder=\"${1:带清除按钮的输入框}\">",
            "</div>",
            "$0"
        ],
        "prefix": "minputclear",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mText_Search(搜索框)": {
        "body": [
            "<div class=\"mui-input-row mui-search\">",
            "\t<input type=\"search\" class=\"mui-input-clear\" placeholder=\"$1\">",
            "</div>",
            "$0"
        ],
        "prefix": "minputsearch",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mText_Speech(语音输入)": {
        "body": [
            "<div class=\"mui-input-row\">",
            "\t<label>${2:Input}</label>",
            "\t<input type=\"text\" class=\"mui-input-speech mui-input-clear\" placeholder=\"${1:语音输入}\">",
            "</div>",
            "$0"
        ],
        "prefix": "minputspeech",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "maccordion(折叠面板)": {
        "body": [
            "<ul class=\"mui-table-view\">",
            "\t<li class=\"mui-table-view-cell mui-collapse\">",
            "\t\t<a class=\"mui-navigate-right\" href=\"#\">${1:面板1}</a>",
            "\t\t<div class=\"mui-collapse-content\">",
            "\t\t\t<p>${2:面板1子内容}</p>",
            "\t\t</div>",
            "\t</li>",
            "\t<li class=\"mui-table-view-cell mui-collapse\">",
            "\t\t<a class=\"mui-navigate-right\" href=\"#\">${3:面板}</a>",
            "\t\t\t<div class=\"mui-collapse-content\">",
            "\t\t\t<p>${4:面板2子内容}</p>",
            "\t\t</div>",
            "\t</li>",
            "\t<li class=\"mui-table-view-cell mui-collapse\">",
            "\t\t<a class=\"mui-navigate-right\" href=\"#\">${5:面板3}</a>",
            "\t\t<div class=\"mui-collapse-content\">",
            "\t\t\t<p>${6:面板3子内容}</p>",
            "\t\t</div>",
            "\t</li>",
            "</ul>$0"
        ],
        "prefix": "maccordion",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mactionsheet(操作表)": {
        "body": [
            "<div id=\"sheet1\" class=\"mui-popover mui-popover-bottom mui-popover-action \">",
            "\t<!-- 可选择菜单 -->",
            "\t<ul class=\"mui-table-view\">",
            "\t  <li class=\"mui-table-view-cell\">",
            "\t\t<a href=\"#\">${1菜单1}</a>",
            "\t  </li>",
            "\t  <li class=\"mui-table-view-cell\">",
            "\t\t<a href=\"#\">${2菜单2}</a>",
            "\t  </li>",
            "\t</ul>",
            "\t<!-- 取消菜单 -->",
            "\t<ul class=\"mui-table-view\">",
            "\t  <li class=\"mui-table-view-cell\">",
            "\t\t<a href=\"#sheet1\"><b>${3取消}</b></a>",
            "\t  </li>",
            "\t</ul>",
            "</div>$0"
        ],
        "prefix": "actionsheet",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mbadge(数字角标无底色)": {
        "body": [
            "<span class=\"mui-badge mui-badge-inverted ${1:mui-btn-blue/mui-btn-green/mui-btn-yellow/mui-btn-red/mui-btn-purple/mui-btn-grey}\">${2:1}</span>$0"
        ],
        "prefix": "mbadgeinverted",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mbadge(数字角标)": {
        "body": [
            "<span class=\"mui-badge ${1:mui-btn-blue/mui-btn-green/mui-btn-yellow/mui-btn-red/mui-btn-purple/mui-btn-grey}\">${2:1}</span>$0"
        ],
        "prefix": "mbadge",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "meta_GB2312": {
        "body": [
            "<meta charset=\"GB2312\"/>"
        ],
        "prefix": "metagb",
        "scope": "text.html.basic"
    },
    "meta_keywords": {
        "body": [
            "<meta name=\"Keywords\" content=\"$1\"/>"
        ],
        "prefix": "metakeywords",
        "scope": "text.html.basic"
    },
    "meta_name_content": {
        "body": [
            "<meta name=\"$1\" content=\"$2\"/>"
        ],
        "prefix": "meta",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "meta_nocache": {
        "body": [
            "<meta http-equiv=\"Pragma\" content=\"no-cache\" />"
        ],
        "prefix": "metanocache",
        "scope": "text.html.basic"
    },
    "meta_viewport": {
        "body": [
            "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no\" />"
        ],
        "prefix": "metaviewport",
        "scope": "text.html.basic"
    },
    "mnumbox(数字输入框)": {
        "body": [
            "",
            "<div class=\"mui-numbox\" data-numbox-step='${1:1}' data-numbox-min='${2:0}' data-numbox-max='${3:10}'>",
            "\t<button class=\"mui-btn mui-btn-numbox-minus\" type=\"button\">-</button>",
            "\t<input class=\"mui-input-numbox\" type=\"number\" />",
            "\t<button class=\"mui-btn mui-btn-numbox-plus\" type=\"button\">+</button>",
            "</div>$0"
        ],
        "prefix": "mnumbox",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mprogressbar(进度条-无限循环)": {
        "body": [
            "<div class=\"mui-progressbar mui-progressbar-infinite\">",
            "\t<span></span>",
            "</div>"
        ],
        "prefix": "mprogressbarinfinite",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mprogressbar(进度条-有准确值)": {
        "body": [
            "<div class=\"mui-progressbar\">",
            "\t<span></span>",
            "</div>"
        ],
        "prefix": "mprogressbar",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mrefreshContainer(刷新容器)": {
        "body": [
            "<!--下拉刷新容器-->",
            "<div id=\"refreshContainer\" class=\"mui-content mui-scroll-wrapper\">",
            "  <div class=\"mui-scroll\">",
            "\t<!--数据列表-->",
            "\t<ul class=\"mui-table-view mui-table-view-chevron\">",
            "\t  $0",
            "\t</ul>",
            "  </div>",
            "</div>"
        ],
        "prefix": "mpullrefresh",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mscrollsegmented(横向滚动)": {
        "body": [
            "<div class=\"mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted\">",
            "\t<div class=\"mui-scroll\">",
            "\t\t<a class=\"mui-control-item mui-active\">",
            "\t\t\t${1:推荐}",
            "\t\t</a>",
            "\t\t<a class=\"mui-control-item\">",
            "\t\t  ${2:热点}",
            "\t\t</a>",
            "\t\t<a class=\"mui-control-item\">",
            "\t\t   ${3:北京}",
            "\t\t</a>",
            "\t\t<a class=\"mui-control-item\">",
            "\t\t   ${4:社会}",
            "\t\t</a>",
            "\t\t<a class=\"mui-control-item\">",
            "\t\t   ${5:娱乐}",
            "\t\t</a>",
            "\t\t<a class=\"mui-control-item\">",
            "\t\t   ${6:科技}",
            "\t\t</a>",
            "\t</div>",
            "</div>"
        ],
        "prefix": "mscrollsegmented",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mui-col-sm": {
        "body": [
            "<div class=\"mui-col-sm-${1:6}\">${2:Item 1}</div>",
            "<div class=\"mui-col-sm-${3:6}\">Item 2</div>"
        ],
        "prefix": "mcolsm",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mui-col-xs": {
        "body": [
            "<div class=\"mui-col-xs-${1:6}\">${2:Item 1}</div>",
            "<div class=\"mui-col-xs-${3:6}\">${2:Item 2}</div>"
        ],
        "prefix": "mcolxs",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "mui-row": {
        "body": [
            "<div class=\"mui-row\">",
            "\t$0",
            "</div>"
        ],
        "prefix": "mrow",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "ng-": {
        "body": [
            "ng-${1:app}=\"$2\""
        ],
        "prefix": "ng-",
        "scope": "text.html.basic meta.tag.structure punctuation.definition.tag.end.html,text.html.basic meta.tag.structure"
    },
    "ng-pluralize": {
        "body": [
            "<ng-pluralize>$1</ng-pluralize>"
        ],
        "prefix": "ngp",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "script html5plus": {
        "body": [
            "<script src=\"html5plus://ready\"></script>"
        ],
        "description": "html5plus提前注入时需要加上此script块",
        "prefix": "sctplus",
        "scope": "text.html.basic"
    },
    "script_src_type": {
        "body": [
            "<script src=\"$1\" type=\"text/javascript\" charset=\"${3:utf-8}\"></script>"
        ],
        "prefix": "scsrc",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "script_type": {
        "body": [
            "<script type=\"text/javascript\">",
            "\t$0",
            "</script>"
        ],
        "prefix": "script",
        "scope": "text.html.basic"
    },
    "select_option": {
        "body": [
            "<select name=\"$1\">",
            "\t<option value=\"$2\">$3</option>",
            "</select>"
        ],
        "prefix": "select",
        "scope": "text.html.basic"
    },
    "slide(轮播组件)": {
        "body": [
            "<div class=\"mui-slider\">",
            "  <div class=\"mui-slider-group\">",
            "\t<!--第一个内容区容器-->",
            "\t<div class=\"mui-slider-item\">",
            "\t  <!-- 具体内容 -->",
            "\t</div>",
            "\t<!--第二个内容区-->",
            "\t<div class=\"mui-slider-item\">",
            "\t  <!-- 具体内容 -->",
            "\t</div>",
            "  </div>",
            "</div>"
        ],
        "prefix": "mslider",
        "project": "Web,App,Wap2App",
        "scope": "text.html.basic"
    },
    "span_id": {
        "body": [
            "<span id=\"$1\">",
            "\t$0",
            "</span>"
        ],
        "prefix": "span",
        "scope": "text.html.basic",
        "triggerAssist": true
    },
    "style_type": {
        "body": [
            "<style type=\"text/css\">",
            "\t$0",
            "</style>"
        ],
        "prefix": "style",
        "scope": "text.html.basic"
    },
    "table_structure": {
        "body": [
            "<table border=\"$1\" cellspacing=\"$2\" cellpadding=\"$3\">",
            "\t<tr><th>${4:Header}</th></tr>",
            "\t<tr><td>${5:Data}</td></tr>",
            "</table>"
        ],
        "prefix": "table",
        "scope": "text.html.basic"
    },
    "ul_li": {
        "body": [
            "<ul>",
            "\t<li>$1</li>",
            "</ul>"
        ],
        "prefix": "ul",
        "scope": "text.html.basic"
    },
    "v-for": {
        "body": [
            "v-for=\"(${1:item},${2:index}) in ${3:Data}\""
        ],
        "prefix": "v-for",
        "scope": "text.html.basic meta.tag.structure punctuation.definition.tag.end.html,text.html.basic meta.tag.structure"
    },
    "video_structure": {
        "body": [
            "<video width=\"${1:800}\" height=\"$2\">",
            "\t<source src=\"${3:myvideo.mp4}\" type=\"video/mp4\"></source>",
            "\t<source src=\"${4:myvideo.ogv}\" type=\"video/ogg\"></source>",
            "\t<source src=\"${5:myvideo.webm}\" type=\"video/webm\"></source>",
            "\t<object width=\"$6\" height=\"$7\" type=\"application/x-shockwave-flash\" data=\"${8:myvideo.swf}\">",
            "\t\t<param name=\"movie\" value=\"$8\" />",
            "\t\t<param name=\"flashvars\" value=\"autostart=true&file=$8\" />",
            "\t</object>",
            "\t当前浏览器不支持 video直接播放,点击这里下载视频: <a href=\"${9:myvideo.webm}\">下载视频</a>",
            "</video>"
        ],
        "prefix": "video",
        "scope": "text.html.basic"
    }
}

内置js代码块

{
    "#ifdef": {
        "body": [
            "// #ifdef ${1:APP-PLUS/APP-VUE/APP-NVUE/APP/VUE2/VUE3/MP-ALIPAY/MP-BAIDU/MP-WEIXIN/MP-QQ/MP-TOUTIAO/MP-360/MP-KUAISHOU/MP-LARK/MP-JD/MP/H5/QUICKAPP-WEBVIEW-HUAWEI/QUICKAPP-WEBVIEW-UNION/QUICKAPP-WEBVIEW}",
            "$0",
            "// #endif"
        ],
        "prefix": "ifdef",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "#ifndef": {
        "body": [
            "// #ifndef ${1:APP-PLUS/APP-VUE/APP-NVUE/APP/VUE2/VUE3/MP-ALIPAY/MP-BAIDU/MP-WEIXIN/MP-QQ/MP-TOUTIAO/MP-360/MP-KUAISHOU/MP-LARK/MP-JD/MP/H5/QUICKAPP-WEBVIEW-HUAWEI/QUICKAPP-WEBVIEW-UNION/QUICKAPP-WEBVIEW}",
            "$0",
            "// #endif"
        ],
        "prefix": "ifndef",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "$ (document.getElementById)": {
        "body": [
            "document.getElementById(\"$1\")"
        ],
        "prefix": "$$$",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "$(\"\")": {
        "body": [
            "$(\"$1\")"
        ],
        "prefix": "dl",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "$(\"#\")": {
        "body": [
            "$(\"#$1\")"
        ],
        "prefix": "dlid",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "$(\".\")": {
        "body": [
            "$(\".$1\")"
        ],
        "prefix": "dlclass",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "@alias": {
        "body": [
            "@alias $0"
        ],
        "prefix": "@alias",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@description": {
        "body": [
            "@description $0"
        ],
        "prefix": "@description",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@event": {
        "body": [
            "@event {Function(${1})} ${2:name} $0"
        ],
        "prefix": "@event",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@example": {
        "body": [
            "@example $0"
        ],
        "prefix": "@example",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@extends": {
        "body": [
            "@extends {${1:parent_type}}"
        ],
        "prefix": "@extends",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@param": {
        "body": [
            "@param {${1:type}} ${2:$FN_PARAMS} $0"
        ],
        "prefix": "@param",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@param with values": {
        "body": [
            "@param {${1:type}} ${2:$FN_PARAMS} = [${3:value}] $0"
        ],
        "prefix": "@paramvalues",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@property": {
        "body": [
            "@property {${1:type}} ${2:prop_name} $0"
        ],
        "prefix": "@property",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@property with values": {
        "body": [
            "@property {${1:type}} ${2:prop_name} = [${3:value}] $0"
        ],
        "prefix": "@propertyvalues",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@return": {
        "body": [
            "@return {${1:type}}"
        ],
        "prefix": "@return",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@tutorial": {
        "body": [
            "@tutorial ${1:url}"
        ],
        "prefix": "@tutorial",
        "scope": "source.js comment.block.documentation.js | text.html.vue source.js.embedded.html comment.block.js"
    },
    "@type": {
        "body": [
            "@type {${1:type}}"
        ],
        "prefix": "@type",
        "scope": "comment.doc.js"
    },
    "Arrow function": {
        "body": [
            "($1) => {",
            "\t$0",
            "}"
        ],
        "prefix": "arrow",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Class": {
        "body": [
            "class ${1:name} {",
            "\tconstructor(${2:arg}) {",
            "\t\t$0",
            "\t}",
            "\t",
            "}"
        ],
        "prefix": "class",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Class Extends": {
        "body": [
            "class ${1:name} extends ${2:AnotherClass} {",
            "\tconstructor(${3:arg}) {",
            "\t\t$0",
            "\t}",
            "\t",
            "}"
        ],
        "prefix": "classextends",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Decrementer": {
        "body": [
            "return ${1:this.num} -= ${2:1}"
        ],
        "description": "decrement",
        "prefix": "vdec",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Export": {
        "body": [
            "export ${1:default} ${2:bar}"
        ],
        "prefix": "export",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Export Class": {
        "body": [
            "export class ${1:name} {",
            "\t$0",
            "}"
        ],
        "prefix": "exportclass",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Getter": {
        "body": [
            "get ${1:name}() {",
            "\t$0",
            "}"
        ],
        "prefix": "getter",
        "scope": "JS_INCLASSBODY"
    },
    "Import": {
        "body": [
            "import ${1:foo} from \"${2:bar}\""
        ],
        "prefix": "imfrom",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Incrementer": {
        "body": [
            "return ${1:this.num} += ${2:1}"
        ],
        "description": "increment",
        "prefix": "vinc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Key:Value": {
        "body": [
            "${1:key} : ${2:value},"
        ],
        "prefix": "kv",
        "scope": "source meta.var.expr meta.objectliteral"
    },
    "Object Method": {
        "body": [
            "${1:method_name}: function(${2:attribute}){",
            "\t$0",
            "}${3:,}"
        ],
        "prefix": ":f",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Object Method String": {
        "body": [
            "'${1:${2:#thing}:${3:click}}': function(element){",
            "\t$0",
            "}${4:,}"
        ],
        "prefix": ":f",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Object Value JS": {
        "body": [
            "${1:value_name}:${0:value},"
        ],
        "prefix": ":,",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Object key - key: \"value\"": {
        "body": [
            "${1:key}: ${2:\"${3:value}\"}${4:, }"
        ],
        "prefix": ":",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Prototype": {
        "body": [
            "${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {",
            "\t${0:// body...}",
            "};"
        ],
        "prefix": "proto",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Setter": {
        "body": [
            "set ${1:property}(${2:value}) {",
            "\t$0",
            "}"
        ],
        "prefix": "setter",
        "scope": "class.body.js"
    },
    "Unit Test": {
        "body": [
            "import Vue from 'vue'",
            "import ${1:HelloWorld} from './components/${1:HelloWorld}'",
            "",
            "describe('${1:HelloWorld}.vue', () => {",
            "\tit('${2:should render correct contents}', () => {",
            "\t\tconst Constructor = Vue.extend(${1:HelloWorld})",
            "\t\tconst vm = new Constructor().$mount()",
            "\t\texpect(vm.$el.querySelector('.hello h1').textContent)",
            "\t\t\t.to.equal(${3:'Welcome to Your Vue.js App'})",
            "\t})",
            "})"
        ],
        "description": "unit test component",
        "prefix": "vtest",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Commit Vuex Store in Methods": {
        "body": [
            "${1:mutationName}() {",
            "\tthis.\\$store.commit('${1:mutationName}', ${2:payload})",
            "}"
        ],
        "description": "commit to vuex store in methods for mutation",
        "prefix": "vcommit",
        "scope": "(text.html.vue meta.export.default meta.object.member$)|(text.html.vue meta.export.default meta.objectliteral$)|(text.html.basic meta.objectliteral$)|(text.html.basic meta.object.member$)"
    },
    "Vue Components": {
        "body": [
            "components: {",
            "\t$1",
            "},"
        ],
        "description": "%VueComponents.description%",
        "prefix": "vcomponents",
        "scope": "(text.html.vue meta.export.default meta.object.member$)|(text.html.vue meta.export.default meta.objectliteral$)|(text.html.basic meta.objectliteral$)|(text.html.basic meta.object.member$)"
    },
    "Vue Computed": {
        "body": [
            "computed: {",
            "\t${1:name}() {",
            "\t\treturn this.${2:data} ${0}",
            "\t}",
            "},"
        ],
        "description": "computed value",
        "prefix": "vcomputed",
        "scope": "(text.html.vue meta.export.default meta.object.member$)|(text.html.vue meta.export.default meta.objectliteral$)|(text.html.basic meta.objectliteral$)|(text.html.basic meta.object.member$)"
    },
    "Vue Custom Directive": {
        "body": [
            "Vue.directive('${1:directiveName}', {",
            "\tbind(el, binding, vnode) {",
            "\t\tel.style.${2:arg} = binding.value.${2:arg};",
            "\t}",
            "});"
        ],
        "description": "vue custom directive",
        "prefix": "vc-direct",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Data": {
        "body": [
            "data() {",
            "\treturn {",
            "\t\t${1:key}: ${2:value}",
            "\t}",
            "},"
        ],
        "description": "Vue Component Data",
        "prefix": "vdata",
        "scope": "(text.html.vue meta.export.default meta.object.member$)|(text.html.vue meta.export.default meta.objectliteral$)|(text.html.basic meta.objectliteral$)|(text.html.basic meta.object.member$)"
    },
    "Vue Dispatch Vuex Store in Methods": {
        "body": [
            "${1:actionName}() {",
            "\tthis.\\$store.dispatch('${1:actionName}', ${2:payload})",
            "}"
        ],
        "description": "dispatch to vuex store in methods for action",
        "prefix": "vdispatch",
        "scope": "(text.html.vue meta.export.default meta.object.member$)|(text.html.vue meta.export.default meta.objectliteral$)|(text.html.basic meta.objectliteral$)|(text.html.basic meta.object.member$)"
    },
    "Vue Filter": {
        "body": [
            "filters: {",
            "\t${1:fnName}: function(${2:value}) {",
            "\t\treturn ${2:value}${0};",
            "\t}",
            "}"
        ],
        "description": "vue filter",
        "prefix": "vfilter",
        "scope": "(text.html.vue meta.export.default meta.object.member$)|(text.html.vue meta.export.default meta.objectliteral$)|(text.html.basic meta.objectliteral$)|(text.html.basic meta.object.member$)"
    },
    "Vue Import Export": {
        "body": [
            "import ${1:Name} from './components/${1:Name}.vue'",
            "",
            "export default {",
            "\tcomponents: {",
            "\t\t${1:Name}",
            "\t},",
            "}"
        ],
        "description": "import a component and include it in export default",
        "prefix": "vimport-export",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Import File": {
        "body": [
            "import ${1:New} from '/components/${1:New}.vue';"
        ],
        "description": "Import one component into another",
        "prefix": "vimport",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Import GSAP": {
        "body": [
            "import { TimelineMax, ${1:Ease} } from 'gsap'"
        ],
        "description": "component methods options that dispatch an action from vuex store.",
        "prefix": "vimport-gsap",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Import Library": {
        "body": [
            "import { ${1:libName} } from '${1:libName}'"
        ],
        "description": "import a library",
        "prefix": "vimport-lib",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Import into the Component": {
        "body": [
            "components: {",
            "\t${1:New},",
            "}"
        ],
        "description": "Import one component into another, within export statement",
        "prefix": "vcomponents",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Methods": {
        "body": [
            "methods: {",
            "\t${1:name}() {",
            "\t\t${0}",
            "\t}",
            "},"
        ],
        "description": "vue method",
        "prefix": "vmethod",
        "scope": "(text.html.vue meta.export.default meta.object.member$)|(text.html.vue meta.export.default meta.objectliteral$)|(text.html.basic meta.objectliteral$)|(text.html.basic meta.object.member$)"
    },
    "Vue Mixin": {
        "body": [
            "const ${1:mixinName} = {",
            "\tmounted() {",
            "\t\tconsole.log('hello from mixin!')",
            "\t},",
            "}"
        ],
        "description": "vue mixin",
        "prefix": "vmixin",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Props with Default": {
        "body": [
            "props: {",
            "\t${1:propName}: {",
            "\t\ttype: ${2:Number},",
            "\t\tdefault: ${0}",
            "\t},",
            "},"
        ],
        "description": "Vue Props with Default",
        "prefix": "vprops",
        "scope": "(text.html.vue meta.export.default meta.object.member$)|(text.html.vue meta.export.default meta.objectliteral$)|(text.html.basic meta.objectliteral$)|(text.html.basic meta.object.member$)"
    },
    "Vue Transition Methods with JavaScript Hooks": {
        "body": [
            "beforeEnter(el) {",
            "\tconsole.log('beforeEnter');",
            "},",
            "enter(el, done) {",
            "\tconsole.log('enter');",
            "\tdone();",
            "},",
            "beforeLeave(el) {",
            "\tconsole.log('beforeLeave');",
            "},",
            "leave(el, done) {",
            "\tconsole.log('leave');",
            "\tdone();",
            "},"
        ],
        "description": "transition component js hooks",
        "prefix": "vanimhook-js",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Use Mixin": {
        "body": [
            "mixins: [${1:mixinName}]"
        ],
        "description": "vue use mixin",
        "prefix": "vmixin-use",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "Vue Watchers": {
        "body": [
            "watch: {",
            "\t${1:data}(${2:newValue}, ${3:oldValue}) {",
            "\t\t${0}",
            "\t}",
            "},"
        ],
        "description": "vue watcher",
        "prefix": "vwatcher",
        "scope": "(text.html.vue meta.export.default meta.object.member$)|(text.html.vue meta.export.default meta.objectliteral$)|(text.html.basic meta.objectliteral$)|(text.html.basic meta.object.member$)"
    },
    "async method_name(){}": {
        "body": [
            "async ${1:method_name}($2){",
            "\t$0",
            "}"
        ],
        "prefix": "asyncm",
        "scope": "source.js meta.objectliteral.js"
    },
    "cdb": {
        "body": [
            "const db = uniCloud.database();",
            "$0"
        ],
        "prefix": "cdb",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "clog": {
        "body": [
            "console.log($1);"
        ],
        "description": "打印变量",
        "prefix": "clog",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "clogios": {
        "body": [
            "console.log(JSON.stringify(${1:e}));",
            "console.log('${2:e}');"
        ],
        "prefix": "cloios",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "clogjson": {
        "body": [
            "console.log(\"$1: \" + JSON.stringify($1));"
        ],
        "description": "打印JSON字符串",
        "prefix": "clogjson",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "clogvar": {
        "body": [
            "console.log(\"$1: \",$1);"
        ],
        "description": "打印变量",
        "prefix": "clogvar",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "console.dir": {
        "body": [
            "console.dir($1)"
        ],
        "prefix": "cdir",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "console.log();": {
        "body": [
            "console.log($1);"
        ],
        "prefix": "clog",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "const $1 =  uniCloud.importObject": {
        "body": [
            "const $1 = uniCloud.importObject(\"$2\")"
        ],
        "prefix": "constco",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "constructor": {
        "body": [
            "constructor(${1:arg}) {",
            "    $0",
            "}"
        ],
        "prefix": "cons",
        "scope": "class.body.js"
    },
    "db.collection": {
        "body": [
            "db.collection(\"$1\")"
        ],
        "prefix": "dbc",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "dbadd": {
        "body": [
            "db.collection('$1')",
            "\t.add($2)",
            "\t.then((res) => {",
            "\t\t$3",
            "\t})",
            "\t.catch((err) => {",
            "\t\t$4",
            "\t})"
        ],
        "description": "向数据库插入数据(客户端用法)",
        "prefix": "dbadd",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "dbget": {
        "body": [
            "db.collection('$1')",
            "\t.get()",
            "\t.then((res) => {",
            "\t\t$2",
            "\t})",
            "\t.catch((err) => {",
            "\t\t$3",
            "\t})"
        ],
        "description": "读取数据库数据(客户端用法)",
        "prefix": "dbget",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "dbremove": {
        "body": [
            "db.collection('$1')",
            "\t.where($2)",
            "\t.remove($3)",
            "\t.then((res) => {",
            "\t\t$4",
            "\t})",
            "\t.catch((err) => {",
            "\t\t$5",
            "\t})"
        ],
        "description": "删除数据库数据(客户端用法)",
        "prefix": "dbremove",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "dbupdate": {
        "body": [
            "db.collection('$1')",
            "\t.where($2)",
            "\t.update($3)",
            "\t.then((res) => {",
            "\t\t$4",
            "\t})",
            "\t.catch((err) => {",
            "\t\t$5",
            "\t})"
        ],
        "description": "更新数据库数据(客户端用法)",
        "prefix": "dbupdate",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "document.getElementById": {
        "body": [
            "document.getElementById(\"$1\")"
        ],
        "prefix": "dg",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "document.querySelectorAll": {
        "body": [
            "document.querySelectorAll(\"$1\")"
        ],
        "prefix": "dqs",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "document.write": {
        "body": [
            "document.write(\"$1\")"
        ],
        "prefix": "dw",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "documentaddEventListener": {
        "body": [
            "document.addEventListener('${1:scroll}',function ($2) {",
            "        $0",
            "})"
        ],
        "prefix": "dad",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "export default": {
        "body": [
            "export default {",
            "\t$0",
            "}"
        ],
        "prefix": "edefault",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "for (...) {...}": {
        "body": [
            "for ($1) {",
            "\t$0",
            "}"
        ],
        "prefix": "forr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "for let": {
        "body": [
            "for (let i = 0; i < ${1:Things}.length; i++) {",
            "\t${1:Things}[i]",
            "}"
        ],
        "prefix": "forl",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "for let in": {
        "body": [
            "for (let ${1:var1} in ${2:var2}) {",
            "\t$0",
            "}"
        ],
        "prefix": "forli",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "for...of": {
        "body": [
            "for (let ${1:s} of ${2:sequence}) {",
            "\t$0",
            "}"
        ],
        "prefix": "forof",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "fori": {
        "body": [
            "for (var i = 0; i < ${1:Things}.length; i++) {",
            "\t${1:Things}[i]",
            "}"
        ],
        "prefix": "fori",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "function": {
        "body": [
            "function ${1:function_name} ($2) {",
            "\t$0",
            "}"
        ],
        "prefix": "funn",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "function*": {
        "body": [
            "function* ${1:name}($2) {",
            "\tyield $0;",
            "}"
        ],
        "prefix": "fung",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "function_anonymous": {
        "body": [
            "function ($1) {",
            "\t$0",
            "}"
        ],
        "prefix": "funan",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "function_closures": {
        "body": [
            "(function ($1) {",
            "\t$0",
            "})($2)"
        ],
        "prefix": "funcl",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "getElementByIdaddEventListener": {
        "body": [
            "document.getElementById('$1').addEventListener('${2:tap}',function ($3) {",
            "        $0",
            "})"
        ],
        "prefix": "dga",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "globalData": {
        "body": [
            "getApp().globalData."
        ],
        "prefix": "gdata",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "if": {
        "body": [
            "if ($1) {",
            "\t$0",
            "}"
        ],
        "prefix": "iff",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "if ... else": {
        "body": [
            "if ($1) {",
            "\t$0",
            "} else{",
            "\t",
            "}"
        ],
        "prefix": "ife",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "ifAndroid": {
        "body": [
            "if (uni.getSystemInfoSync().platform == \"android\") {",
            "\t$1",
            "}"
        ],
        "prefix": "ifandroid",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "if_compare": {
        "body": [
            "if ($1 == ${2:true}) {",
            "\t$0",
            "} else{",
            "\t",
            "}"
        ],
        "prefix": "ifc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "ifiOS": {
        "body": [
            "if (uni.getSystemInfoSync().platform == \"ios\") {",
            "\t$1",
            "}"
        ],
        "prefix": "ifios",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "import": {
        "body": [
            "import { $1 } from \"vue\""
        ],
        "prefix": "import",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "module.exports": {
        "body": [
            "module.exports = {",
            "\t$0",
            "}"
        ],
        "prefix": "mexports",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui": {
        "body": [
            "mui."
        ],
        "prefix": "mui",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui('').pullRefresh": {
        "body": [
            "mui('#${1:refreshContainer}').pullRefresh().$2"
        ],
        "prefix": "mmpullrefresh",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui('').scroll": {
        "body": [
            "mui('.${1:mui-scroll-wrapper}').scroll({$2})$0"
        ],
        "prefix": "mmscroll",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui('').slider": {
        "body": [
            "mui('.${1:mui-slider}').slider({$2})$0"
        ],
        "prefix": "mmslider",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui()": {
        "body": [
            "mui('$1')"
        ],
        "prefix": "mmui",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui().each()": {
        "body": [
            "mui('$1').each(function (${3:index},${4:element}) {",
            "\t$0",
            "})"
        ],
        "prefix": "mmeach",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.ajax()": {
        "body": [
            "mui.ajax('$1',{",
            "\tdata:{",
            "\t\t$2",
            "\t},",
            "\tdataType:'${3:json}',//服务器返回json格式数据",
            "\ttype:'${4:post}',//HTTP请求类型",
            "\ttimeout:${5:10000},//超时时间设置为10秒;",
            "\tsuccess:function(${6:data}){",
            "\t\t$7",
            "\t},",
            "\terror:function(${8:xhr,type,errorThrown}){",
            "\t\t$9",
            "\t}",
            "});$0"
        ],
        "prefix": "majax",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.alert()": {
        "body": [
            "mui.alert('${1:message}','${2:title}','${3:btnValue}',function (${4:e}) {",
            "   ${4:e}.index$0",
            "}${5:,'div'})"
        ],
        "prefix": "mdalert",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.back()(返回上级页面)": {
        "body": [
            "mui.back()$0"
        ],
        "prefix": "mback",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.backDouble(双击退出应用)": {
        "body": [
            "//首页返回键处理",
            "//处理逻辑:1秒内,连续两次按返回键,则退出应用;",
            "var first = null;",
            "mui.back = function() {",
            "\t//首次按键,提示‘再按一次退出应用’",
            "\tif (!first) {",
            "\t\tfirst = new Date().getTime();",
            "\t\tmui.toast('再按一次退出应用');",
            "\t\tsetTimeout(function() {",
            "\t\t\tfirst = null;",
            "\t\t}, 1000);",
            "\t} else {",
            "\t\tif (new Date().getTime() - first < 1000) {",
            "\t\t\tplus.runtime.quit();",
            "\t\t}",
            "\t}",
            "};"
        ],
        "prefix": "mbackDouble",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.backFunction(重写返回逻辑)": {
        "body": [
            "mui.back=function () {",
            "    $0\t",
            "}"
        ],
        "prefix": "mbackfunction",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.backTask(双击进入后台)": {
        "body": [
            "//首页返回键处理",
            "//处理逻辑:1秒内,连续两次按返回键,则进入后台;",
            "var first = null;",
            "mui.back = function() {",
            "\t//首次按键,提示‘再按一次退出应用’",
            "\tif (!first) {",
            "\t\tfirst = new Date().getTime();",
            "\t\tmui.toast('再按一次退出应用');",
            "\t\tsetTimeout(function() {",
            "\t\t\tfirst = null;",
            "\t\t}, 1000);",
            "\t} else {",
            "\t\tif (new Date().getTime() - first < 1000) {",
            "\t\t\tvar main = plus.android.runtimeMainActivity();",
            "            main.moveTaskToBack(false);",
            "\t\t}",
            "\t}",
            "};"
        ],
        "prefix": "mbackMoveTaskToBack",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.closePopup()": {
        "body": [
            "mui.closePopup()$0"
        ],
        "prefix": "mdclosePopup",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.closePopups()": {
        "body": [
            "mui.closePopups()$0"
        ],
        "prefix": "mdclosePopups",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.confirm()": {
        "body": [
            "mui.confirm('${1:message}','${2:title}',['${3:取消}','${4:确认}'],function (${5:e}) {",
            "\t${5:e}.index$0",
            "}${6:,'div'})"
        ],
        "prefix": "mdconfirm",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.currentWebview": {
        "body": [
            "mui.currentWebview."
        ],
        "prefix": "mcurrent",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.each()": {
        "body": [
            "mui.each(${1:obj},function (${2:index},${3:element}) {",
            "\t$0",
            "})"
        ],
        "prefix": "meach",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.extend()": {
        "body": [
            "mui.extend(${1:'target'},${2:'source'},${3:'deep'/true/false})"
        ],
        "prefix": "mextend",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.fire()": {
        "body": [
            "mui.fire(${1:targetWebviewObj},'${2:event}',{${3:data}})"
        ],
        "prefix": "mfire",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.get()": {
        "body": [
            "mui.get('$1',{",
            "\t\t$2",
            "\t},function(${3:data}){",
            "\t\t$0",
            "\t},'${4:json}'",
            ");"
        ],
        "prefix": "mget",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.getJSON()": {
        "body": [
            "mui.getJSON('$1',{$2},function($3){",
            "\t\t$4",
            "\t}",
            ");$0"
        ],
        "prefix": "mjson",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.init": {
        "body": [
            "mui.init({$0})"
        ],
        "prefix": "minit",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.init({侧滑返回})": {
        "body": [
            "mui.init({",
            "\tswipeBack:${1:true/false} ",
            ");$0"
        ],
        "prefix": "minswipeback",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.init({刷新组件})": {
        "body": [
            "mui.init({",
            "  pullRefresh : {",
            "    container:'#${1:refreshContainer}',",
            "    down : {",
            "      callback :${2:pullfresh}",
            "    },",
            "    up : {",
            "      callback :${3:pullfresh} ",
            "    }",
            "  }",
            "});$0"
        ],
        "prefix": "minpullRefresh",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.init({子页面})": {
        "body": [
            "mui.init({",
            "\tsubpages:[{",
            "\t  url:'${1:url}',",
            "      id:'${2:id}',",
            "      styles:{",
            "        $3",
            "      },",
            "      extras:{$4}",
            "\t}]",
            "})$0"
        ],
        "prefix": "minsubpage",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.init({手势事件})": {
        "body": [
            "mui.init({",
            "  \tgestureConfig:{",
            "\t   tap: ${1:true/false}, ",
            "\t   doubletap: ${2:true/false}, ",
            "\t   longtap: ${3:true/false}, ",
            "\t   swipe: ${4:true/false}, ",
            "\t   drag: ${5:true/false}, ",
            "\t   hold:${6:false/true},",
            "\t   release:${7:false/true}",
            "  \t}",
            "});$0"
        ],
        "prefix": "mingesture",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.init({按键绑定})": {
        "body": [
            "mui.init({",
            "\tkeyEventBind: {",
            "\t\tbackbutton: ${1:true/false},  ",
            "\t\tmenubutton: ${2:true/false}   ",
            "\t},",
            "})"
        ],
        "prefix": "minkeyevent",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.init({设置状态栏颜色})": {
        "body": [
            "mui.init({",
            "\tstatusBarBackground:'#${1:FFFFFF}'",
            "})"
        ],
        "prefix": "minstatusbar",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.init({重写窗口关闭逻辑})": {
        "body": [
            "mui.init({",
            "\tbeforeback:function () {",
            "\t\t$0",
            "\t}",
            "})"
        ],
        "prefix": "minbeforeback",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.init({预加载})": {
        "body": [
            "mui.init({",
            "\tpreloadPages:[{",
            "\t  url:'${1:url}',",
            "      id:'${2:id}',",
            "      styles:{",
            "        $3",
            "      },",
            "      extras:{$4}",
            "\t}]",
            "})$0"
        ],
        "prefix": "minpreload",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.init({预加载数量})": {
        "body": [
            "preloadLimit:${1:5}"
        ],
        "prefix": "minprelimit",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.later()": {
        "body": [
            "mui.later(function(){",
            "\t$2  ",
            "},${1:500/1000/1500/2000})"
        ],
        "prefix": "mlater",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.mask": {
        "body": [
            "var ${1:mask} = mui.createMask(function () {",
            "\t$2",
            "})",
            "${1:mask}.show()"
        ],
        "prefix": "mmask",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.off": {
        "body": [
            "mui('$1').off('${2:tap}','$3',function($4){",
            "  $0",
            "}) "
        ],
        "prefix": "mmoff",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.on": {
        "body": [
            "mui('$1').on('${2:tap}','$3',function($4){",
            "  $0",
            "}) "
        ],
        "prefix": "mmon",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.open": {
        "body": [
            "mui.openWindow('${1:url}','${2:id}',{$3})"
        ],
        "prefix": "mopen",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.os": {
        "body": [
            "mui.os."
        ],
        "prefix": "mos",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.plusReady()": {
        "body": [
            "mui.plusReady(function () {",
            "    $1",
            "})$0"
        ],
        "prefix": "mplusready",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.post()": {
        "body": [
            "mui.post('$1',{",
            "\t\t$2",
            "\t},function(${3:data}){",
            "\t\t$0",
            "\t},'${4:json}'",
            ");"
        ],
        "prefix": "mpost",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.preload()": {
        "body": [
            "mui.preload({",
            "\turl:'${1:url}',",
            "\tid:'${2:id}',",
            "\tstyles:{$3},//窗口参数",
            "\textras:{$4}//自定义扩展参数",
            "})$0"
        ],
        "prefix": "mpreload",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.prompt()": {
        "body": [
            " mui.prompt('${1:text}','${2:defaultText}','${3:title}',['${4:取消}','${5:确认}'],function (${6:e}) {",
            "    ${6:e}.index$0",
            "}${7:,'div'})"
        ],
        "prefix": "mdprompt",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.ready": {
        "body": [
            "mui.ready(function () {",
            "\t$0",
            "})"
        ],
        "prefix": "mready",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.scrollTo()": {
        "body": [
            "mui.scrollTo(${1:ypos},${2:duration},${3:/function () {",
            "    \t",
            "}}$0"
        ],
        "prefix": "mscrollto",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.toast()": {
        "body": [
            "mui.toast('${1:message}')$0"
        ],
        "prefix": "mdtoast",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.trigger()": {
        "body": [
            "mui.trigger(${1:dom},'${3:tap}'${4:,{a:'as'}})"
        ],
        "prefix": "mtrigger",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "navigator.userAgent;": {
        "body": [
            "navigator.userAgent"
        ],
        "prefix": "nuser",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "plus.Screen": {
        "body": [
            "plus.Screen."
        ],
        "prefix": "pScreen",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.accelerometer": {
        "body": [
            "plus.accelerometer."
        ],
        "prefix": "pacce",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.android": {
        "body": [
            "plus.android."
        ],
        "prefix": "pandroid",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.audio": {
        "body": [
            "plus.audio."
        ],
        "prefix": "paudio",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.barcode": {
        "body": [
            "plus.barcode."
        ],
        "prefix": "pbarcode",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.camera": {
        "body": [
            "plus.camera."
        ],
        "prefix": "pcamera",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.contacts": {
        "body": [
            "plus.contacts."
        ],
        "prefix": "pcontacts",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.device": {
        "body": [
            "plus.device."
        ],
        "prefix": "pdevice",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.display": {
        "body": [
            "plus.display."
        ],
        "prefix": "pdisplay",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.downloader": {
        "body": [
            "plus.downloader."
        ],
        "prefix": "pdown",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.gallery": {
        "body": [
            "plus.gallery."
        ],
        "prefix": "pgallery",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.geolocation": {
        "body": [
            "plus.geolocation."
        ],
        "prefix": "pgeolocation",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.io": {
        "body": [
            "plus.io."
        ],
        "prefix": "pio",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.ios": {
        "body": [
            "plus.ios."
        ],
        "prefix": "pios",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.key": {
        "body": [
            "plus.key."
        ],
        "prefix": "pkey",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.maps": {
        "body": [
            "plus.maps."
        ],
        "prefix": "pmaps",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.messaging": {
        "body": [
            "plus.messaging."
        ],
        "prefix": "pmessaging",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.nativeObj": {
        "body": [
            "plus.nativeObj."
        ],
        "prefix": "pnativeObj",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.nativeUI": {
        "body": [
            "plus.nativeUI."
        ],
        "prefix": "pnativeUI",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.nativeUI.alert": {
        "body": [
            "plus.nativeUI.alert($1)"
        ],
        "prefix": "pnalert",
        "project": "uni-app,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "plus.navigator": {
        "body": [
            "plus.navigatorsc."
        ],
        "prefix": "pnavigator",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.net": {
        "body": [
            "plus.net."
        ],
        "prefix": "pnet",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.networkinfo": {
        "body": [
            "plus.networkinfo."
        ],
        "prefix": "pnetworkinfo",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.oauth": {
        "body": [
            "plus.oauth."
        ],
        "prefix": "poauth",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.orientation": {
        "body": [
            "plus.orientation."
        ],
        "prefix": "porientation",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.os": {
        "body": [
            "plus.os."
        ],
        "prefix": "pos",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.payment": {
        "body": [
            "plus.payment."
        ],
        "prefix": "ppayment",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.proximity": {
        "body": [
            "plus.proximity."
        ],
        "prefix": "pproximity",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.push": {
        "body": [
            "plus.push."
        ],
        "prefix": "ppush",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.runtime": {
        "body": [
            "plus.runtime."
        ],
        "prefix": "pruntime",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.share": {
        "body": [
            "plus.share."
        ],
        "prefix": "pshare",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.speech": {
        "body": [
            "plus.speech.$0"
        ],
        "prefix": "pspeech",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.statistic": {
        "body": [
            "plus.statistic."
        ],
        "prefix": "pstatistic",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.storage": {
        "body": [
            "plus.storage."
        ],
        "prefix": "pstorage",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.uploader": {
        "body": [
            "plus.uploader."
        ],
        "prefix": "puploader",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.webview": {
        "body": [
            "plus.webview."
        ],
        "prefix": "pweb",
        "project": "uni-app,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.zip": {
        "body": [
            "plus.zip."
        ],
        "prefix": "pzip",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plusReady": {
        "body": [
            "function plusReady(){",
            "    $0",
            "}",
            "if (window.plus) {",
            "    plusReady()",
            "} else{",
            "    document.addEventListener('plusready',plusReady,false);",
            "}"
        ],
        "prefix": "pready",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "querySelector": {
        "body": [
            "document.querySelector('$1').$0"
        ],
        "prefix": "ds",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "querySelectoraddEventListener": {
        "body": [
            "document.querySelector('$1').addEventListener('${2:tap}',function ($3) {",
            "        $0",
            "})"
        ],
        "prefix": "dsa",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "return false": {
        "body": [
            "return false;"
        ],
        "prefix": "rfalse",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "return false;": {
        "body": [
            "return false;"
        ],
        "prefix": "rfalse",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "return true": {
        "body": [
            "return true;"
        ],
        "prefix": "rtrue",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "return true;": {
        "body": [
            "return true;"
        ],
        "prefix": "rtrue",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "return uniCloudFormatResponse": {
        "body": [
            "return {",
            "\terrCode: ${1:0},",
            "\terrMsg: '$2'",
            "}"
        ],
        "description": "return uniCloud format response",
        "prefix": "returnu",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setTimeout function": {
        "body": [
            "setTimeout(function() {$0}, ${1:10});"
        ],
        "prefix": "settimeout",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setup": {
        "body": [
            "setup(${1:props}, ${2:context}) {",
            "\t$0",
            "}"
        ],
        "prefix": "setup",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "switch_case": {
        "body": [
            "switch (${1}){",
            "\tcase ${2:value}:",
            "\t\tbreak;",
            "\tdefault:",
            "\t\tbreak;",
            "}"
        ],
        "prefix": "switchcase",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "try{}catch(e)": {
        "body": [
            "try{",
            "\t$0",
            "}catch(e){",
            "\t//TODO handle the exception",
            "}"
        ],
        "prefix": "trycatch",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "typeof": {
        "body": [
            "typeof($1)==\"${2:undefined}\""
        ],
        "prefix": "typeoff",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "typeof!": {
        "body": [
            "typeof($1)!=\"${2:undefined}\""
        ],
        "prefix": "typeof!",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uAlert": {
        "body": [
            "uni.showModal({",
            "\tcontent: '$1',",
            "\tshowCancel: false",
            "});"
        ],
        "prefix": "ualert",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uConfirm": {
        "body": [
            "uni.showModal({",
            "\tcontent: '$1',",
            "\tsuccess: function (res) {",
            "\t\tif (res.confirm) {",
            "\t\t\t$2",
            "\t\t} else if (res.cancel) {",
            "\t\t\t$3",
            "\t\t}",
            "\t}",
            "});"
        ],
        "prefix": "uconfirm",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uGetLocation": {
        "body": [
            "uni.getLocation({",
            "\ttype: 'wgs84',",
            "\tsuccess: res => {$0}",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ugetlocation",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uLogin": {
        "body": [
            "uni.login({",
            "\tprovider: '$1',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ulogin",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uNavigateBack": {
        "body": [
            "uni.navigateBack({",
            "\tdelta: $1",
            "});"
        ],
        "prefix": "unavigateback",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uNavigateTo": {
        "body": [
            "uni.navigateTo({",
            "\turl: '$1',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "unavigateto",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uPay": {
        "body": [
            "uni.requestPayment({",
            "\tprovider: '$1',",
            "\torderInfo: '$2',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "upay",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uRedirectTo": {
        "body": [
            "uni.redirectTo({",
            "\turl: '$1',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "uredirectto",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uRequest": {
        "body": [
            "uni.request({",
            "\turl: '$1',",
            "\tmethod: 'GET$2',",
            "\tdata: {$3},",
            "\tsuccess: res => {$0},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "urequest",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uRequestPayment": {
        "body": [
            "uni.requestPayment({",
            "\tprovider: '$1',",
            "\torderInfo: '$2',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "urequestpayment",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShare": {
        "body": [
            "uni.share({",
            "\tprovider: '$1',",
            "\ttype: 0$2,",
            "\ttitle: '$3',",
            "\thref: '$4',",
            "\timageUrl: '$5',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ushare",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowActionSheet": {
        "body": [
            "uni.showActionSheet({",
            "\titemList: $1,",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ushowactionsheet",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowLoading": {
        "body": [
            "uni.showLoading({",
            "\ttitle: '$1',",
            "\tmask: false",
            "});"
        ],
        "prefix": "ushowloading",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowModal": {
        "body": [
            "uni.showModal({",
            "\ttitle: '$1',",
            "\tcontent: '$2',",
            "\tshowCancel: false$3,",
            "\tcancelText: '$4',",
            "\tconfirmText: '$5',",
            "\tsuccess: res => {$0},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ushowmodal",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowToast": {
        "body": [
            "uni.showToast({",
            "\ttitle: '$1'",
            "});"
        ],
        "prefix": "ushowtoast",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowToastNoIcon": {
        "body": [
            "uni.showToast({",
            "\ttitle: '$1',",
            "\ticon: 'none'",
            "});"
        ],
        "prefix": "ushowtoastnoicon",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uStartPullDownRefresh": {
        "body": [
            "uni.startPullDownRefresh({",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ustartpulldownrefresh",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uStopPullDownRefresh": {
        "body": [
            "uni.stopPullDownRefresh();"
        ],
        "prefix": "ustoppulldownrefresh",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uniCloud http request": {
        "body": [
            "const $1 = await uniCloud.httpclient.request('$2', {",
            "\tdataType: 'json'",
            "})"
        ],
        "description": "uniCloud http request with json decode",
        "prefix": "uhttp",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uniCloud.database": {
        "body": [
            "const db = uniCloud.database()"
        ],
        "prefix": "constdb",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uniCloud.importObject": {
        "body": [
            "const $1 = uniCloud.importObject('$2')"
        ],
        "description": "uniCloud.importObject('ObjectName')",
        "prefix": "cco",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "use strict": {
        "body": [
            "\"use strict\""
        ],
        "prefix": "use",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var a=[];": {
        "body": [
            "var ${1:a}=[$2];"
        ],
        "prefix": "vara",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var c = canvas": {
        "body": [
            "var ${2:c} = document.getElementById(\"$1\").getContext(\"2d\");"
        ],
        "prefix": "varc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "var currentWebview": {
        "body": [
            "var currentWebview = this.\\$scope.\\$getAppWebview()"
        ],
        "prefix": "varcw",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var i=0;": {
        "body": [
            "var ${1:i}=${2:0};"
        ],
        "prefix": "vari",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var l=a.length;": {
        "body": [
            "var ${1:l}=${2:a}.length;"
        ],
        "prefix": "varl",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var s=\"\";": {
        "body": [
            "var ${1:s}=\"$2\";"
        ],
        "prefix": "vars",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var xhr": {
        "body": [
            "var ${1:xhr} = new XMLHttpRequest();",
            "xhr.open(\"${2:POST}\",\"$3\",${4:true});"
        ],
        "prefix": "varxhr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "while": {
        "body": [
            "while (${1:condition}){",
            "\t$0",
            "}"
        ],
        "prefix": "whilee",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "windowaddEventListener": {
        "body": [
            "window.addEventListener('${1:scroll}',function ($2) {",
            "        $0",
            "})"
        ],
        "prefix": "wad",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "with": {
        "body": [
            "with ($1){",
            "\t$0",
            "}"
        ],
        "prefix": "withh",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    }
}
(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.preload()": {
        "body": [
            "mui.preload({",
            "\turl:'${1:url}',",
            "\tid:'${2:id}',",
            "\tstyles:{$3},//窗口参数",
            "\textras:{$4}//自定义扩展参数",
            "})$0"
        ],
        "prefix": "mpreload",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "mui.prompt()": {
        "body": [
            " mui.prompt('${1:text}','${2:defaultText}','${3:title}',['${4:取消}','${5:确认}'],function (${6:e}) {",
            "    ${6:e}.index$0",
            "}${7:,'div'})"
        ],
        "prefix": "mdprompt",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.ready": {
        "body": [
            "mui.ready(function () {",
            "\t$0",
            "})"
        ],
        "prefix": "mready",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.scrollTo()": {
        "body": [
            "mui.scrollTo(${1:ypos},${2:duration},${3:/function () {",
            "    \t",
            "}}$0"
        ],
        "prefix": "mscrollto",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.toast()": {
        "body": [
            "mui.toast('${1:message}')$0"
        ],
        "prefix": "mdtoast",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "mui.trigger()": {
        "body": [
            "mui.trigger(${1:dom},'${3:tap}'${4:,{a:'as'}})"
        ],
        "prefix": "mtrigger",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "namedFunction": {
        "body": [
            "const ${1:name} = (${2:params}) => {",
            "\t${3}",
            "}",
            ""
        ],
        "description": "Creates a named function in ES7 syntax",
        "prefix": "nfn",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "navigator.userAgent;": {
        "body": [
            "navigator.userAgent"
        ],
        "prefix": "nuser",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "plus.Screen": {
        "body": [
            "plus.Screen."
        ],
        "prefix": "pScreen",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.accelerometer": {
        "body": [
            "plus.accelerometer."
        ],
        "prefix": "pacce",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.android": {
        "body": [
            "plus.android."
        ],
        "prefix": "pandroid",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.audio": {
        "body": [
            "plus.audio."
        ],
        "prefix": "paudio",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.barcode": {
        "body": [
            "plus.barcode."
        ],
        "prefix": "pbarcode",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.camera": {
        "body": [
            "plus.camera."
        ],
        "prefix": "pcamera",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.contacts": {
        "body": [
            "plus.contacts."
        ],
        "prefix": "pcontacts",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.device": {
        "body": [
            "plus.device."
        ],
        "prefix": "pdevice",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.display": {
        "body": [
            "plus.display."
        ],
        "prefix": "pdisplay",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.downloader": {
        "body": [
            "plus.downloader."
        ],
        "prefix": "pdown",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.gallery": {
        "body": [
            "plus.gallery."
        ],
        "prefix": "pgallery",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.geolocation": {
        "body": [
            "plus.geolocation."
        ],
        "prefix": "pgeolocation",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.io": {
        "body": [
            "plus.io."
        ],
        "prefix": "pio",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.ios": {
        "body": [
            "plus.ios."
        ],
        "prefix": "pios",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.key": {
        "body": [
            "plus.key."
        ],
        "prefix": "pkey",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.maps": {
        "body": [
            "plus.maps."
        ],
        "prefix": "pmaps",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.messaging": {
        "body": [
            "plus.messaging."
        ],
        "prefix": "pmessaging",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.nativeObj": {
        "body": [
            "plus.nativeObj."
        ],
        "prefix": "pnativeObj",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.nativeUI": {
        "body": [
            "plus.nativeUI."
        ],
        "prefix": "pnativeUI",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.nativeUI.alert": {
        "body": [
            "plus.nativeUI.alert($1)"
        ],
        "prefix": "pnalert",
        "project": "uni-app,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "plus.navigator": {
        "body": [
            "plus.navigatorsc."
        ],
        "prefix": "pnavigator",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.net": {
        "body": [
            "plus.net."
        ],
        "prefix": "pnet",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.networkinfo": {
        "body": [
            "plus.networkinfo."
        ],
        "prefix": "pnetworkinfo",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.oauth": {
        "body": [
            "plus.oauth."
        ],
        "prefix": "poauth",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.orientation": {
        "body": [
            "plus.orientation."
        ],
        "prefix": "porientation",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.os": {
        "body": [
            "plus.os."
        ],
        "prefix": "pos",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.payment": {
        "body": [
            "plus.payment."
        ],
        "prefix": "ppayment",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.proximity": {
        "body": [
            "plus.proximity."
        ],
        "prefix": "pproximity",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.push": {
        "body": [
            "plus.push."
        ],
        "prefix": "ppush",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.runtime": {
        "body": [
            "plus.runtime."
        ],
        "prefix": "pruntime",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.share": {
        "body": [
            "plus.share."
        ],
        "prefix": "pshare",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.speech": {
        "body": [
            "plus.speech.$0"
        ],
        "prefix": "pspeech",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.statistic": {
        "body": [
            "plus.statistic."
        ],
        "prefix": "pstatistic",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.storage": {
        "body": [
            "plus.storage."
        ],
        "prefix": "pstorage",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.uploader": {
        "body": [
            "plus.uploader."
        ],
        "prefix": "puploader",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.webview": {
        "body": [
            "plus.webview."
        ],
        "prefix": "pweb",
        "project": "uni-app,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plus.zip": {
        "body": [
            "plus.zip."
        ],
        "prefix": "pzip",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "plusReady": {
        "body": [
            "function plusReady(){",
            "    $0",
            "}",
            "if (window.plus) {",
            "    plusReady()",
            "} else{",
            "    document.addEventListener('plusready',plusReady,false);",
            "}"
        ],
        "prefix": "pready",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "promise": {
        "body": [
            "return new Promise((resolve, reject) => {",
            "\t${1}",
            "})",
            ""
        ],
        "description": "Creates and returns a new Promise in the standard ES7 syntax",
        "prefix": "prom",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeAny": {
        "body": [
            "PropTypes.any,"
        ],
        "description": "Any prop type",
        "prefix": "ptany",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeArray": {
        "body": [
            "PropTypes.array,"
        ],
        "description": "Array prop type",
        "prefix": "pta",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeArrayOf": {
        "body": [
            "PropTypes.arrayOf($0),"
        ],
        "description": "An array of a certain type",
        "prefix": "ptao",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeArrayOfRequired": {
        "body": [
            "PropTypes.arrayOf($0).isRequired,"
        ],
        "description": "An array of a certain type required",
        "prefix": "ptaor",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeArrayRequired": {
        "body": [
            "PropTypes.array.isRequired,"
        ],
        "description": "Array prop type required",
        "prefix": "ptar",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeBool": {
        "body": [
            "PropTypes.bool,"
        ],
        "description": "Bool prop type",
        "prefix": "ptb",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeBoolRequired": {
        "body": [
            "PropTypes.bool.isRequired,"
        ],
        "description": "Bool prop type required",
        "prefix": "ptbr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeElement": {
        "body": [
            "PropTypes.element,"
        ],
        "description": "React element prop type",
        "prefix": "ptel",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeElementRequired": {
        "body": [
            "PropTypes.element.isRequired,"
        ],
        "description": "React element prop type required",
        "prefix": "ptelr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeEnum": {
        "body": [
            "PropTypes.oneOf(['$0']),"
        ],
        "description": "Prop type limited to specific values by treating it as an enum",
        "prefix": "pte",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeEnumRequired": {
        "body": [
            "PropTypes.oneOf(['$0']).isRequired,"
        ],
        "description": "Prop type limited to specific values by treating it as an enum required",
        "prefix": "pter",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeExact": {
        "body": [
            "PropTypes.exact({",
            "\t$0",
            "}),"
        ],
        "description": "An object with warnings on extra properties",
        "prefix": "ptex",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeExactRequired": {
        "body": [
            "PropTypes.exact({",
            "\t$0",
            "}).isRequired,"
        ],
        "description": "An object with warnings on extra properties required",
        "prefix": "ptexr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeFunc": {
        "body": [
            "PropTypes.func,"
        ],
        "description": "Func prop type",
        "prefix": "ptf",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeFuncRequired": {
        "body": [
            "PropTypes.func.isRequired,"
        ],
        "description": "Func prop type required",
        "prefix": "ptfr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeInstanceOf": {
        "body": [
            "PropTypes.instanceOf($0),"
        ],
        "description": "Is an instance of a class prop type",
        "prefix": "pti",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeInstanceOfRequired": {
        "body": [
            "PropTypes.instanceOf($0).isRequired,"
        ],
        "description": "Is an instance of a class prop type required",
        "prefix": "ptir",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeNode": {
        "body": [
            "PropTypes.node,"
        ],
        "description": "Anything that can be rendered: numbers, strings, elements or an array",
        "prefix": "ptnd",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeNodeRequired": {
        "body": [
            "PropTypes.node.isRequired,"
        ],
        "description": "Anything that can be rendered: numbers, strings, elements or an array required",
        "prefix": "ptndr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeNumber": {
        "body": [
            "PropTypes.number,"
        ],
        "description": "Number prop type",
        "prefix": "ptn",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeNumberRequired": {
        "body": [
            "PropTypes.number.isRequired,"
        ],
        "description": "Number prop type required",
        "prefix": "ptnr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeObject": {
        "body": [
            "PropTypes.object,"
        ],
        "description": "Object prop type",
        "prefix": "pto",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeObjectOf": {
        "body": [
            "PropTypes.objectOf($0),"
        ],
        "description": "An object with property values of a certain type",
        "prefix": "ptoo",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeObjectOfRequired": {
        "body": [
            "PropTypes.objectOf($0).isRequired,"
        ],
        "description": "An object with property values of a certain type required",
        "prefix": "ptoor",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeObjectRequired": {
        "body": [
            "PropTypes.object.isRequired,"
        ],
        "description": "Object prop type required",
        "prefix": "ptor",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeOneOfType": {
        "body": [
            "PropTypes.oneOfType([",
            "\t$0",
            "]),"
        ],
        "description": "An object that could be one of many types",
        "prefix": "ptet",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeOneOfTypeRequired": {
        "body": [
            "PropTypes.oneOfType([",
            "\t$0",
            "]).isRequired,"
        ],
        "description": "An object that could be one of many types required",
        "prefix": "ptetr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeShape": {
        "body": [
            "PropTypes.shape({",
            "\t$0",
            "}),"
        ],
        "description": "An object taking on a particular shape",
        "prefix": "ptsh",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeShapeRequired": {
        "body": [
            "PropTypes.shape({",
            "\t$0",
            "}).isRequired,"
        ],
        "description": "An object taking on a particular shape required",
        "prefix": "ptshr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeString": {
        "body": [
            "PropTypes.string,"
        ],
        "description": "String prop type",
        "prefix": "pts",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propTypeStringRequired": {
        "body": [
            "PropTypes.string.isRequired,"
        ],
        "description": "String prop type required",
        "prefix": "ptsr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propertyGet": {
        "body": [
            "get ${1:propertyName}() {",
            "\treturn this.${0}",
            "}",
            ""
        ],
        "description": "Creates a getter property inside a class in ES7 syntax",
        "prefix": "pge",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propertySet": {
        "body": [
            "set ${1:propertyName}(${2:value}) {",
            "\t${0}",
            "}",
            ""
        ],
        "description": "Creates a setter property inside a class in ES7 syntax",
        "prefix": "pse",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "propertyset": {
        "body": [
            "set ${1:propertyName}(${2:value}) {\n\t${0};\n}"
        ],
        "description": "Creates a setter property inside a class in ES6 syntax",
        "prefix": "pse",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "querySelector": {
        "body": [
            "document.querySelector('$1').$0"
        ],
        "prefix": "ds",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "querySelectoraddEventListener": {
        "body": [
            "document.querySelector('$1').addEventListener('${2:tap}',function ($3) {",
            "        $0",
            "})"
        ],
        "prefix": "dsa",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "reactArrowFunctionComponent": {
        "body": [
            "import React from 'react'",
            "",
            "export const ${1:${TM_FILENAME_BASE}} = () => {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "}",
            ""
        ],
        "description": "Creates a React Arrow Function Component with ES7 module system",
        "prefix": "rafc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactArrowFunctionComponentWithPropTypes": {
        "body": [
            "import React from 'react'",
            "import PropTypes from 'prop-types'",
            "",
            "const ${1:${TM_FILENAME_BASE}} = props => {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "}",
            "",
            "${1:${TM_FILENAME_BASE}}.propTypes = {",
            "",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            ""
        ],
        "description": "Creates a React Arrow Function Component with ES7 module system with PropTypes",
        "prefix": "rafcp",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactArrowFunctionExportComponent": {
        "body": [
            "import React from 'react'",
            "",
            "const ${1:${TM_FILENAME_BASE}} = () => {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            ""
        ],
        "description": "Creates a React Arrow Function Component with ES7 module system",
        "prefix": "rafce",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactClassCompoment": {
        "body": [
            "import React, { Component } from 'react'",
            "",
            "export default class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<div>",
            "\t\t\t\t$0",
            "\t\t\t</div>",
            "\t\t)",
            "\t}",
            "}",
            ""
        ],
        "description": "Creates a React component class with ES7 module system",
        "prefix": "rcc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactClassCompomentPropTypes": {
        "body": [
            "import React, { Component } from 'react'",
            "import PropTypes from 'prop-types'",
            "",
            "export default class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\tstatic propTypes = {",
            "\t\t${2:prop}: ${3:PropTypes}",
            "\t}",
            "",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<div>",
            "\t\t\t\t$0",
            "\t\t\t</div>",
            "\t\t)",
            "\t}",
            "}",
            ""
        ],
        "description": "Creates a React component class with PropTypes and ES7 module system",
        "prefix": "rccp",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactClassCompomentRedux": {
        "body": [
            "import React, { Component } from 'react'",
            "import { connect } from 'react-redux'",
            "",
            "export class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<div>",
            "\t\t\t\t$0",
            "\t\t\t</div>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "const mapStateToProps = (state) => ({",
            "\t",
            "})",
            "",
            "const mapDispatchToProps = {",
            "\t",
            "}",
            "",
            "export default connect(mapStateToProps, mapDispatchToProps)(${1:${TM_FILENAME_BASE}})",
            ""
        ],
        "description": "Creates a React component class with connected redux and ES7 module system",
        "prefix": "rcredux",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactClassCompomentReduxPropTypes": {
        "body": [
            "import React, { Component } from 'react'",
            "import PropTypes from 'prop-types'",
            "import { connect } from 'react-redux'",
            "",
            "export class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\tstatic propTypes = {",
            "\t\t${2:prop}: ${3:PropTypes}",
            "\t}",
            "",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<div>",
            "\t\t\t\t$0",
            "\t\t\t</div>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "const mapStateToProps = (state) => ({",
            "\t",
            "})",
            "",
            "const mapDispatchToProps = {",
            "\t",
            "}",
            "",
            "export default connect(mapStateToProps, mapDispatchToProps)(${1:${TM_FILENAME_BASE}})",
            ""
        ],
        "description": "Creates a React component class with PropTypes with connected redux and ES7 module system",
        "prefix": "rcreduxp",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactClassExportComponent": {
        "body": [
            "import React, { Component } from 'react'",
            "",
            "export class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<div>",
            "\t\t\t\t$0",
            "\t\t\t</div>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            ""
        ],
        "description": "Creates a React component class with ES7 module system",
        "prefix": "rce",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactClassExportComponentWithPropTypes": {
        "body": [
            "import React, { Component } from 'react'",
            "import PropTypes from 'prop-types'",
            "",
            "export class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\tstatic propTypes = {",
            "",
            "\t}",
            "",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<div>",
            "\t\t\t\t$0",
            "\t\t\t</div>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            ""
        ],
        "description": "Creates a React component class with ES7 module system",
        "prefix": "rcep",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactClassExportPureComponent": {
        "body": [
            "import React, { PureComponent } from 'react'",
            "",
            "export class ${1:${TM_FILENAME_BASE}} extends PureComponent {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<div>",
            "\t\t\t\t$0",
            "\t\t\t</div>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "export default ${1:$TM_FILENAME_BASE}",
            ""
        ],
        "description": "Creates a React pure component class with ES7 module system export",
        "prefix": "rpce",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactClassPureComponent": {
        "body": [
            "import React, { PureComponent } from 'react'",
            "",
            "export default class ${1:${TM_FILENAME_BASE}} extends PureComponent {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<div>",
            "\t\t\t\t$0",
            "\t\t\t</div>",
            "\t\t)",
            "\t}",
            "}",
            ""
        ],
        "description": "Creates a React pure component class with ES7 module system",
        "prefix": "rpc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactClassPureComponentWithPropTypes": {
        "body": [
            "import React, { PureComponent } from 'react'",
            "import PropTypes from 'prop-types'",
            "",
            "export default class ${1:${TM_FILENAME_BASE}} extends PureComponent {",
            "\tstatic propTypes = {",
            "",
            "\t}",
            "",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<div>",
            "\t\t\t\t$0",
            "\t\t\t</div>",
            "\t\t)",
            "\t}",
            "}",
            ""
        ],
        "description": "Creates a React component class with ES7 module system",
        "prefix": "rpcp",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactFunctionMemoComponent": {
        "body": [
            "import React, { memo } from 'react'",
            "",
            "export default memo(function ${1:${TM_FILENAME_BASE}}() {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "})",
            ""
        ],
        "description": "Creates a React Memo Function Component with ES7 module system",
        "prefix": "rmc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactFunctionMemoComponentWithPropTypes": {
        "body": [
            "import React, { memo } from 'react'",
            "import PropTypes from 'prop-types'",
            "",
            "const ${1:${TM_FILENAME_BASE}} = memo(function ${1:${TM_FILENAME_BASE}}(props) {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "})",
            "",
            "${1:${TM_FILENAME_BASE}}.propTypes = {",
            "",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            ""
        ],
        "description": "Creates a React Memo Function Component with ES7 module system with PropTypes",
        "prefix": "rmcp",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactFunctionalCompomentRedux": {
        "body": [
            "import React, { Component } from 'react'",
            "import { connect } from 'react-redux'",
            "",
            "export const ${1:${TM_FILENAME_BASE}} = () => {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "}",
            "",
            "const mapStateToProps = (state) => ({",
            "\t",
            "})",
            "",
            "const mapDispatchToProps = {",
            "\t",
            "}",
            "",
            "export default connect(mapStateToProps, mapDispatchToProps)(${1:${TM_FILENAME_BASE}})",
            ""
        ],
        "description": "Creates a React functional component with connected redux and ES7 module system",
        "prefix": "rfcredux",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactFunctionalCompomentReduxPropTypes": {
        "body": [
            "import React, { Component } from 'react'",
            "import PropTypes from 'prop-types'",
            "import { connect } from 'react-redux'",
            "",
            "export const ${1:${TM_FILENAME_BASE}} = () => {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "}",
            "",
            "${1:${TM_FILENAME_BASE}}.propTypes = {",
            "\t${2:prop}: ${3:PropTypes}",
            "}",
            "",
            "const mapStateToProps = (state) => ({",
            "\t",
            "})",
            "",
            "const mapDispatchToProps = {",
            "\t",
            "}",
            "",
            "export default connect(mapStateToProps, mapDispatchToProps)(${1:${TM_FILENAME_BASE}})",
            ""
        ],
        "description": "Creates a React functional component with PropTypes with connected redux and ES7 module system",
        "prefix": "rfcreduxp",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactFunctionalComponent": {
        "body": [
            "import React from 'react'",
            "",
            "export default function ${1:${TM_FILENAME_BASE}}() {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "}",
            ""
        ],
        "description": "Creates a React Functional Component with ES7 module system",
        "prefix": "rfc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactFunctionalComponentWithPropTypes": {
        "body": [
            "import React from 'react'",
            "import PropTypes from 'prop-types'",
            "",
            "function ${1:${TM_FILENAME_BASE}}(props) {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "}",
            "",
            "${1:${TM_FILENAME_BASE}}.propTypes = {",
            "",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            "",
            ""
        ],
        "description": "Creates a React Functional Component with ES7 module system with PropTypes",
        "prefix": "rfcp",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactFunctionalExportComponent": {
        "body": [
            "import React from 'react'",
            "",
            "function ${1:${TM_FILENAME_BASE}}() {",
            "\treturn (",
            "\t\t<div>",
            "\t\t\t$0",
            "\t\t</div>",
            "\t)",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            ""
        ],
        "description": "Creates a React Functional Component with ES7 module system",
        "prefix": "rfce",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeClassComponentRedux": {
        "body": [
            "import React, { Component } from 'react'",
            "import { View, Text } from 'react-native'",
            "import PropTypes from 'prop-types'",
            "import { connect } from 'react-redux'",
            "",
            "export class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\tstatic propTypes = {",
            "\t\t${2:prop}: ${3:PropTypes}",
            "\t}",
            "",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<View>",
            "\t\t\t\t<Text> ${2:textInComponent} </Text>",
            "\t\t\t</View>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "const mapStateToProps = (state) => ({",
            "\t",
            "})",
            "",
            "const mapDispatchToProps = {",
            "\t",
            "}",
            "",
            "export default connect(mapStateToProps, mapDispatchToProps)(${1:${TM_FILENAME_BASE}})",
            ""
        ],
        "description": "Creates a React Native component class with PropTypes with connected redux and ES7 module system",
        "prefix": "rncredux",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeComponent": {
        "body": [
            "import React, { Component } from 'react'",
            "import { Text, View } from 'react-native'",
            "",
            "export default class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<View>",
            "\t\t\t\t<Text> ${2:textInComponent} </Text>",
            "\t\t\t</View>",
            "\t\t)",
            "\t}",
            "}",
            ""
        ],
        "prefix": "rnc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeComponentExport": {
        "body": [
            "import React, { Component } from 'react'",
            "import { Text, View } from 'react-native'",
            "",
            "export class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<View>",
            "\t\t\t\t<Text> ${2:textInComponent} </Text>",
            "\t\t\t</View>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            ""
        ],
        "prefix": "rnce",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeComponentWithStyles": {
        "body": [
            "import React, { Component } from 'react'",
            "import { Text, StyleSheet, View } from 'react-native'",
            "",
            "export default class ${1:${TM_FILENAME_BASE}} extends Component {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<View>",
            "\t\t\t\t<Text> ${2:textInComponent} </Text>",
            "\t\t\t</View>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "const styles = StyleSheet.create({})",
            ""
        ],
        "prefix": "rncs",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeFunctionalComponent": {
        "body": [
            "import React from 'react'",
            "import { View, Text } from 'react-native'",
            "",
            "export default function ${1:${TM_FILENAME_BASE}}() {",
            "\treturn (",
            "\t\t<View>",
            "\t\t\t<Text>$0</Text>",
            "\t\t</View>",
            "\t)",
            "}",
            ""
        ],
        "prefix": "rnf",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeFunctionalComponentWithStyles": {
        "body": [
            "import React from 'react'",
            "import { StyleSheet, Text, View } from 'react-native'",
            "",
            "export default function ${1:${TM_FILENAME_BASE}}() {",
            "\treturn (",
            "\t\t<View>",
            "\t\t\t<Text>$0</Text>",
            "\t\t</View>",
            "\t)",
            "}",
            "",
            "const styles = StyleSheet.create({})",
            ""
        ],
        "prefix": "rnfs",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeFunctionalExportComponent": {
        "body": [
            "import React from 'react'",
            "import { View, Text } from 'react-native'",
            "",
            "const ${1:${TM_FILENAME_BASE}} = () => {",
            "\treturn (",
            "\t\t<View>",
            "\t\t\t<Text>$0</Text>",
            "\t\t</View>",
            "\t)",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            ""
        ],
        "prefix": "rnfe",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeFunctionalExportComponentWithStyles": {
        "body": [
            "import React from 'react'",
            "import { StyleSheet, Text, View } from 'react-native'",
            "",
            "const ${1:${TM_FILENAME_BASE}} = () => {",
            "\treturn (",
            "\t\t<View>",
            "\t\t\t<Text>$0</Text>",
            "\t\t</View>",
            "\t)",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            "",
            "const styles = StyleSheet.create({})",
            ""
        ],
        "prefix": "rnfes",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeImport": {
        "body": [
            "import { ${1:moduleName} } from 'react-native'"
        ],
        "prefix": "imrn",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativePureComponent": {
        "body": [
            "import React, { PureComponent } from 'react'",
            "import { Text, View } from 'react-native'",
            "",
            "export default class ${1:${TM_FILENAME_BASE}} extends PureComponent {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<View>",
            "\t\t\t\t<Text> ${2:textInComponent} </Text>",
            "\t\t\t</View>",
            "\t\t)",
            "\t}",
            "}",
            ""
        ],
        "prefix": "rnpc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativePureComponentExport": {
        "body": [
            "import React, { PureComponent } from 'react'",
            "import { Text, View } from 'react-native'",
            "",
            "export class ${1:${TM_FILENAME_BASE}} extends PureComponent {",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<View>",
            "\t\t\t\t<Text> ${2:textInComponent} </Text>",
            "\t\t\t</View>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "export default ${1:${TM_FILENAME_BASE}}",
            ""
        ],
        "prefix": "rnpce",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reactNativeStyles": {
        "body": [
            "const styles = StyleSheet.create({",
            "\t${1:style}",
            "})",
            ""
        ],
        "prefix": "rnstyle",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reduxAction": {
        "body": [
            "export const ${1:actionName} = (payload) => ({",
            "\ttype: ${3:type},",
            "\tpayload",
            "})",
            ""
        ],
        "prefix": "rxaction",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reduxConst": {
        "body": [
            "export const ${1:constantName} = '${1:constantName}'"
        ],
        "prefix": "rxconst",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reduxReducer": {
        "body": [
            "const initialState = {",
            "",
            "}",
            "",
            "export default (state = initialState, { type, payload }) => {",
            "\tswitch (type) {",
            "",
            "\tcase ${1:typeName}:",
            "\t\treturn { ...state, ...payload }",
            "",
            "\tdefault:",
            "\t\treturn state",
            "\t}",
            "}",
            ""
        ],
        "prefix": "rxreducer",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "reduxSelector": {
        "body": [
            "import { createSelector } from 'reselect'",
            "",
            "export const ${1:selectorName} = state => state.${2:selector}",
            ""
        ],
        "prefix": "rxselect",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "require": {
        "body": [
            "require('${1:package}');"
        ],
        "description": "Require a package",
        "prefix": "rqr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "requireToConst": {
        "body": [
            "const ${1:packageName} = require('${1:package}');$0"
        ],
        "description": "Require a package to const",
        "prefix": "req",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "return false": {
        "body": [
            "return false;"
        ],
        "prefix": "rfalse",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "return false;": {
        "body": [
            "return false;"
        ],
        "prefix": "rfalse",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "return true": {
        "body": [
            "return true;"
        ],
        "prefix": "rtrue",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "return true;": {
        "body": [
            "return true;"
        ],
        "prefix": "rtrue",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "return uniError": {
        "body": [
            "return {",
            "\terrSubject: '$1',",
            "\terrCode: ${2:0},",
            "\terrMsg: '$3'",
            "}"
        ],
        "description": "return uni error object",
        "prefix": "returnu",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setInterval": {
        "body": [
            "setInterval(() => {",
            "\t${2}",
            "}, ${0:intervalInms})",
            ""
        ],
        "description": "Executes the given function at specified intervals in ES7 syntax",
        "prefix": "sti",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setTimeOut": {
        "body": [
            "setTimeout(() => {",
            "\t${2}",
            "}, ${1:delayInms})",
            ""
        ],
        "description": "Executes the given function after the specified delay in ES7 syntax",
        "prefix": "sto",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setTimeout function": {
        "body": [
            "setTimeout(function() {$0}, ${1:10});"
        ],
        "prefix": "settimeout",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setup": {
        "body": [
            "setup(${1:props}, ${2:context}) {",
            "\t$0",
            "}"
        ],
        "prefix": "setup",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setupReactComponentTestWithRedux": {
        "body": [
            "import React from 'react'",
            "import renderer from 'react-test-renderer'",
            "import { Provider } from 'react-redux'",
            "",
            "import store from 'src/store'",
            "import { ${1:${TM_FILENAME_BASE}} } from '../${1:${TM_FILENAME_BASE}}'",
            "",
            "describe('<${1:${TM_FILENAME_BASE}} />', () => {",
            "\tconst defaultProps = {}",
            "\tconst wrapper = renderer.create(",
            "\t\t<Provider store={store}>",
            "\t\t <${1:${TM_FILENAME_BASE}} {...defaultProps} />",
            "\t\t</Provider>,",
            "\t)",
            "",
            "\ttest('render', () => {",
            "\t\texpect(wrapper).toMatchSnapshot()",
            "\t})",
            "})",
            ""
        ],
        "description": "Create test component",
        "prefix": "srtest",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setupReactNativeTest": {
        "body": [
            "import 'react-native'",
            "import React from 'react'",
            "import renderer from 'react-test-renderer'",
            "",
            "import ${1:${TM_FILENAME_BASE}} from '../${1:${TM_FILENAME_BASE}}'",
            "",
            "describe('<${1:${TM_FILENAME_BASE}} />', () => {",
            "\tconst defaultProps = {}",
            "\tconst wrapper = renderer.create(<${1:${TM_FILENAME_BASE}} {...defaultProps} />)",
            "",
            "\ttest('render', () => {",
            "\t\texpect(wrapper).toMatchSnapshot()",
            "\t})",
            "})",
            ""
        ],
        "prefix": "sntest",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setupReactNativeTestWithRedux": {
        "body": [
            "import 'react-native'",
            "import React from 'react'",
            "import renderer from 'react-test-renderer'",
            "import { Provider } from 'react-redux'",
            "",
            "import store from 'src/store'",
            "import ${1:${TM_FILENAME_BASE}} from '../${1:${TM_FILENAME_BASE}}'",
            "",
            "describe('<${1:${TM_FILENAME_BASE}} />', () => {",
            "\tconst defaultProps = {}",
            "\tconst wrapper = renderer.create(",
            "\t\t<Provider store={store}>",
            "\t\t\t<${1:${TM_FILENAME_BASE}} {...defaultProps} />",
            "\t\t</Provider>,",
            "\t)",
            "",
            "\ttest('render', () => {",
            "\t\texpect(wrapper).toMatchSnapshot()",
            "\t})",
            "})",
            ""
        ],
        "prefix": "snrtest",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "setupReactTest": {
        "body": [
            "import React from 'react'",
            "import renderer from 'react-test-renderer'",
            "",
            "import { ${1:${TM_FILENAME_BASE}} } from '../${1:${TM_FILENAME_BASE}}'",
            "",
            "describe('<${1:${TM_FILENAME_BASE}} />', () => {",
            "\tconst defaultProps = {}",
            "\tconst wrapper = renderer.create(<${1:${TM_FILENAME_BASE}} {...defaultProps} />)",
            "",
            "\ttest('render', () => {",
            "\t\texpect(wrapper).toMatchSnapshot()",
            "\t})",
            "})",
            ""
        ],
        "prefix": "stest",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "shouldComponentUpdate": {
        "body": [
            "shouldComponentUpdate(nextProps, nextState) {",
            "\t$0",
            "}",
            ""
        ],
        "description": "Invoked before rendering when new props or state are being received. ",
        "prefix": "scu",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "staticPropTpyes": {
        "body": [
            "static propTypes = {",
            "$0",
            "}",
            ""
        ],
        "prefix": "ptypes",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "switch_case": {
        "body": [
            "switch (${1}){",
            "\tcase ${2:value}:",
            "\t\tbreak;",
            "\tdefault:",
            "\t\tbreak;",
            "}"
        ],
        "prefix": "switchcase",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "testAsyncBlock": {
        "body": [
            "test('should $1', async () => {",
            "\t$0",
            "})",
            ""
        ],
        "description": "Testing `asynchronous test` block",
        "prefix": "testa",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "testBlock": {
        "body": [
            "test('should $1', () => {",
            "\t$0",
            "})",
            ""
        ],
        "description": "Testing `test` block",
        "prefix": "test",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "thenCatch": {
        "body": [
            ".then((${1:result}) => {\n\t${2}\n}).catch((${3:err}) => {\n\t${4}\n});"
        ],
        "description": "Add the .then and .catch methods to handle promises",
        "prefix": "thenc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "try{}catch(e)": {
        "body": [
            "try{",
            "\t$SELECTION$0",
            "}catch(e){",
            "\t//TODO handle the exception",
            "}"
        ],
        "prefix": "trycatch",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "typeof": {
        "body": [
            "typeof($1)==\"${2:undefined}\""
        ],
        "prefix": "typeoff",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "typeof!": {
        "body": [
            "typeof($1)!=\"${2:undefined}\""
        ],
        "prefix": "typeof!",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uAlert": {
        "body": [
            "uni.showModal({",
            "\tcontent: '$1',",
            "\tshowCancel: false",
            "});"
        ],
        "prefix": "ualert",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uConfirm": {
        "body": [
            "uni.showModal({",
            "\tcontent: '$1',",
            "\tsuccess: function (res) {",
            "\t\tif (res.confirm) {",
            "\t\t\t$2",
            "\t\t} else if (res.cancel) {",
            "\t\t\t$3",
            "\t\t}",
            "\t}",
            "});"
        ],
        "prefix": "uconfirm",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uGetLocation": {
        "body": [
            "uni.getLocation({",
            "\ttype: 'wgs84',",
            "\tsuccess: res => {$0}",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ugetlocation",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uLogin": {
        "body": [
            "uni.login({",
            "\tprovider: '$1',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ulogin",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uNavigateBack": {
        "body": [
            "uni.navigateBack({",
            "\tdelta: $1",
            "});"
        ],
        "prefix": "unavigateback",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uNavigateTo": {
        "body": [
            "uni.navigateTo({",
            "\turl: '$1',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "unavigateto",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uPay": {
        "body": [
            "uni.requestPayment({",
            "\tprovider: '$1',",
            "\torderInfo: '$2',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "upay",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uRedirectTo": {
        "body": [
            "uni.redirectTo({",
            "\turl: '$1',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "uredirectto",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uRequest": {
        "body": [
            "uni.request({",
            "\turl: '$1',",
            "\tmethod: 'GET$2',",
            "\tdata: {$3},",
            "\tsuccess: res => {$0},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "urequest",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uRequestPayment": {
        "body": [
            "uni.requestPayment({",
            "\tprovider: '$1',",
            "\torderInfo: '$2',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "urequestpayment",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShare": {
        "body": [
            "uni.share({",
            "\tprovider: '$1',",
            "\ttype: 0$2,",
            "\ttitle: '$3',",
            "\thref: '$4',",
            "\timageUrl: '$5',",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ushare",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowActionSheet": {
        "body": [
            "uni.showActionSheet({",
            "\titemList: $1,",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ushowactionsheet",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowLoading": {
        "body": [
            "uni.showLoading({",
            "\ttitle: '$1',",
            "\tmask: false",
            "});"
        ],
        "prefix": "ushowloading",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowModal": {
        "body": [
            "uni.showModal({",
            "\ttitle: '$1',",
            "\tcontent: '$2',",
            "\tshowCancel: false$3,",
            "\tcancelText: '$4',",
            "\tconfirmText: '$5',",
            "\tsuccess: res => {$0},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ushowmodal",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowToast": {
        "body": [
            "uni.showToast({",
            "\ttitle: '$1'",
            "});"
        ],
        "prefix": "ushowtoast",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uShowToastNoIcon": {
        "body": [
            "uni.showToast({",
            "\ttitle: '$1',",
            "\ticon: 'none'",
            "});"
        ],
        "prefix": "ushowtoastnoicon",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uStartPullDownRefresh": {
        "body": [
            "uni.startPullDownRefresh({",
            "\tsuccess: res => {},",
            "\tfail: () => {},",
            "\tcomplete: () => {}",
            "});"
        ],
        "prefix": "ustartpulldownrefresh",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uStopPullDownRefresh": {
        "body": [
            "uni.stopPullDownRefresh();"
        ],
        "prefix": "ustoppulldownrefresh",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uniCloud http request": {
        "body": [
            "const $1 = await uniCloud.httpclient.request('$2', {",
            "\tdataType: 'json'",
            "})"
        ],
        "description": "uniCloud http request with json decode",
        "prefix": "uhttp",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uniCloud.database": {
        "body": [
            "const db = uniCloud.database()"
        ],
        "prefix": "constdb",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "uniCloud.importObject": {
        "body": [
            "const $1 = uniCloud.importObject('$2')"
        ],
        "description": "uniCloud.importObject('ObjectName')",
        "prefix": "cco",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "use strict": {
        "body": [
            "\"use strict\""
        ],
        "prefix": "use",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useCallback": {
        "body": [
            "useCallback(",
            "\t() => {",
            "\t\t${1:callback}",
            "\t},",
            "\t[${2:input}],",
            ")"
        ],
        "prefix": "useCallback",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useContext": {
        "body": [
            "const ${1:context} = useContext(${2:contextValue})"
        ],
        "prefix": "useContext",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useDebugValue": {
        "body": [
            "useDebugValue(${1:value})"
        ],
        "prefix": "useDebugValue",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useDispatch": {
        "body": [
            "const dispatch = useDispatch(${1:function})"
        ],
        "prefix": "useDispatch",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useEffect": {
        "body": [
            "useEffect(() => {",
            "\t${1:effect}",
            "\treturn () => {",
            "\t\t${2:cleanup}",
            "\t}",
            "}, [${3:input}])"
        ],
        "prefix": "useEffect",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useImperativeHandle": {
        "body": [
            "useImperativeHandle(",
            "\t${1:ref},",
            "\t() => {",
            "\t\t${2:handler}",
            "\t},",
            "\t[${3:input}],",
            ")"
        ],
        "prefix": "useImperativeHandle",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useLayoutEffect": {
        "body": [
            "useLayoutEffect(() => {",
            "\t${1:effect}",
            "\treturn () => {",
            "\t\t${2:cleanup}",
            "\t};",
            "}, [${3:input}])"
        ],
        "prefix": "useLayoutEffect",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useMemo": {
        "body": [
            "useMemo(() => ${1:function}, ${2:input})"
        ],
        "prefix": "useMemo",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useReducer": {
        "body": [
            "const [state, dispatch] = useReducer(${1:reducer}, ${2:initialState}, ${3:init})"
        ],
        "prefix": "useReducer",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useRef": {
        "body": [
            "const ${1:ref} = useRef(${2:initialValue})"
        ],
        "prefix": "useRef",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useSelector": {
        "body": [
            "const ${1:state} = useSelector(state => state.${1:state})"
        ],
        "prefix": "useSelector",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "useState": {
        "body": [
            "const [${1:state}, set${1/(.*)/${1:/capitalize}/}] = useState(${2:initialState})"
        ],
        "prefix": "useState",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var a=[];": {
        "body": [
            "var ${1:a}=[$2];"
        ],
        "prefix": "vara",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var c = canvas": {
        "body": [
            "var ${2:c} = document.getElementById(\"$1\").getContext(\"2d\");"
        ],
        "prefix": "varc",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "var currentWebview": {
        "body": [
            "var currentWebview = this.\\$scope.\\$getAppWebview()"
        ],
        "prefix": "varcw",
        "project": "uni-app",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var i=0;": {
        "body": [
            "var ${1:i}=${2:0};"
        ],
        "prefix": "vari",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var l=a.length;": {
        "body": [
            "var ${1:l}=${2:a}.length;"
        ],
        "prefix": "varl",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var s=\"\";": {
        "body": [
            "var ${1:s}=\"$2\";"
        ],
        "prefix": "vars",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "var xhr": {
        "body": [
            "var ${1:xhr} = new XMLHttpRequest();",
            "xhr.open(\"${2:POST}\",\"$3\",${4:true});"
        ],
        "prefix": "varxhr",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "while": {
        "body": [
            "while (${1:condition}){",
            "\t$SELECTION$0",
            "}"
        ],
        "prefix": "whilee",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    },
    "windowaddEventListener": {
        "body": [
            "window.addEventListener('${1:scroll}',function ($2) {",
            "        $0",
            "})"
        ],
        "prefix": "wad",
        "project": "Web,App,Wap2App",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)",
        "triggerAssist": true
    },
    "with": {
        "body": [
            "with ($1){",
            "\t$SELECTION$0",
            "}"
        ],
        "prefix": "withh",
        "scope": "source$|(source ! meta.import & meta.block$)|(source !meta.definition.variable & meta.var$)"
    }
}

内置css代码块

{
    "#ifdef": {
        "body": [
            "/* #ifdef ${1:APP-PLUS/APP-VUE/APP-NVUE/APP/VUE2/VUE3/MP-ALIPAY/MP-BAIDU/MP-WEIXIN/MP-QQ/MP-TOUTIAO/MP-360/MP-KUAISHOU/MP-LARK/MP-JD/MP/H5/QUICKAPP-WEBVIEW-HUAWEI/QUICKAPP-WEBVIEW-UNION/QUICKAPP-WEBVIEW} */",
            "$0",
            "/* #endif */"
        ],
        "prefix": "ifdef",
        "project": "uni-app",
        "scope": "source !(punctuation.terminator.rule|meta.property-value)"
    },
    "#ifndef": {
        "body": [
            "/* #ifndef ${1:APP-PLUS/APP-VUE/APP-NVUE/APP/VUE2/VUE3/MP-ALIPAY/MP-BAIDU/MP-WEIXIN/MP-QQ/MP-TOUTIAO/MP-360/MP-KUAISHOU/MP-LARK/MP-JD/MP/H5/QUICKAPP-WEBVIEW-HUAWEI/QUICKAPP-WEBVIEW-UNION/QUICKAPP-WEBVIEW} */",
            "$0",
            "/* #endif */"
        ],
        "prefix": "ifndef",
        "project": "uni-app",
        "scope": "source !(punctuation.terminator.rule|meta.property-value)"
    },
    "-moz-": {
        "body": [
            "-moz-"
        ],
        "prefix": "moz",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "-ms-": {
        "body": [
            "-ms-"
        ],
        "prefix": "ms",
        "scope": "source meta.property-list! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "-webkit-": {
        "body": [
            "-webkit-"
        ],
        "prefix": "webkit",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "@-moz-keyframes": {
        "body": [
            "@-moz-keyframes ${1:name}{",
            "\tfrom{$2}",
            "\tto{$3}",
            "}"
        ],
        "prefix": "@keyframes",
        "scope": "source ! meta.property-list"
    },
    "@-ms-keyframes": {
        "body": [
            "@-ms-keyframes ${1:name}{",
            "\tfrom{$2}",
            "\tto{$3}",
            "}"
        ],
        "prefix": "@keyframes",
        "scope": "source ! meta.property-list"
    },
    "@-webkit-keyframes": {
        "body": [
            "@-webkit-keyframes ${1:name}{",
            "\tfrom{$2}",
            "\tto{$3}",
            "}"
        ],
        "prefix": "@keyframes",
        "scope": "source ! meta.property-list"
    },
    "@charset": {
        "body": [
            "@charset \"${1:utf-8}\";"
        ],
        "prefix": "@charset",
        "scope": "source ! meta.property-list"
    },
    "@document": {
        "body": [
            "@document ${1:url}(\"$2\") {",
            "\t$3",
            "}"
        ],
        "prefix": "@document",
        "scope": "source ! meta.property-list"
    },
    "@font-face": {
        "body": [
            "@font-face {",
            "\tfont-family:$1;",
            "\tsrc: url($2);",
            "}"
        ],
        "prefix": "@fontface",
        "scope": "source ! meta.property-list"
    },
    "@import": {
        "body": [
            "@import url(\"$1\");"
        ],
        "prefix": "@import",
        "scope": "source ! meta.property-list",
        "triggerAssist": true
    },
    "@keyframes": {
        "body": [
            "@keyframes ${1:name}{",
            "\tfrom{$2}",
            "\tto{$3}",
            "}"
        ],
        "prefix": "@keyframes",
        "scope": "source ! meta.property-list"
    },
    "@namespace": {
        "body": [
            "@namespace ${1:prefix} \"$2\";"
        ],
        "prefix": "@namespace",
        "scope": "source ! meta.property-list"
    },
    "@page": {
        "body": [
            "@page:${1:first}{",
            "\t",
            "}"
        ],
        "prefix": "@page",
        "scope": "source ! meta.property-list"
    },
    "@supports": {
        "body": [
            "@supports(${1:prop}:${2:value}) {",
            "\t$3",
            "}"
        ],
        "prefix": "@supports",
        "scope": "source ! meta.property-list"
    },
    "background-color: #": {
        "body": [
            "background-color: #$1"
        ],
        "prefix": "bch",
        "scope": "source meta.property-list! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "background-color: rgb": {
        "body": [
            "background-color: rgb(${1:255},${2:255},${3:255})"
        ],
        "prefix": "bcr",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)"
    },
    "background-image": {
        "body": [
            "background-image: $1"
        ],
        "prefix": "bi",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "background-image: url": {
        "body": [
            "background-image: url($1)"
        ],
        "prefix": "biu",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "background-position": {
        "body": [
            "background-position: $1"
        ],
        "prefix": "bp",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "background: image repeat attachment position": {
        "body": [
            "background: url($1) ${2:repeat} ${3:fixed} ${4:center};$0"
        ],
        "prefix": "bg",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "border-color": {
        "body": [
            "border-color: $1"
        ],
        "prefix": "boc",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "border-style": {
        "body": [
            "border-style: $1"
        ],
        "prefix": "bs",
        "scope": "source meta.property-list! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "flex-direction: row": {
        "body": [
            "flex-direction: row;"
        ],
        "prefix": "fdr",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)"
    },
    "font-family": {
        "body": [
            "font-family: $1"
        ],
        "prefix": "ff",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "font-size": {
        "body": [
            "font-size: $1"
        ],
        "prefix": "fsize",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "height --status-bar-height": {
        "body": [
            "height: var(--status-bar-height);"
        ],
        "prefix": "heightstatusbar",
        "project": "uni-app",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)"
    },
    "height --window-bottom": {
        "body": [
            "height: var(--window-bottom);"
        ],
        "prefix": "heightwindowbottom",
        "project": "uni-app",
        "scope": "source meta.property-list! (meta.property-value|punctuation.terminator.rule)"
    },
    "height --window-top": {
        "body": [
            "height: var(--window-top);"
        ],
        "prefix": "heightwindowtop",
        "project": "uni-app",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)"
    },
    "height px": {
        "body": [
            "height: ${1}px;$0"
        ],
        "prefix": "hpx",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)"
    },
    "list-style-image: url": {
        "body": [
            "list-style-image: url($1);"
        ],
        "prefix": "lsi",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "scrollbar": {
        "body": [
            "scrollbar-base-color:       ${1:#CCCCCC};",
            "scrollbar-arrow-color:      ${2:#000000};",
            "scrollbar-track-color:      ${3:#999999};",
            "scrollbar-3dlight-color:    ${4:#EEEEEE};",
            "scrollbar-highlight-color:  ${5:#FFFFFF};",
            "scrollbar-face-color:       ${6:#CCCCCC};",
            "scrollbar-shadow-color:     ${7:#999999};",
            "scrollbar-darkshadow-color: ${8:#666666};"
        ],
        "prefix": "scrollbarr",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)"
    },
    "text-align: left": {
        "body": [
            "text-align: left;"
        ],
        "prefix": "tal",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)"
    },
    "text-transform": {
        "body": [
            "text-transform: $1"
        ],
        "prefix": "tt",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)",
        "triggerAssist": true
    },
    "user-select:none (List)": {
        "body": [
            "-webkit-user-select: none;",
            "-moz-user-select: none;",
            "-ms-user-select: none;",
            "user-select: none;"
        ],
        "prefix": "usn",
        "scope": "source meta.property-list! (meta.property-value|punctuation.terminator.rule)"
    },
    "width length": {
        "body": [
            "width: ${1}px;$0"
        ],
        "prefix": "widthlength",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)"
    },
    "width upx": {
        "body": [
            "width: ${1}upx;$0"
        ],
        "prefix": "wupx",
        "project": "uni-app",
        "scope": "source meta.property-list ! (meta.property-value|punctuation.terminator.rule)"
    }
}


阅读量:266

点赞量:0

收藏量:0