wechat miniprogram .wxml file syntax highlight,code autocomplete(support native miniprogram、mpvue and wepy framework,provide code snippets)
@iChenLei 已接手维护本插件,欢迎大家在钉钉群或者 Github issues 提意见。
用户1群 | 用户2群 | 用户3群 |
---|---|---|
暂无 |
请使用阿里巴巴旗下 钉钉(Dingtalk) APP 扫码进入交流群,反馈 Bug /给插件维护者提需求,相比 Github issues 更加接地气地与插件维护者交流。加一个群即可,1 群满了试试加 2 群。如果遇到二维码过期或者群都满了的问题请提 issue 给插件维护者。
所有自动补全的模板数据都来自于官方文档,通过脚本自动获取的
New Miniprogram Component
选项,输入组件名即可一键创建 .wxml
/.js
/.wxss
/.json
以及组件文件夹js
文件{
"minapp-vscode.cssExtname": "less", // 默认 wxss,支持 styl sass scss less css
"minapp-vscode.wxmlExtname": "vue", // 默认 wxml,支持 vue wpy
"minapp-vscode.jsExtname": "ts" // 默认 js,支持 ts coffee
}
<
才会触发标签补全,而 pug 语言只需要写标签开头即能触发标签补全range
和 range-key
的属性start
和 end
的属性功能还不完善,只会查找和当前模板同名的脚本文件,所以有可能会找不到 JS 中的定义
系统会自动获取和当前模板同名的样式文件中的所有样式名,同时还能获取样式名上的 /** */
中的文档;如果有全局的样式,需要通过配置项 minapp-vscode.globalStyleFiles
来指定。
默认会获取和当前模板同名的样式文件中的名称
注意:如果样式文件是 @import
了另一个样式文件,则程序不会去获取这个引入的文件中的样式名
另外可以使用 minapp-vscode.globalStyleFiles
来指定一些全局的样式文件,这样在输入 class=""
后就也会出现这些文件中的样式名
小程序的 app.wxss 一般是全局的样式,所以需要你手动通过此配置来指定,如配置 minapp-vscode.globalStyleFiles: ["src/app.wxss"]
另外也可以使用 minapp-vscode.styleExtensions
来指定系统使用的样式文件的后缀
建议配置此项,系统默认会查找各种后缀的样式文件,为避免不必要的性能损耗,最好配置成项目中使用的后缀!
注意:不支持
sass
这种缩进排版的样式文件
vue 中的 template 板支持两个属性:
lang
可以设置为 "wxml"
或 "pug"
,表示使用的语言(在类 vue 框架中指定 lang
属性可能会导致编译报错,你可以使用 xlang
替代,但这样会同时出现 vue 和 minapp 的补全)minapp
可以设置为 "native"
, "wepy"
,"mpx"
或 "mpvue"
,表示使用的框架,默认为 "mpvue"
如:
<template lang="wxml" minapp="native">
表示使用 wxml 语言,不使用任何框架<template lang="pug" minapp="mpvue">
表示使用 pug 语言,并使用 mpvue 框架注意,mpvue 中指定 lang=“wxml” 会报错,需要等待作者修复!不过
你可以临时使用xlang="wxml"
,但这样同时也会触发 vue 的自动补全
指定为不同的 minapp 值会触发对应框架的自动补全,由于本人没有使用 wepy 和 mpvue 开发过,所以这些自动补全是根据官方文档说明而加上的,如果有错误,欢迎 PR(只需要修改文件 src/plugin/lib/language.ts)
minapp-vscode.linkAttributeNames
来扩展额外的支持 link 的标签,将此值配置成空数组,可以禁用 link 功能minapp-vscode.resolveRoots
来使用相对目录解析图片路径minapp-vscode.disableDecorate
为 true
来开启高亮minapp-vscode.decorateType
来使用你喜欢的颜色,如 {"color": "red"}
minapp-vscode.decorateComplexInterpolation
为 false
,这样只有变量(如:foo
, foo.prop
, foo[1]
)会高亮,而表达式(如:foo + bar
, foo < 3
)不会高亮,而使用原本的颜色为了加快解析速度,颜色高亮使用的是正则表达式匹配,所以可能会出现匹配错误的情况;如果不满意,可以配置 minapp-vscode.disableDecorate
来禁用颜色高亮功能
已知问题:
minapp-vscode.snippets
来定义你自己的 snippets和官方的 Snippets 的区别时,这里的 Snippets 只需要指定 key 和 body 即可,组件描述自动会根据 key 来获取(另外后期可以让配置和内置的数据结合起来)
支持prettyHtml
, js-beautify
和prettier
(部分内容需要采用兼容html的方式书写)
wxml
"minapp-vscode.wxmlFormatter": "wxml", // 指定格式化工具
"minapp-vscode.wxmlFormatter": "jsBeautifyHtml", // 指定格式化工具
// 使用 vscode settings.json 中的 `html.format.[配置字段]` 配置字段, 详见下方 tips.4
"minapp-vscode.jsBeautifyHtml": "useCodeBuiltInHTML",
// 使用自定义配置
"minapp-vscode.jsBeautifyHtml": { // jsBeautify 默认配置
"content_unformatted": "text",
"wrap_attributes": "force",
"indent_size": 2,
"wrap_attributes_indent_size": 2,
"void_elements": "image,input,video",
"indent_scripts": "keep"
}
"minapp-vscode.wxmlFormatter": "prettyHtml", // 指定格式化工具
"minapp-vscode.prettyHtml": { // prettyHtml 默认配置
"useTabs": false,
"tabWidth": 2,
"printWidth": 100,
"singleQuote": false,
"usePrettier": true,
"wrapAttributes": false, // 设置成 true 强制属性换行
"sortAttributes": false
}
"minapp-vscode.wxmlFormatter": "prettier", // 指定格式化工具
"minapp-vscode.prettier": { // prettier 更多参考 https://prettier.io/docs/en/options.html
"useTabs": false,
"tabWidth": 2,
"printWidth": 100,
"singleQuote": false
}
prettyHtml
和 prettier
方式,会自动读取项目下的配置文件,Prettier configuration file .editorconfig
prettyHtml
,和 prettier
采用 HTML5 的语法和 wxml 不完全一致,写法要注意兼容jsBeautifyHtml
, 当值为 "useCodeBuiltInHTML"
时, 配置信息将从 vscode 配置中的 html.format.*
配置字段doc 读取, 转换为 js-beautify 的配置minapp 插件会自动将 .pug 文件关联到 wxml-pug
文件类型。所以你只需要在具体的项目中配置一下文件关联就行了。
pug
文件类型wxml-pug
文件类型