HBuilder js 自定义代码块
1 =begin 2 本文档是HBuilder预置的js代码块的文件。注意不要把其他语言的设置放到js里来。 3 如果用户修改此文档,HBuilder升级后会覆盖用户的修改,建议进入菜单 工具→扩展代码块 扩展相应的代码块。 4 若修改本文档,需要重启才能生效。修改过程中注意备份。 5 脚本开源地址 https://github.com/dcloudio/HBuilderRubyBundle 6 1、编辑代码块 7 如果要新增一个代码块,复制如下一段代码到空白行,然后设定参数。 8 snippet "document.getElementById" do |s| #‘document.getElementById‘是代码块的显示名字; 9 s.trigger = "dgi" #‘dgi‘ 是激活字符,比如输入dgi均会在代码提示时显示该代码块; 10 s.expansion = "document.getElementById(\"$1\")" #expansion是设定该代码块的输出字符,其中$0、$1是光标的停留和切换位置。 11 #如果输出涉及到换行和tab,也需严格在这里使用换行和tab。 12 #输出双引号在前面加\来转义,输出$使用$$转义 13 s.needApplyReContentAssist = true #输入代码块后立即在$1位置激活代码提示助手 14 end 15 2、编辑按键命令 16 如果要新增一个按键操作命令,复制如下一段代码到空白行,然后设定参数。 17 command t(:multicomment) do |cmd| #:首先起个名字,multicomment是名字 18 cmd.key_binding = ‘M1+M2+/‘ #这里绑定触发按键,这里是Ctrl+Shift+/ 19 cmd.input = :selection #输入内容是选中区域的内容 20 cmd.invoke do |context| 21 selection = ENV[‘TM_SELECTED_TEXT‘] || ‘‘ 22 # 如果选区长度大于0,则输出如下字符。回车符就使用真实回车。如下输出即在选中内容前后加上/* */的注释 23 if selection.length > 0 24 "/* 25 ${1:#{selection}} 26 */" 27 end 28 end 29 end 30 =end 31 32 require ‘ruble‘ 33 34 with_defaults :scope => "source.js" do #=====JS代码块编辑=============================== 35 36 snippet t(:object_method) do |s| 37 s.trigger = ":f" 38 s.expansion = "${1:method_name}: function(${2:attribute}){ 39 $0 40 }${3:,}" 41 end 42 43 snippet "function" do |s| 44 s.trigger = "funn" 45 s.expansion = "function ${1:function_name} ($2) { 46 $3 47 }" 48 end 49 50 snippet t(:function_anonymous) do |s| 51 s.trigger = "funan" 52 s.expansion = "function ($1) { 53 $2 54 }" 55 end 56 57 snippet t(:function_closures) do |s| 58 s.trigger = "funcl" 59 s.expansion = "(function ($1) { 60 $2 61 })($3)" 62 end 63 64 snippet t(:prototype) do |s| 65 s.trigger = "proto" 66 s.expansion = "${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) { 67 ${0:// body...} 68 }; 69 " 70 end 71 72 snippet t(:if) do |s| 73 s.trigger = "iff" 74 s.expansion = "if ($1) { 75 $2 76 }" 77 end 78 79 snippet t(:if_else) do |s| 80 s.trigger = "ife" 81 s.expansion = "if ($1) { 82 83 } else{ 84 85 }" 86 end 87 88 89 snippet t(:if_compare) do |s| 90 s.trigger = "ifc" 91 s.expansion = "if ($1 == ${2:true}) { 92 93 } else{ 94 95 }" 96 end 97 98 snippet t(:for) do |s| 99 s.trigger = "forr" 100 s.expansion = "for ($1) { 101 $2 102 }" 103 end 104 105 snippet t(:fori) do |s| 106 s.trigger = "fori" 107 s.expansion = "for (var i = 0; i < ${1:Things}.length; i++) { 108 ${1:Things}[i] 109 }" 110 end 111 112 snippet t(:with) do |s| 113 s.trigger = "withh" 114 s.expansion = "with ($1){ 115 $2 116 }" 117 end 118 snippet t(:typeof) do |s| 119 s.trigger = "typeoff" 120 s.expansion = ‘typeof($1)=="${2:undefined/boolean/function/number/object/string}"‘ 121 end 122 123 snippet t(:switch_case) do |s| 124 s.trigger = "switchcase" 125 s.expansion = "switch (${1}){ 126 case ${2:value}: 127 break; 128 default: 129 break; 130 }" 131 end 132 133 snippet "while" do |s| 134 s.trigger = "whilee" 135 s.expansion = "while (${1:condition}){ 136 137 }" 138 end 139 140 snippet "var i=0;" do |s| 141 s.trigger = "vari" 142 s.expansion = "var ${1:i}=${2:0};" 143 end 144 145 snippet "var s=\"\";" do |s| 146 s.trigger = "vars" 147 s.expansion = "var ${1:s}=\"$2\";" 148 end 149 150 snippet "var a=[];" do |s| 151 s.trigger = "vara" 152 s.expansion = "var ${1:a}=[$2];" 153 end 154 155 snippet "var l=a.length;" do |s| 156 s.trigger = "varl" 157 s.expansion = "var ${1:l}=${2:a}.length;" 158 end 159 160 snippet "var c = canvas" do |s| 161 s.trigger = "varc" 162 s.expansion = "var ${2:c} = document.getElementById(\"$1\").getContext(\"2d\");" 163 s.needApplyReContentAssist = true 164 end 165 166 snippet "var xhr" do |s| 167 s.trigger = "varxhr" 168 s.expansion = "var ${1:xhr} = new XMLHttpRequest(); 169 xhr.open(\"${2:GET/POST/PUT}\",\"$3\",${4:true/false});" 170 end 171 172 snippet "return true;" do |s| 173 s.trigger = "returntrue" 174 s.expansion = "return true;" 175 end 176 177 snippet "return false;" do |s| 178 s.trigger = "returnfalse" 179 s.expansion = "return false;" 180 end 181 182 snippet "console.log();" do |s| 183 s.trigger = "consolelog" 184 s.expansion = "console.log(\"$1\");" 185 end 186 187 snippet "try{}catch(e)" do |s| 188 s.trigger = "trycatch" 189 s.expansion = "try{ 190 $1 191 }catch(e){ 192 //TODO handle the exception 193 }" 194 end 195 196 snippet "$ (document.getElementById)" do |s| 197 s.trigger = "$$$" 198 s.expansion = "document.getElementById(\"$1\")" 199 s.needApplyReContentAssist = true 200 end 201 202 snippet ‘$("")‘ do |s| 203 s.trigger = "dl" 204 s.expansion = "$$(\"$1\")" 205 s.needApplyReContentAssist = true 206 end 207 snippet ‘$("#")‘ do |s| 208 s.trigger = "dlid" 209 s.expansion = "$$(\"\#$1\")" 210 s.needApplyReContentAssist = true 211 end 212 snippet ‘$(".")‘ do |s| 213 s.trigger = "dlclass" 214 s.expansion = "$$(\".$1\")" 215 s.needApplyReContentAssist = true 216 end 217 218 snippet "document.getElementById" do |s| 219 s.trigger = "dgi" 220 s.expansion = "document.getElementById(\"$1\")" 221 s.needApplyReContentAssist = true 222 end 223 224 snippet "document.querySelectorAll" do |s| 225 s.trigger = "dqs" 226 s.expansion = "document.querySelectorAll(\"$1\")" 227 s.needApplyReContentAssist = true 228 end 229 230 snippet "document.write" do |s| 231 s.trigger = "dw" 232 s.expansion = "document.write(\"$1\")" 233 end 234 235 snippet "navigator.userAgent;" do |s| 236 s.trigger = "nuser" 237 s.expansion = "navigator.userAgent" 238 end 239 240 snippet t(:object_value) do |s| 241 s.trigger = ":," 242 s.expansion = "${1:value_name}:${0:value}," 243 end 244 245 snippet t(:object_key) do |s| 246 s.trigger = ":" 247 s.expansion = ‘${1:key}: ${2:"${3:value}"}${4:, }‘ 248 end 249 250 snippet t(:setTimeout) do |s| 251 s.trigger = "timeout" 252 s.expansion = "setTimeout(function() {$0}, ${1:10});" 253 end 254 255 snippet t(:object_method_string) do |s| 256 s.trigger = ‘:f‘ 257 s.expansion = "‘${1:${2:#thing}:${3:click}}‘: function(element){ 258 $0 259 }${4:,}" 260 end 261 262 snippet "@alias" do |s| 263 s.trigger = "@alias" 264 s.locationType="JS_DOC" 265 s.expansion = "@alias ${1:alias_name}" 266 end 267 268 snippet "@author" do |s| 269 s.trigger = "@author" 270 s.locationType="JS_DOC" 271 s.expansion = "@author ${1:author}" 272 end 273 274 snippet "@classDescription" do |s| 275 s.trigger = "@classDescription" 276 s.locationType="JS_DOC" 277 s.expansion = "@classDescription {${1:namespace}} ${2:description}" 278 end 279 280 snippet "@constructor" do |s| 281 s.trigger = "@constructor" 282 s.locationType="JS_DOC" 283 s.expansion = "@constructor ${1:description}" 284 end 285 286 snippet "@example" do |s| 287 s.trigger = "@example" 288 s.locationType="JS_DOC" 289 s.expansion = "@example ${1:example_code}" 290 end 291 292 snippet "@exception" do |s| 293 s.trigger = "@exception" 294 s.locationType="JS_DOC" 295 s.expansion = "@exception {${1:exception_type}} ${2:description}" 296 end 297 298 snippet "@extends" do |s| 299 s.trigger = "@extends" 300 s.locationType="JS_DOC" 301 s.expansion = "@extends {${1:parent_type}} ${2:description}" 302 end 303 304 snippet "@function" do |s| 305 s.trigger = "@function" 306 s.locationType="JS_DOC" 307 s.expansion = "@function ${1}" 308 end 309 310 snippet "@internal" do |s| 311 s.trigger = "@internal" 312 s.locationType="JS_DOC" 313 s.expansion = "@internal ${1}" 314 end 315 316 snippet "@param" do |s| 317 s.trigger = "@param" 318 s.locationType="JS_DOC" 319 s.expansion = "@param {${1:boolean/function/number/object/string/AttrString/ClassString/ColorString/CSSString/CSSURIString/EventString/FontString/HTMLString/IDString/ImageURIString/JSURIString/MultimediaString/SelectorString/TagString/URIString}} ${2:param_name}" 320 end 321 322 snippet "@private" do |s| 323 s.trigger = "@private" 324 s.locationType="JS_DOC" 325 s.expansion = "@private ${1}" 326 end 327 328 snippet "@property" do |s| 329 s.trigger = "@property" 330 s.locationType="JS_DOC" 331 s.expansion = "@property ${1}" 332 end 333 334 snippet "@return" do |s| 335 s.trigger = "@return" 336 s.locationType="JS_DOC" 337 s.expansion = "@return {${1:return_type}} ${2}" 338 end 339 340 snippet "@see" do |s| 341 s.trigger = "@see" 342 s.locationType="JS_DOC" 343 s.expansion = "@see ${2:link}" 344 end 345 346 snippet "@type" do |s| 347 s.trigger = "@type" 348 s.locationType="JS_DOC" 349 s.expansion = "@type {${1:boolean/function/number/object/string/AttrString/ClassString/ColorString/CSSString/CSSURIString/EventString/FontString/HTMLString/IDString/ImageURIString/JSURIString/MultimediaString/SelectorString/TagString/URIString}} ${2:param_name}" 350 end 351 352 snippet "@userAgent" do |s| 353 s.trigger = "@userAgent" 354 s.locationType="JS_DOC" 355 s.expansion = "@userAgent ${1:browser1}:${2:version1},${3:browser2}:${4:version2}" 356 end 357 358 end 359 360 361 with_defaults :scope => "source.js", :input => :none, :output => :insert_as_snippet do |bundle| 362 =begin 363 command t(:multicomment) do |cmd| #:首先起个名字,multicomment是名字 364 cmd.key_binding = ‘M1+M2+/‘ #这里绑定触发按键,这里是Ctrl+Shift+/ 365 cmd.input = :selection #输入内容是选中区域的内容 366 cmd.invoke do |context| 367 selection = ENV[‘TM_SELECTED_TEXT‘] || ‘‘ 368 # 如果选区长度大于0,则输出如下字符。回车符就使用真实回车。如下输出即在选中内容前后加上/* */的注释 369 if selection.length > 0 370 "/* 371 ${1:#{selection}} 372 */" 373 end 374 end 375 end 376 =end 377 end
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。