Sublime中实时校验sql语法和拼写错误
之前使用sublime更多的是当做文本编译器来使用,之前也了解过其插件的生态做的比较好,今天决定探寻一下。
开始先从sql下手,因为大多的编程语言都有自己的开发环境,可以动态的发现一些语法错误。但是sql基本上需要执行的时候才会告诉你语法有问题,这个时候如果是简单sql还好,但是如果结构复杂执行起来比较慢的时候,一遍一遍的试错其实时间成本是非常大的,那么有没有一个工具在编写的时候就可以对sql进行语法校验,提前发现错误所在。
sqlint 介绍
https://github.com/purcell/sqlint
他是一款扫描sql文件的工具,可以给出文件中不符合sql语法规范。
基本用法是这样的:sqlint + “具体的文件名”

其中我的test.sql的内容是这个样子的

当我文件里面的括号没有命名时,他会告诉你具体的错误。
安装
只需执行
sudo gem install sqlint
然后就静静的等待就好了
验证是否安装成功

输入命令后有路径显示表示系统识别了sqlint
这个指令,安装成功。
结合sublime
虽然现在可以识别出语法错误,但是每一次只能识别一个错误,这样在文本编译器和命令行之间来回切换也是比较麻烦的,要想集成的使用便要依赖sublime插件。
SublimeLinter 插件
https://github.com/SublimeLinter/SublimeLinter
他是一款扫描并校验语法规则的插件,但是仅仅安装它还是不够的,因为它起到的是一个平台的作用,提供一个主动扫描的能力,具体语法规则需要单独安装具体的语言插件。
具体安装过程
先按组合键command+shift+p 调出功能栏 然后输入 install关键字

选择install package 等待它加载资源,这个时候会看到左下角有个加载图表

然后会有一个新的输入框,里面就是要输入插件的名字,可以简单的输入SublimeLinter
,你就会看到很多的插件。注意,选择名称完全符合、不带横杠的,我的图里是因为已经安装过了,所以不再显示了

安装完后会有一个sublime自己的tab页弹出来,说明安装成功了。
插件和校验工具的连接器
然后要想实现sqlint
在sublime中使用,还需要一个特定的插件,SublimeLinter-contrib-sqlint
https://github.com/trezona-lecomte/SublimeLinter-contrib-sqlint
安装方法和SublimeLinter
一样,成功后也会有一个tab出来。
重要一步
这个时候SublimeLinter-contrib-sqlint
还不能使用sqlint
,因为它并不知道sqlint
具体的安装目录,还记得之前验证安装sqlint
的指令嘛。

这个路径后面会用到
然后在sublime中点击配置文件

这里要配置一下sqlint
路径,可以从左边的tab页面中将path
相关的内容复制到右边来,然后在相应的系统后面加入上面的那个sqlint
路径,别忘了最外面的大括号哦。

保存这个页面,如果配置不正确会有提示的,无反应则关闭重启应用。
大功告成
这个时候你打开sql文件,或者用了其他插件让sublime识别到了这个文本是sql时,左侧就会有红点提示。

这个时候也可以按 command+ctrl+a查看具体错误描述

写在最后
前面说到让sublime识别到文本是sql才可以触发校验功能,识别sql文本有两个方式,第一种是将文件保存为.sql结尾的文件,第二种是用一个叫SqlBeautifier的插件对文本进行sql的格式化,格式化后校验的功能也会随即启动。