Hbuilder配置Avalon和Vue指令提示的方法详解

前言

本人是一名JAVA后端开发,偶尔也会研究一下前端内容,因为Hbuilder是基于eclipse开发的,所以用起来倍感亲切啊,而且在我尝试使用的几款前端开发工具中,Hbuilder的表现也是相当出色地,可以访问Huilder官网下载体验一下。

言归正传,当前前端的开发中,MVVM框架非常流行,比较典型的如:AngularJS、VueJS等,这部分框架基本都有一个指令的概念,在工具中配置相关的提示,可以极大地方便的我们的开发,下面就来介绍一下如何在Hbuilder中进行配置,话不多说了,来一起看看详细的介绍吧。

依次点击:工具 -> 扩展代码块 -> 自定义html代码块

打开后源文件代码如下:

require 'ruble'
=begin
 HBuilder可使用ruby脚本来扩展代码块和增强操作命令。这是极客的神奇玩具。
 本文档用于用户自定义HTML扩展命令,并非HBuilder预置命令的文档,预置的代码块不可改。查阅预置代码块,请在弹出预置代码块界面时点右下角的编辑按钮,比如div代码块。
 本文档修改完毕,保存即可生效。
 玩的愉快,别玩坏!

 脚本开源地址 https://github.com/dcloudio/HBuilderRubyBundle
 可以把你的配置共享到这里,也可以在这里获取其他网友的版本

 注:如果1.9版本之前的用户修改过HTML代码块,请点右键打开本文档所在目录,找之前的snippets.rb.bak文件,把修改过的内容放置进来。
=end

with_defaults :scope => 'text.html text' do |bundle| #=====HTML标签代码块================================================================================
#如下是一个示例代码块,可以复制后再添加新代码块
 snippet 'div_class' do |cmd| #div_class是显示名称,代码助手提示列表显示时可见
 cmd.trigger = 'divc'  #divc是激活字符,即按下divc后会触发该代码块
 cmd.expansion = "<div class=\"$1\">
 $0
</div>"       #expansion是代码块的输出内容,其中$0、$1是光标的停留和切换位置。$1是第一个停留光标,$0是最后回车时停留的光标。
               #如果输出涉及到换行和tab,也需严格在这里使用换行和tab。
               #输出双引号在前面加\来转义,输出$使用\$(单引号中)或\\$(双引号中)转义
 cmd.needApplyReContentAssist = true #这句话的意思是输出后同时激活代码助手,即在$1的位置直接拉出样式列表
 end #div_class代码块结束

 snippet 'ng-pluralize' do |cmd|
 cmd.trigger = 'ngp'
 cmd.expansion = "<ng-pluralize>$1</ng-pluralize>"
 end

end

with_defaults :scope => 'text.html entity.other.attribute-name.html' do |bundle| #=====HTML属性代码块====================================================
#如下是一个示例代码块,可以复制后再添加新代码块
 snippet 'ng-' do |s| #ng-是显示名称,代码助手提示列表显示时可见
 s.trigger = 'ng-'  #ng-是激活字符,即按下ng-后会触发该代码块
 s.expansion='ng-${1:app/bind/bind-html/bind-template/blur/change/checked/class/class-even/class-odd/click/cloak/controller/copy/csp/cut/dblclick/disabled/focus/hide/href/if/include/init/keydown/keypress/keyup/list/model/mousedown/mouseenter/mouseleave/mousemove/mouseover/mouseup/ng-non-bindable/open/options/paste/readonly/repeat-start/repeat-end/selected/show/src/srcset/style/submit/swipe-left/swipe-right/switch/switch-default/switch-when/view}="$2"'
  #expansion是代码块的输出内容,其中$0、$1是光标的停留和切换位置。
  #$1是第一个停留光标,$0是最后回车时停留的光标。
  #使用{}包围的内容,是提示值域。
  #如果输出涉及到换行和tab,也需严格在这里使用换行和tab。
  #输出双引号在前面加\来转义,输出$使用\$(单引号中)或\\$(双引号中)转义
 s.locationType='HTML_ATTRIBUTE'
 end #ng代码块结束

end

