UltraEdit个性化定制-Hive QL代码折叠、函数列表及自动补全

UltraEdit是程序员的完美情人,我就不赘述其强大易用了,一句话,谁玩谁知道。本文旨在帮助你个性化配置UE,以便在写Hive QL代码时能够更高效舒畅。具体而言,实现以下目的:


* 对Hive QL代码实现折叠,效果如图1。

UltraEdit个性化定制-Hive QL代码折叠、函数列表及自动补全_第1张图片

图1

或者像图2这样的:


图2

折叠后视图如3:

UltraEdit个性化定制-Hive QL代码折叠、函数列表及自动补全_第2张图片

图3


* 在函数列表中列出Hive QL中的表名,点击时可以定位。

比如上面两个表在函数列表中显示:


图4


* 输入头两个字符,自动补全表名。

我们已经建好了t_ue_syntax和t_ue_syntax_tmp1两张表了,当我们要使用这两张表时,输入表名的开头,即可自动给出全名。

UltraEdit个性化定制-Hive QL代码折叠、函数列表及自动补全_第3张图片

图5

接下来我们通过配置实现以上三类效果,首先从UE的语法高亮文件谈起。


创建语法高亮文件

你肯定不希望还像对着个记事本一样来使用UE吧?那么我们首先要让代码鲜艳起来,各关键字应泾渭分明,输入错误可以及时发现。为此,像大多数IDE一样,UE提供了语法着色功能,这是通过调用语法高亮文件来实现的,我们可以为不同类型(文件后缀)的文档配置不同的着色方案。UE内置了十多种语法高亮文件,这些文件存放在特定路径下,你应该要知道这个路径是什么。通过“高级-配置-编辑器显示-语法着色”,在“文档的完整目录名称”下的文本框中可以看到语法高亮文件的完整路径:

C:\Users\<user_account>\AppData\Roaming\IDMComp\UltraEdit\wordfiles

该目录下的所有.uew文档都会被当成语法高亮文件,如图6。

UltraEdit个性化定制-Hive QL代码折叠、函数列表及自动补全_第4张图片

图6

关于wordfile的官方介绍看这里:

http://www.ultraedit.com/downloads/extras/wordfiles.html

我们把Hive QL的代码文件后缀设置为.hql。现在我们要为后缀为这类文档新建一个语法高亮文件,可以选择在wordfile.uew中增加一种着色类型,亦可以单独创建一个文件。比如我们创建一个名为hiveql.uew的文件,为所有后缀为.hql的文档进行语法着色。由于Hive QL语法和MySql语法类似,我们偷个懒,直接拷贝mysql.uew的内容到hiveql.uew中,再对其作修改。

在修改以前,我们来看看如记事本般的代码(假设文件名为test.hql),它是这样的:


图7
首先,我们要让hiveql.uew关联到.hql文件中。hiveql.uew第一行是:
/L13"MySQL 5.1" SQL_LANG Nocase Line Comment = # Line Comment Alt = -- Block Comment On = /** Block Comment Off = **/ Escape Char = \File Extensions = SQL
修改为:
/L21"Hive QL" HQL_LANG Nocase Line Comment = # Line Comment Alt = -- Block Comment On = /** Block Comment Off = **/ Escape Char = \File Extensions = HQL

保存后重新启动UE,注意这时我们的test.hql代码已经变成:

UltraEdit个性化定制-Hive QL代码折叠、函数列表及自动补全_第5张图片

图8
如果没有起作用,则在test.hql文件下,选择“高级-配置-编辑器显示-语法着色”,在“语言选择”栏的下拉菜单中,选择“Hive QL”,确定即可。
上述代码中,drop table等关键词显示为橙色,not显示为蓝色,而string则显示为红色,这是由/Cn开头的代码块决定的:
/C1"Functions"
……
/C2"Variable Types"
……
/C3"Reserved Words"
……
/C4"Operators"

……


代码折叠

在hiveql.uew中找到以下两行:
/Open Fold Strings = "{"
/Close Fold Strings = "}"
这一配置的意思是,“{”和“}”之间的代码作为一个折叠。我们将其修改为
/Open Fold Strings = "create table" "create external table"
/Close Fold Strings = ";"

注意到不同的open fold string之间用空格隔开。


函数列表框列出表名

UE的正则表达式与我们在java、js中见过的不一样,具体可参考帮助文档。为了将建表语句的表名提取出来作为函数名,我们在uew文档中添加以下几行:
/Function String 1 = "%[ ^t]++create table if not exists ^(*^)([ ^t]++$"
/Function String 2 = "%[ ^t]++create table if not exists ^(*^)as[ ^t]++$"
/Function String 3 = "%[ ^t]++create external table if not exists ^(*^)([ ^t]++$"

/Function String 4 = "%[ ^t]++create external table if not exists ^(*^)as[ ^t]++$"


自动补全表名

选择“高级-配置-编辑器-自动完成”,勾选“自动显示‘自动完成’对话框”,并在其中定义好“当输入x个字符”时,自动补全。

UltraEdit个性化定制-Hive QL代码折叠、函数列表及自动补全_第6张图片

图9


快捷键

你可能需要一些快捷键,来使工作更爽,比如你需要用快捷键来实现代码全部折叠或全部展开的功能。选择“高级-配置-键盘映射”,在“命令”框中找到ViewCollapseAll(全部折叠)和ViewExpandAll(全部展开),可以使用已存在键,也可以为其设置新的键。点击“在编辑器显示键盘映射”,可以直接在编辑器中编辑快捷键。

你可能感兴趣的:(UltraEdit个性化定制-Hive QL代码折叠、函数列表及自动补全)