JFinal使用技巧-HBuilderX的Enjoy指令语法提示

用过HBuilderX的肯定都说好, 这里分享一个 HBuilderX的Enjoy语法提示配置,看见小木老师分享的eclipse里Enjoy编辑器,想起我这里也是有一个HBuilderX的,不多说,看使用方式:

官网 https://www.dcloud.io/hbuilderx.html

这个位置:然后把下面的配置粘贴进去就可以了 :)

image.png

{
	// 注意:本文档仅支持单行注释,并且'//'前不能有任何非空字符!!!
	//
    // HBuilderX使用json扩展代码块,兼容vscode的代码块格式
    // 本文档修改完毕,保存即可生效,无需重启。
 	// 本文档用于用户自定义html代码块。
    // 每个配置项的说明如下:
    // "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"
	// }
	"#()": {
		"prefix": "#()",
		"body": [
			"('$1')"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#if()": {
		"prefix": "#if()",
		"body": [
			"if($1)$2#end"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#else if()": {
		"prefix": "#else if()",
		"body": [
			"else if($1)$2"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#else": {
		"prefix": "#else",
		"body": [
			"else"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#for": {
		"prefix": "#for",
		"body": [
			"for(x : $1)",
			"\t#(x.$2)",
			"#end"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#forMap": {
		"prefix": "#for",
		"body": [
			"for(x : $1)",
			"\t#(x.key)",
			"\t#(x.value)",
			"#end"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#forList": {
		"prefix": "#for",
		"body": [
			"for(x : $1)",
			"\t#(for.size) ###被迭代对象的 size 值",
			"\t#(for.index) ###从 0 开始的下标值",
			"\t#(for.count) ###从 1 开始的记数值",
			"\t#(for.first) ###是否为第一次迭代",
			"\t#(for.last) ###是否为最后一次迭代",
			"\t#(for.odd) ###是否为奇数次迭代",
			"\t#(for.even) ###是否为偶数次迭代",
			"\t#(for.outer) ###引用上层 #for 指令状态",
			"#end"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#continue": {
		"prefix": "#continue",
		"body": [
			"continue"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#break": {
		"prefix": "#break",
		"body": [
			"break"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#switch": {
		"prefix": "#switch",
		"body": [
			"switch($1)",
			"\t#case ($2)",
			"\t\t#($3)",
			"\t#default",
			"\t\t#($4)",
			"#end"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#set": {
		"prefix": "#set",
		"body": [
			"set($1 = $2)"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#include": {
		"prefix": "#include",
		"body": [
			"include(\"$1\")"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#render": {
		"prefix": "#render",
		"body": [
			"render($1)"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#define": {
		"prefix": "#define",
		"body": [
			"define $1($2)",
			"\t$3",
			"#end"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#call": {
		"prefix": "#call",
		"body": [
			"call(${1:true/funcName}, p1, p2)"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#date": {
		"prefix": "#date",
		"body": [
			"date($2, \"${1:yyyy-MM-dd/yyyy-MM-dd HH:mm/yyyy-MM-dd HH:mm:ss/MM-dd}\")"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#keepPara": {
		"prefix": "#keepPara",
		"body": [
			"keepPara(Date.class, \"createAt\")"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#number": {
		"prefix": "#number",
		"body": [
			"number($1, \"#.##\")"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#escape": {
		"prefix": "#escape",
		"body": [
			"escape($1)"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	},
	"#string": {
		"prefix": "#string",
		"body": [
			"string($1)",
			"\t",
			"#end"
		],
		"triggerAssist": false,
		"description": "https://www.jfinal.com/doc/6-4"
	}
}

保存后就生效了, 使用时 输入 #  就出现了提示,还可以很简单的扩展自己的命令~


评论区

山东小木

2019-05-26 15:38

之前一直想在Hbuilder基础上增加JFinal Java web开发 不开源没法整合 就自己独立编写Eclipse编辑器了
你这个hbuilderx能跟Eclipse一样开发java web吗?

JFinal

2019-05-26 15:46

这种操作能否用于普通的 eclipse ? 我记得 eclipse 也是可以配置代码模板的

杜福忠

2019-05-26 15:51

@山东小木 老师,这个HBuilderX貌似只搞前端,没见用来开发Java的。写Java还是eclipse和idea比较爽吧

山东小木

2019-05-26 15:53

@JFinal eclipse配置模板是可以的,但是开发定制会更好 你看看我发的文章案例:http://www.jfinal.com/share/1606 @杜福忠

杜福忠

2019-05-26 16:11

@JFinal 老大是的,可以添加代码块,以前还配置过一套,后来用了HBuilderX就转了。@山东小木 而且小木老师是有集成在JBolt里面的,可以直接用

lyh061619

2019-05-26 19:48

映象Hbuilder以前是基于eclipse内核根据自己产品线深度定做的,基本上看不到eclipse的影子了,做得还不错,但套界面,这块还是觉得idea方便些,特别是套界面指定标签全选功能一个快捷健 ctrl+w即可全选。

Sohnny

2019-05-27 09:52

@杜福忠 hbuilder 和 hbuilderx 设计都还行, 最头疼的就是没有完全的eclipse快捷键, 例如向下/上复制一行, 用 hbuilderx 不开发app的话, 还不如直接用vs code, 插件生态也多

北流家园网

2019-05-27 11:06

HBuilderX不觉得好使,我一下使用HBuilder。希望能加个语法提示上来。@山东小木 Eclipse/MyEclipse开发HTML有点卡,语法提示不全,HBuilder比较爽,语法提示很智能。

山东小木

2019-05-27 11:26

@北流家园网 JBolt插件主要是为开发基于JFinal模板引擎的前端代码 定位不一样 前后端分离的项目 自然用不上JFinal模板引擎的指令

山东小木

2019-05-27 11:27

@Sohnny hbuilderx并不是基于Eclipse开发的 hbuilder也不完全是 主要是用了ruby开发智能智能提示 而且是RCP项目 并不是在Eclipse上搞的

山东小木

2019-05-27 11:28

相比较而言还是基于Eclipse做定制插件更好 既能满足使用Eclipse原有能力开发JFinal项目 又能在原有能力基础上增加指令和特殊标签提示完成

杜福忠

2019-05-27 11:58

2333编辑器各有各的长处, 我喜欢几种编辑器混着用, 都指向同一个目录即可。 喜欢用才是最好的。不用纠结

Sohnny

2019-05-27 13:50

@山东小木 我没说hbuilderx是基于eclipse搞的吧? 我说没有很全的eclipse快捷键, 我用vs code,就有全部的eclipse快捷键插件, 而且也可以开发java web

Sohnny

2019-05-27 13:56

@山东小木 Hbuilder 开发前台页面效率是高,但是插件生态是个缺点, 貌似是基于eclipse低版本做的,很多eclipse市场里的插件用起来有兼容问题。

山东小木

2019-05-27 14:27

@Sohnny 恩 java web开发 还是eclipse或者IDEA就挺好

梦行

2019-05-27 15:19

HBuilder 是基于 Eclipse 深度定制的,后面新出的 HBuilder X 就是基于 C++ Qt 开发的了

Sohnny

2019-05-27 16:32

@山东小木 vs code 适合电脑配置不高的人用,占用内存小,响应快,轻量级的ide

热门分享

扫码入社