with_defaults :scope => 'text.html - source', :input => :none, :output => :insert_as_snippet do |bundle| #=====无显示名称的快捷命令=======================
=begin
如下示例均为系统已经预置的命令,无需重复制作
示例1 Ctrl+Enter输出<br />
 command t(:quick_br) do |cmd|
 cmd.key_binding = 'M2+ENTER'
 cmd.output = :insert_as_snippet
 cmd.input = :none
 cmd.invoke { "<br />" }
 end
示例2 Ctrl+9为选中文字添加包围标签
 command t(:wrap_selection_in_tag_pair) do |cmd|
 cmd.key_binding = "CONTROL+9"
 cmd.input = :selection
 cmd.invoke do |context|
  selection = ENV['TM_SELECTED_TEXT'] || ''
  if selection.length > 0
  "<${1:p}>#{selection.gsub('/', '\/')}</${1:p}>"
  else
  "<${1:p}>$0</${1:p}>"
  end
 end
 end
=end
#可复制一段命令,在下面开始制作新命令

end

在这段配置中,已经配置了AngularJS的指令提示。

with_defaults :scope => 'text.html entity.other.attribute-name.html' do |bundle| #=====HTML属性代码块====================================================
#如下是一个示例代码块,可以复制后再添加新代码块
 snippet 'ng-' do |s| #ng-是显示名称,代码助手提示列表显示时可见
 s.trigger = 'ng-'  #ng-是激活字符,即按下ng-后会触发该代码块
 s.expansion='ng-${1:app/bind/bind-html/bind-template/blur/change/checked/class/class-even/class-odd/click/cloak/controller/copy/csp/cut/dblclick/disabled/focus/hide/href/if/include/init/keydown/keypress/keyup/list/model/mousedown/mouseenter/mouseleave/mousemove/mouseover/mouseup/ng-non-bindable/open/options/paste/readonly/repeat-start/repeat-end/selected/show/src/srcset/style/submit/swipe-left/swipe-right/switch/switch-default/switch-when/view}="$2"'
  #expansion是代码块的输出内容,其中$0、$1是光标的停留和切换位置。
  #$1是第一个停留光标,$0是最后回车时停留的光标。
  #使用{}包围的内容,是提示值域。
  #如果输出涉及到换行和tab,也需严格在这里使用换行和tab。
  #输出双引号在前面加\来转义,输出$使用\$(单引号中)或\\$(双引号中)转义
 s.locationType='HTML_ATTRIBUTE'
 end #ng代码块结束

end

指令本质上就是HTML标签的属性,所以我们需要做的就是在这段配置里面添加我们自己需要的指令提示。添加后,该段配置如下:

with_defaults :scope => 'text.html entity.other.attribute-name.html' do |bundle| #=====HTML属性代码块====================================================
#如下是一个示例代码块,可以复制后再添加新代码块
 snippet 'ng-' do |s| #ng-是显示名称,代码助手提示列表显示时可见
 s.trigger = 'ng-'  #ng-是激活字符,即按下ng-后会触发该代码块
 s.expansion='ng-${1:app/bind/bind-html/bind-template/blur/change/checked/class/class-even/class-odd/click/cloak/controller/copy/csp/cut/dblclick/disabled/focus/hide/href/if/include/init/keydown/keypress/keyup/list/model/mousedown/mouseenter/mouseleave/mousemove/mouseover/mouseup/ng-non-bindable/open/options/paste/readonly/repeat-start/repeat-end/selected/show/src/srcset/style/submit/swipe-left/swipe-right/switch/switch-default/switch-when/view}="$2"'
  #expansion是代码块的输出内容,其中$0、$1是光标的停留和切换位置。
  #$1是第一个停留光标,$0是最后回车时停留的光标。
  #使用{}包围的内容,是提示值域。
  #如果输出涉及到换行和tab,也需严格在这里使用换行和tab。
  #输出双引号在前面加\来转义,输出$使用\$(单引号中)或\\$(双引号中)转义
 s.locationType='HTML_ATTRIBUTE'
 end #ng代码块结束

 snippet 'ms-' do |s| #ms-avalon代码提示
 s.trigger = 'ms-'
 s.expansion='ms-${1:skip/controller/important/attr/css/text/html/class/active/hover/if/visible/for/on/on-animationend/on-blur/on-change/on-input/on-click/on-dblclick/on-focus/on-keydown/on-keypress/on-keyup/on-mousedown/on-mouseenter/on-mouseleave/on-mousemove/on-mouseout/on-mouseover/on-mouseup/on-scroll/on-submit/duplex/rules/validate/effect/widget}="$2"'
 s.locationType='HTML_ATTRIBUTE'
 end #ms代码块结束

 snippet ':' do |s| #:-avalon2.1.15后使用:xxxx短指令代码提示
 s.trigger = ':'
 s.expansion=':${1:skip/controller/important/attr/css/text/html/class/active/hover/if/visible/for/on/on-animationend/on-blur/on-change/on-input/on-click/on-dblclick/on-focus/on-keydown/on-keypress/on-keyup/on-mousedown/on-mouseenter/on-mouseleave/on-mousemove/on-mouseout/on-mouseover/on-mouseup/on-scroll/on-submit/duplex/rules/validate/effect/widget}="$2"'
 s.locationType='HTML_ATTRIBUTE'
 end #:代码块结束

 snippet 'v-' do |s| #v-vue代码提示
 s.trigger = 'v-'
 s.expansion='v-${1:text/html/show/if/else/else-if/for/on/bind/model/pre/cloak/once}="$2"'
 s.locationType='HTML_ATTRIBUTE'
 end #v代码块结束

