{
    "#ifdef": {
        "body": [
            "<!-- #ifdef ${1|APP-PLUS,MP,MP-ALIPAY,MP-BAIDU,MP-WEIXIN,MP-QQ,H5|} -->",
            "$0",
            "<!-- #endif -->"
        ],
        "prefix": "ifdef",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "#ifndef": {
        "body": [
            "<!-- #ifndef ${1|APP-PLUS,MP,MP-ALIPAY,MP-BAIDU,MP-WEIXIN,MP-QQ,H5|} -->",
            "$0",
            "<!-- #endif -->"
        ],
        "prefix": "ifndef",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "Vue Base": {
        "body": [
            "<template>",
            "\t<${1:div}>",
            "",
            "\t</${1:div}>",
            "</template>",
            "",
            "<script>",
            "\texport default {",
            "\t\t${0}",
            "\t}",
            "</script>",
            "",
            "<style scoped>",
            "",
            "</style>"
        ],
        "description": "Base for Vue File",
        "prefix": "vbase",
        "scope": "vue-html"
    },
    "Vue Class Binding": {
        "body": [
            "<${1|div|} :class=\"{ ${2:className}: ${3:data} }\"><,${1:div}>"
        ],
        "description": "vue class binding",
        "prefix": "vclass",
        "scope": "vue-html"
    },
    "Vue Class Binding Object": {
        "body": [
            "<${1|div|} :class=\"[${2:classNameA}, ${3:classNameB}]\"><,${1:div}>"
        ],
        "description": "vue class binding",
        "prefix": "vclass-obj",
        "scope": "vue-html"
    },
    "Vue Component with Props Binding": {
        "body": [
            "<${1|component|} :${1:propName}=\"${0}\"><,${1:component}>"
        ],
        "description": "component element with props",
        "prefix": "vel-props",
        "scope": "vue-html"
    },
    "Vue Image Source Binding": {
        "body": [
            "<img :src=\"'/path/to/images/' + ${1:fileName}\" alt=\"${2:altText}\"/>"
        ],
        "description": "image source binding",
        "prefix": "vsrc",
        "scope": "vue-html"
    },
    "Vue Multiple Conditional Class Bindings": {
        "body": [
            "<${1|div|} :class=\"[${2:classNameA}, {${3:classNameB} : ${4:condition}}]\"><,${1:div}>"
        ],
        "description": "vue multiple conditional class bindings",
        "prefix": "vclass-obj-mult",
        "scope": "vue-html"
    },
    "Vue Nuxt Routing Link": {
        "body": [
            "<nuxt-link to=\"/${1:page}\">${1:page}</nuxt-link>"
        ],
        "description": "nuxt routing link",
        "prefix": "vnuxtl",
        "scope": "vue-html"
    },
    "Vue Style Binding": {
        "body": [
            "<${1|div|} :style=\"{ fontSize: ${2:data} + 'px' }\"><,${1:div}>"
        ],
        "description": "vue inline style binding",
        "prefix": "vstyle",
        "scope": "vue-html"
    },
    "Vue Style Binding Object": {
        "body": [
            "<${1|div|} :style=\"[${2:styleObjectA}, ${3:styleObjectB]}\"><,${1:div}>"
        ],
        "description": "vue inline style binding, objects",
        "prefix": "vstyle-obj",
        "scope": "vue-html"
    },
    "Vue Transition Component with JavaScript Hooks": {
        "body": [
            "<transition",
            "\tmode=\"out-in\"",
            "\t@before-enter=\"beforeEnter\"",
            "\t@enter=\"enter\"",
            "",
            "\t@before-leave=\"beforeLeave\"",
            "\t@leave=\"leave\"",
            "\t:css=\"false\">",
            "",
            "</transition>"
        ],
        "description": "transition component js hooks",
        "prefix": "vanim",
        "scope": "vue-html"
    },
    "Vue v-for": {
        "body": [
            "<${1:div} v-for=\"${2:item} in ${2:item}s\" :key=\"${2:item}.id\">",
            "\t{{ ${2:item} }}",
            "</${1:div}>"
        ],
        "description": "vfor statement",
        "prefix": "vfor",
        "scope": "vue-html"
    },
    "Vue v-model Directive": {
        "body": [
            "<input v-model=\"${1:data}\" type=\"text\" />"
        ],
        "description": "v-model directive",
        "prefix": "vmodel",
        "scope": "vue-html"
    },
    "Vue v-model Number Directive": {
        "body": [
            "<input v-model.number=\"${1:numData}\" type=\"number\" step=\"1\" />"
        ],
        "description": "v-model directive number input",
        "prefix": "vmodel-num",
        "scope": "vue-html"
    },
    "Vue v-on Shortcut Directive": {
        "body": [
            "@click=\"${1:handler}(${2:arg}, $event)\""
        ],
        "description": "v-on click handler with arguments",
        "prefix": "von",
        "scope": "vue-html"
    },
    "uAccordion": {
        "body": [
            "<view class=\"uni-list\">",
            "\t<view class=\"uni-list-cell uni-collapse\" v-for=\"(item,index) in list$1\" :key=\"index\">",
            "\t\t<view class=\"uni-list-cell-navigate uni-navigate-bottom\" :class=\"item.show ? 'uni-active' : ''\" @click=\"trigerCollapse$0(index)\">",
            "\t\t\t折叠面板{{index}}",
            "\t\t</view>",
            "\t\t<view class=\"uni-collapse-content\" :class=\"item.show ? 'uni-active' : ''\">",
            "\t\t\t<view class=\"page-pd\">",
            "\t\t\t\t<view class=\"uni-h1\">hello uni-app</view>",
            "\t\t\t\t<view class=\"uni-h2\">hello uni-app</view>",
            "\t\t\t\t<view class=\"uni-h3\">hello uni-app</view>",
            "\t\t\t</view>",
            "\t\t</view>",
            "\t</view>",
            "</view>"
        ],
        "prefix": "uaccordion",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uAudio": {
        "body": [
            "<audio :src=\"$1\" :poster=\"$0\" :name=\"$2\" :author=\"$3\" :action=\"$4\" controls></audio>"
        ],
        "prefix": "uaudio",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uBadge": {
        "body": [
            "<uni-badge text=\"$1\" type=\"$2\"></uni-badge>"
        ],
        "prefix": "ubadge",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uButton": {
        "body": [
            "<button type=\"primary\">$1</button>"
        ],
        "prefix": "ubutton",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uCalendar": {
        "body": [
            "<uni-calendar lunar=\"\" @change=\"$1\" @to-click=\"$2\"></uni-calendar>"
        ],
        "prefix": "ucalendar",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uCard": {
        "body": [
            "<uni-card title=\"标题文字\" thumbnail=\"$1\" extra=\"额外信息$2\" note=\"Tips$3\">",
            "\t内容主体，可自定义内容及样式$4",
            "</uni-card>"
        ],
        "prefix": "ucard",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uCheckbox": {
        "body": [
            "<label class=\"checkbox\">",
            "\t<checkbox value=\"$1\" checked= />$0",
            "</label>"
        ],
        "prefix": "ucheckbox",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uCollapse": {
        "body": [
            "<uni-collapse @change=\"$1\">",
            "\t<uni-collapse-item title=\"$2\">",
            "\t\t内容$3",
            "\t</uni-collapse-item>",
            "</uni-collapse>"
        ],
        "prefix": "uCollapse",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uCountDown": {
        "body": [
            "<uni-countdown font-color=\"$1\" bgr-color=\"$2\" timer=\"$3\"></uni-countdown>"
        ],
        "prefix": "ucountdown",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uDrawer": {
        "body": [
            "<uni-drawer :visible=\"$1\">",
            "\t<view style=\"padding:30upx;\">",
            "\t\t$2",
            "\t</view>",
            "</uni-drawer>"
        ],
        "prefix": "uDrawer",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uEditor": {
        "body": [
            "<editor placeholder=\"$1\"></editor>"
        ],
        "prefix": "uEditor",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uForm": {
        "body": [
            "<form @submit=\"formSubmit\" @reset=\"formReset\">",
            "\t<view class=\"section section_gap\">",
            "\t\t<view class=\"section__title\">switch$1</view>",
            "\t\t<switch name=\"switch\" />",
            "\t</view>",
            "\t<view class=\"section section_gap\">",
            "\t\t<view class=\"section__title\">slider</view>",
            "\t\t<slider name=\"slider\" show-value></slider>",
            "\t</view>",
            "\t<view class=\"section\">",
            "\t\t<view class=\"section__title\">input</view>",
            "\t\t<input name=\"input\" placeholder=\"please input here\" />",
            "\t</view>",
            "\t<view class=\"section section_gap\">",
            "\t\t<view class=\"section__title\">radio</view>",
            "\t\t<radio-group name=\"radio-group\">",
            "\t\t<label>",
            "\t\t\t<radio value=\"radio1\" />radio1</label>",
            "\t\t<label>",
            "\t\t\t<radio value=\"radio2\" />radio2</label>",
            "\t\t</radio-group>",
            "\t</view>",
            "\t<view class=\"section section_gap\">",
            "\t\t<view class=\"section__title\">checkbox</view>",
            "\t\t<checkbox-group name=\"checkbox\">",
            "\t\t\t<label>",
            "\t\t\t\t<checkbox value=\"checkbox1\" />checkbox1</label>",
            "\t\t\t<label>",
            "\t\t\t\t<checkbox value=\"checkbox2\" />checkbox2</label>",
            "\t\t</checkbox-group>",
            "\t</view>",
            "\t<view class=\"btn-area\">",
            "\t\t<button formType=\"submit\">Submit</button>",
            "\t\t<button formType=\"reset\">Reset</button>",
            "\t</view>",
            "</form>"
        ],
        "prefix": "uform",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uGrid": {
        "body": [
            "<uni-grid :data=\"$1\"></uni-grid>"
        ],
        "prefix": "ugrid",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uIcon": {
        "body": [
            "<uni-icon type=\"$1\"></uni-icon>"
        ],
        "prefix": "uicon",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uImage": {
        "body": [
            "<image src=\"$1\" mode=\"$2\">$0</image>"
        ],
        "prefix": "uimage",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uInput": {
        "body": [
            "<input type=\"text$1\" value=\"$0\" />"
        ],
        "prefix": "uinput",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uList": {
        "body": [
            "<uni-list>",
            "\t<uni-list-item title=\"$1\" note=\"$2\"></uni-list-item>",
            "\t<uni-list-item title=\"$3\" note=\"$4\"></uni-list-item>",
            "</uni-list>"
        ],
        "prefix": "ulist",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uListMedia": {
        "body": [
            "<view class=\"uni-list\">",
            "\t<view class=\"uni-list-cell\" hover-class=\"uni-list-cell-hover\" v-for=\"(item,index) in list$1\" :key=\"index\">",
            "\t\t<view class=\"uni-media-list\">",
            "\t\t\t<image class=\"uni-media-list-logo\" :src=\"item.img$2\"></image>",
            "\t\t\t<view class=\"uni-media-list-body\">",
            "\t\t\t\t<view class=\"uni-media-list-text-top\">{{item.title$3}}</view>",
            "\t\t\t\t<view class=\"uni-media-list-text-bottom uni-ellipsis\">{{item.content$4}}</view>",
            "\t\t\t</view>",
            "\t\t</view>",
            "\t</view>",
            "</view>"
        ],
        "prefix": "ulistmedia",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uLoadMore": {
        "body": [
            "<uni-load-more :loadingType=\"$1\" :contentText=\"$2\"></uni-load-more>"
        ],
        "prefix": "uloadmore",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uMap": {
        "body": [
            "<map :latitude=\"$1\" :longitude=\"$0\"></map>"
        ],
        "prefix": "umap",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uNavBar": {
        "body": [
            "<uni-nav-bar left-icon=\"back\" left-text=\"返回\" right-text=\"菜单\" title=\"标题$1\"></uni-nav-bar>"
        ],
        "prefix": "unavbar",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uNavigator": {
        "body": [
            "<navigator url=\"$1\">$0</navigator>"
        ],
        "prefix": "unavigator",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uNoticeBar": {
        "body": [
            "<uni-notice-bar single=\"$1\" text=\"$2\"></uni-notice-bar>"
        ],
        "prefix": "uNoticeBar",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uNumberBox": {
        "body": [
            "<uni-number-box @change=\"$1\"></uni-number-box>"
        ],
        "prefix": "unumberbox",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uPagination": {
        "body": [
            "<uni-pagination title=\"$1\" show-icon=\"$2\" total=\"$3\" current=\"$4\"></uni-pagination>"
        ],
        "prefix": "uPagination",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uPicker": {
        "body": [
            "<picker mode=\"$1\" :range=\"$2\" @change=\"$3\">",
            "\t<view>picker组件</view>",
            "</picker>"
        ],
        "prefix": "upicker",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uPickerView": {
        "body": [
            "<picker-view indicator-style=\"height: 50px;\" :value=\"value$1\" @change=\"bindChange\">",
            "\t<picker-view-column>",
            "\t\t$0",
            "\t</picker-view-column>",
            "\t<picker-view-column>",
            "\t\t$2",
            "\t</picker-view-column>",
            "\t<picker-view-column>",
            "\t\t",
            "\t</picker-view-column>",
            "</picker-view>"
        ],
        "prefix": "upickerview",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uPopup": {
        "body": [
            "<uni-popup msg=\"$1\" :show=\"true$2\" type=\"middle$3\"></uni-popup>"
        ],
        "prefix": "upopup",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uProductList": {
        "body": [
            "<view class=\"uni-product-list\">",
            "\t<view class=\"uni-product\" v-for=\"(product,index) in productList$1\" :key=\"index\">",
            "\t\t<view class=\"image-view\">",
            "\t\t\t<image v-if=\"renderImage\" class=\"uni-product-image\" :src=\"product.image\"></image>",
            "\t\t</view>",
            "\t\t<view class=\"uni-product-title\">{{product.title}}</view>",
            "\t\t<view class=\"uni-product-price\">",
            "\t\t\t<text class=\"uni-product-price-favour\">￥{{product.originalPrice}}</text>",
            "\t\t\t<text class=\"uni-product-price-original\">￥{{product.favourPrice}}</text>",
            "\t\t\t<text class=\"uni-product-tip\">{{product.tip}}</text>",
            "\t\t</view>",
            "\t</view>",
            "</view>"
        ],
        "prefix": "uproductlist",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uProgress": {
        "body": [
            " <progress percent=\"$1\" show-info$0 />"
        ],
        "prefix": "uprogress",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uRadio": {
        "body": [
            "<label class=\"radio\">",
            "\t<radio value=\"$1\" checked= />$0",
            "</label>"
        ],
        "prefix": "uradio",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uRate": {
        "body": [
            "<uni-rate value=\"$1\"></uni-rate>"
        ],
        "prefix": "uRate",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uRichText": {
        "body": [
            "<rich-text :nodes=\"$1\"></rich-text>"
        ],
        "prefix": "urichtext",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uScrollView": {
        "body": [
            "<scroll-view scroll-y$1>",
            "\t<view>$0</view>",
            "\t<view></view>",
            "\t<view></view>",
            "\t<view></view>",
            "</scroll-view>"
        ],
        "prefix": "uscrollview",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uSegmentedControl": {
        "body": [
            "<uni-segmented-control :current=\"current$1\" :values=\"$0\" @clickItem=\"$2\"></uni-segmented-control>",
            "<view class=\"content\">",
            "\t<view v-show=\"current === 0\">",
            "\t\t选项卡1的内容",
            "\t</view>",
            "\t<view v-show=\"current === 1\">",
            "\t\t选项卡2的内容",
            "\t</view>",
            "\t<view v-show=\"current === 2\">",
            "\t\t选项卡3的内容",
            "\t</view>",
            "</view>"
        ],
        "prefix": "usegmentedcontrol",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uSlider": {
        "body": [
            "<slider @change=\"$1\" show-value$0/>"
        ],
        "prefix": "uslider",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uSteps": {
        "body": [
            "<uni-steps :options=\"$1\" :active=\"0$2\"></uni-steps>"
        ],
        "prefix": "usteps",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uSwipeAction": {
        "body": [
            "<uni-swipe-action :options=\"$1\">",
            "\t$2",
            "</uni-swipe-action>"
        ],
        "prefix": "uSwipeAction",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uSwiper": {
        "body": [
            "<swiper :indicator-dots=\"true\" :autoplay=\"true\" :interval=\"3000\" :duration=\"1000\">",
            "\t<swiper-item>",
            "\t\t<view class=\"swiper-item\">$1</view>",
            "\t</swiper-item>",
            "\t<swiper-item>",
            "\t\t<view class=\"swiper-item\">$2</view>",
            "\t</swiper-item>",
            "\t<swiper-item>",
            "\t\t<view class=\"swiper-item\">$0</view>",
            "\t</swiper-item>",
            "</swiper>"
        ],
        "prefix": "uswiper",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uSwipermsg": {
        "body": [
            "<view class=\"uni-swiper-msg\">",
            "\t<view class=\"uni-swiper-msg-icon\">",
            "\t\t<image src=\"$1\" mode=\"widthFix\"></image>",
            "\t</view>",
            "\t<swiper vertical=\"true\" autoplay=\"true\" circular=\"true\" interval=\"3000\">",
            "\t\t<swiper-item>",
            "\t\t\t<navigator>消息1</navigator>",
            "\t\t</swiper-item>",
            "\t\t<swiper-item>",
            "\t\t\t<navigator>消息2</navigator>",
            "\t\t</swiper-item>",
            "\t\t<swiper-item>",
            "\t\t\t<navigator>消息3</navigator>",
            "\t\t</swiper-item>",
            "\t</swiper>",
            "</view>"
        ],
        "prefix": "uswipermsg",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uSwitch": {
        "body": [
            "<switch checked @change=\"$1\" />"
        ],
        "prefix": "uswitch",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uTag": {
        "body": [
            "<uni-tag text=\"$1\" type=\"$2\"></uni-tag>"
        ],
        "prefix": "utag",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uTemplate": {
        "body": [
            "<template>",
            "\t<view>$0</view>",
            "</template>"
        ],
        "prefix": "utemplate",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uText": {
        "body": [
            "<text>$0</text>"
        ],
        "prefix": "utext",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uTextarea": {
        "body": [
            "<textarea value=\"$1\" placeholder=\"$0\" />"
        ],
        "prefix": "utextarea",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uTimeline": {
        "body": [
            "<view class=\"uni-timeline\">",
            "\t<view class=\"uni-timeline-item uni-timeline-first-item\">",
            "\t\t<view class=\"uni-timeline-item-keynode\">日期1$1</view>",
            "\t\t<view class=\"uni-timeline-item-divider\"></view>",
            "\t\t<view class=\"uni-timeline-item-content\">事件1</view>",
            "\t</view>",
            "\t<view class=\"uni-timeline-item\">",
            "\t\t<view class=\"uni-timeline-item-keynode\">日期2</view>",
            "\t\t<view class=\"uni-timeline-item-divider\"></view>",
            "\t\t<view class=\"uni-timeline-item-content\">事件2</view>",
            "\t</view>",
            "\t<view class=\"uni-timeline-item uni-timeline-last-item\">",
            "\t\t<view class=\"uni-timeline-item-keynode\">日期3</view>",
            "\t\t<view class=\"uni-timeline-item-divider\"></view>",
            "\t\t<view class=\"uni-timeline-item-content\">事件3</view>",
            "\t</view>",
            "</view>"
        ],
        "prefix": "utimeline",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uVideo": {
        "body": [
            "<video src=\"$1\" controls></video>"
        ],
        "prefix": "uvideo",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uView": {
        "body": [
            "<view class=\"$1\">$0</view>"
        ],
        "prefix": "uview",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "uWebView": {
        "body": [
            "<web-view src=\"$1\"></web-view>"
        ],
        "prefix": "uwebview",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "view for": {
        "body": [
            "<view v-for=\"(item,index) in ${1:dataList}\" :key=\"index\">",
            "\t$0",
            "</view>"
        ],
        "description": "view带for循环",
        "prefix": "viewfor",
        "project": "uni-app",
        "scope": "vue-html"
    },
    "view_class": {
        "body": [
            "<view class=\"$1\">",
            "\t$0",
            "</view>"
        ],
        "prefix": "viewclass",
        "scope": "vue-html",
        "triggerAssist": true
    }
}