end

配置修改完成后,直接保存,虽然文件上提示保存后即可生效,但是我在实际使用中发现并未生效,不要急,我们只需要重启一下Hbuilder就可以了。重启后,我们在来使用这些指令,只要输入触发的字符串就会出现提示了。

补发修改后的完整配置文件,如果没有修改过,直接替换掉原文件。

require 'ruble'
=begin
 HBuilder可使用ruby脚本来扩展代码块和增强操作命令。这是极客的神奇玩具。
 本文档用于用户自定义HTML扩展命令,并非HBuilder预置命令的文档,预置的代码块不可改。查阅预置代码块,请在弹出预置代码块界面时点右下角的编辑按钮,比如div代码块。
 本文档修改完毕,保存即可生效。
 玩的愉快,别玩坏!

 脚本开源地址 https://github.com/dcloudio/HBuilderRubyBundle
 可以把你的配置共享到这里,也可以在这里获取其他网友的版本

 注:如果1.9版本之前的用户修改过HTML代码块,请点右键打开本文档所在目录,找之前的snippets.rb.bak文件,把修改过的内容放置进来。
=end

with_defaults :scope => 'text.html text' do |bundle| #==HTML标签代码==
#如下是一个示例代码块,可以复制后再添加新代码块
 snippet 'div_class' do |cmd| #div_class是显示名称,代码助手提示列表显示时可见
 cmd.trigger = 'divc'  #divc是激活字符,即按下divc后会触发该代码块
 cmd.expansion = "<div class=\"$1\">$0</div>"
        #expansion是代码块的输出内容,其中$0、$1是光标的停留和切换位置。$1是第一个停留光标,$0是最后回车时停留的光标。
        #如果输出涉及到换行和tab,也需严格在这里使用换行和tab。
        #输出双引号在前面加\来转义,输出$使用\$(单引号中)或\\$(双引号中)转义
 cmd.needApplyReContentAssist = true #这句话的意思是输出后同时激活代码助手,即在$1的位置直接拉出样式列表
 end #div_class代码块结束

 snippet 'ng-pluralize' do |cmd|
 cmd.trigger = 'ngp'
 cmd.expansion = "<ng-pluralize>$1</ng-pluralize>"
 end

end

with_defaults :scope => 'text.html entity.other.attribute-name.html' do |bundle| #==HTML属性代码==
#如下是一个示例代码块,可以复制后再添加新代码块
 snippet 'ng-' do |s| #ng-是显示名称,代码助手提示列表显示时可见
 s.trigger = 'ng-'  #ng-是激活字符,即按下ng-后会触发该代码块
 s.expansion='ng-${1:app/bind/bind-html/bind-template/blur/change/checked/class/class-even/class-odd/click/cloak/controller/copy/csp/cut/dblclick/disabled/focus/hide/href/if/include/init/keydown/keypress/keyup/list/model/mousedown/mouseenter/mouseleave/mousemove/mouseover/mouseup/ng-non-bindable/open/options/paste/readonly/repeat-start/repeat-end/selected/show/src/srcset/style/submit/swipe-left/swipe-right/switch/switch-default/switch-when/view}="$2"'
 #expansion是代码块的输出内容,其中$0、$1是光标的停留和切换位置。
 #$1是第一个停留光标,$0是最后回车时停留的光标。
 #使用{}包围的内容,是提示值域。
 #如果输出涉及到换行和tab,也需严格在这里使用换行和tab。
 #输出双引号在前面加\来转义,输出$使用\$(单引号中)或\\$(双引号中)转义
 s.locationType='HTML_ATTRIBUTE'
 end #ng代码块结束

 snippet 'ms-' do |s| #ms-avalon代码提示
 s.trigger = 'ms-'
 s.expansion='ms-${1:skip/controller/important/attr/css/text/html/class/active/hover/if/visible/for/on/on-animationend/on-blur/on-change/on-input/on-click/on-dblclick/on-focus/on-keydown/on-keypress/on-keyup/on-mousedown/on-mouseenter/on-mouseleave/on-mousemove/on-mouseout/on-mouseover/on-mouseup/on-scroll/on-submit/duplex/rules/validate/effect/widget}="$2"'
 s.locationType='HTML_ATTRIBUTE'
 end #ms代码块结束

 snippet ':' do |s| #:-avalon2.1.15后使用:xxxx短指令代码提示
 s.trigger = ':'
 s.expansion=':${1:skip/controller/important/attr/css/text/html/class/active/hover/if/visible/for/on/on-animationend/on-blur/on-change/on-input/on-click/on-dblclick/on-focus/on-keydown/on-keypress/on-keyup/on-mousedown/on-mouseenter/on-mouseleave/on-mousemove/on-mouseout/on-mouseover/on-mouseup/on-scroll/on-submit/duplex/rules/validate/effect/widget}="$2"'
 s.locationType='HTML_ATTRIBUTE'
 end #:代码块结束

 snippet 'v-' do |s| #v-vue代码提示
 s.trigger = 'v-'
 s.expansion='v-${1:text/html/show/if/else/else-if/for/on/bind/model/pre/cloak/once}="$2"'
 s.locationType='HTML_ATTRIBUTE'
 end #v代码块结束

end

with_defaults :scope => 'text.html - source', :input => :none, :output => :insert_as_snippet do |bundle| #==无显示名称的快捷命令==
=begin
如下示例均为系统已经预置的命令,无需重复制作
示例1 Ctrl+Enter输出<br />
 command t(:quick_br) do |cmd|
 cmd.key_binding = 'M2+ENTER'
 cmd.output = :insert_as_snippet
 cmd.input = :none
 cmd.invoke { "<br />" }
 end
示例2 Ctrl+9为选中文字添加包围标签
 command t(:wrap_selection_in_tag_pair) do |cmd|
 cmd.key_binding = "CONTROL+9"
 cmd.input = :selection
 cmd.invoke do |context|
  selection = ENV['TM_SELECTED_TEXT'] || ''
  if selection.length > 0
  "<${1:p}>#{selection.gsub('/', '\/')}</${1:p}>"
  else
  "<${1:p}>$0</${1:p}>"
  end
 end
 end
=end
#可复制一段命令,在下面开始制作新命令

end

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • HBuilder打包App方法(图文教程)

    HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE.该软件既可以支持web代码编写,也可以将已经编写好的项目代码打包为手机APP. HBuilder提供的打包有云端打包和本地打包两种,云端打包的特点是DCloud官方配置好了原生的打包环境,可以把HTML等文件编译为原生安装包. 1,下载HBuilder,注册并登陆.首先打开"文件"-"新建"-"移动APP",输入"应用名称","位置

  • Hbuilder配置Avalon和Vue指令提示的方法详解

    前言 本人是一名JAVA后端开发,偶尔也会研究一下前端内容,因为Hbuilder是基于eclipse开发的,所以用起来倍感亲切啊,而且在我尝试使用的几款前端开发工具中,Hbuilder的表现也是相当出色地,可以访问Huilder官网下载体验一下. 言归正传,当前前端的开发中,MVVM框架非常流行,比较典型的如:AngularJS.VueJS等,这部分框架基本都有一个指令的概念,在工具中配置相关的提示,可以极大地方便的我们的开发,下面就来介绍一下如何在Hbuilder中进行配置,话不多说了,来一起

  • 基于Vue的ajax公共方法(详解)

    为了减少代码的冗余,决定抽离出请求ajax的公共方法,供同事们使用. 我使用了ES6语法,编写了这个方法. /** * @param type 请求类型,分为POST/GET * @param url 请求url * @param contentType * @param headers * @param data * @returns {Promise<any>} */ ajaxData: function (type, url, contentType, headers, data) {

  • LyScript寻找ROP漏洞指令片段的方法详解

    ROP绕过片段简单科普一下,你可以理解成一个可以关闭系统自身内存保护的一段机器指令,这段代码需要我们自己构造,这就涉及到在对端内存搜寻这样的指令,LyScript插件增强了指令片段的查找功能,但需要我们在LyScript插件基础上封装一些方法,实现起来也不难. LScript项目地址:https://github.com/lyshark/LyScript 封装机器码获取功能: 首先封装一个方法,当用户传入指定汇编指令的时候,自动的将其转换成对应的机器码,这是为搜索ROP片段做铺垫的,代码很简单,

  • Vue websocket封装实现方法详解

    目录 1.封装的ws.js文件 2.使用方法 1.封装的ws.js文件 let global_callback = null let socket = '' // 存储 WebSocket 连接. let timeoutObj = null // 心跳定时器 let serverTimoutObj = null // 服务超时定时关闭 let lockReconnect = false // 是否真正建立了连接 let timeoutnum = null // 重新连接的定时器, 没连接上会一直

  • Vue中watch使用方法详解

    目录 前言 watch immediate和handler deep 拓展 前言 说到 vue 中的 watch 方法,大家可能首先想到,它是用来监听数据的变化,一旦数据发生变化可以执行一些其他的操作.但是 watch 的操作可不止如此,本章就带大家一起深剖细析 vue 中的 watch 方法. watch 因为 vue 是双向数据绑定,所以当页面数据发生变化时,我们通过 watch 方法就可以拿到数据变化前和变化后的值,从而做一系列操作,下面我们通过一个简单的例子来解释. 先看下面这段代码 <

  • vue指令以及dom操作详解

    "AngularJS 通过被称为 指令 的新属性来扩展 HTML.AngularJS 通过内置的指令来为应用添加功能.AngularJS 允许你自定义指令." 这是我最初接触"指令"这个词.还记得那时候,ng大行其道的时候,我特别好奇怎么给一个div加一个"ng-app" 就能解决这么多问题. 后来随着前端工作的深入,我用了jq的data-attr并且学会了jq的插件使用.但,这这并不能让我把它"指令"联想到一块,后来插件需要

  • VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解

    本文实例讲述了VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法.分享给大家供大家参考,具体如下: 昨天试用了VPS,花了一天部署了一个简单应用.在下面的过程中省去了用django 创建project的一步,忘记了你自己一用startporject 创建. 下面是原来边操作,边记录的东西,我习惯文本编辑.可能格式不好看.现在搬到博客中来. 首先安装GCC. yum -y install gcc automake autoconf libtool ma

  • Linux rpm、yum指令及使用方法详解

    rpm包的管理 一种用于互联网下载包的打包及安装工具.它生成具有.RPM 扩展名的文件, RPM是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe rpm包的简单查询指令 rpm –qa # 查询已安装的 rpm 列表 rpm 包名的基本格式 一个 rpm 包名:firefox-45.0.1-1.el6.centos.x86_64.rpm firefox:名称 45.0.1-1:版本号 el6.centos.x86

  • Vue对话框组件使用方法详解

    本文实例为大家分享了Vue对话框组件的使用,供大家参考,具体内容如下 效果如下图所示:(整体样式模仿ant-design-vue Modal样式,同时阴影覆盖浏览器窗口) ①创建组件Dialog.vue: <template>   <div class="m-dialog-mask">     <div class="m-modal">       <div class="m-modal-content"

  • Nginx服务器中配置非80端口的端口转发方法详解

    nginx可以很方便的配置成反向代理服务器: server { listen 80; server_name localhost; location / { proxy_pass http://x.x.x.x:9500; proxy_set_header Host $host:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy

随机推荐