Script.NET 2.2版本最大的改进就是编辑器和调试器的易用性,其中自定义关键字、帮助索引、编辑器的API提示和变量提示等功能可以使脚本的开发调试更加方便,下面主要介绍一下如何对这些信息进行定制,例如自己增加帮助索引、提示信息,因为默认的索引库内容有限,如果新增了一些脚本库,在默认的索引库中可能就没有。下面分别介绍编辑方法:
自定义关键字的方法
Script.NET编辑器中的语言关键字列表的存储位置和Notepad++完全相同,默认情况下放在用户目录下,是一个xml文件,为了方便增加扩展关键字,可以通过编辑器设置界面进行添加,在编辑器设置界面选到对应语言的某种关键字,就可以看到相应的默认关键字和扩展关键字,其中扩展关键字是可以自定义。
自定义帮助索引的方法
在编辑器中某个单词上按F1键,如果这个单词在帮助索引库中可以找到,就可以在动态帮助窗口或起始页中显示相应的html帮助页面,所有能查找到的帮助索引信息都存储在相应脚本的帮助索引库中,索引库采用的是sqlite数据库,存放在Script.NET的Doc目录下,按照脚本来存储,每种脚本有一个索引数据库,文件名为keyword.s3db,例如tcl的索引库文件为Doc/tcl/keyword.s3db,python的为Doc/python/keyword.s3db。自定义帮助索引的方法就是找一个sqlite数据库编辑工具打开相应的数据库文件进行编辑,推荐SharpPlus SQLite Developer等工具。
keyword.s3db中目前有两个表,其中帮助索引存储在keyword表中,keyword表的字段定义如下:
# word - 关键字
# link - 链接信息
# tip - 保留字段
# desc - 保留字段
# import - 来源,关键字帮助从何处导入,例如从哪个hhk文件导入
需要关注的主要是word、link、import三个字段,word表示单词名,link是对应的帮助url链接,url是一个相对路径,从Doc目录下的相应的脚本帮助目录(也就是keyword.s3db所在目录)为起始路径,import是可选字段,用于存储此帮助索引是从什么地方导入的,对于批量导入的情况,有这个字段可以方便索引信息的维护,例如索引要更新的时候,可以根据import的内容批量的删除、更新某个地方导入的所有索引。Script.NET单独提供了一个帮助工具,可以用于帮助索引数据库的维护(例如可以从一个chm的hhc、hhk文件直接批量导入某个chm中的所有关键字页面,还可以从一个html文件中分析链接,自动导入指定页面中的所有关键字链接),此工具目前还没有对外发布,后续发布之后可以从蓝蚂蚁工作室的下载中心下载到。
自定义提示信息的方法
Script.NET 2.2版本新增了单词的提示信息功能,当鼠标移动到一个单词上时候,如果这个单词有存储的提示信息,就可以用tooltip的形式展示出来,如果在调试状态下,并且鼠标所在单词是一个变量,还可以看到变量的值信息。如下所示:
单词Tooltip的信息同样存储在keyword.s3db文件中,但表名是api,api表的结构如下:
# word - 关键字
# func[bool] - 是否函数
# retval - 返回值类型
# params - 参数名列表,用逗号分隔
# tip_en - 英文简短帮助信息,用于鼠标在关键字停留时候的tip提示帮助信息
# tip_zh - 中文简短帮助信息,用于鼠标在关键字停留时候的tip提示帮助信息
# desc_en - 英文描述信息
# desc_zh - 中文描述信息
# library - 属于什么库
# import - 来源,API信息从何处导入
其中关注的字段主要是word、tip、desc、library、import等字段,word、import和keyword表含义相同,tip字段就是存储tooltip的主要内容的字段,分为中英文,desc字段的内容会显示在tooltip窗口中单词的右边,用蓝色文字显示,library表示这个单词是属于哪个脚本库,例如python中wxPython、Tk等都可以叫作一个脚本库,其他字段是保留字段,目前没有用。
Script.NET默认带的索引库内容有限,很多内容也不一定就是最好的,因此希望对此工具感兴趣的人如果自己添加了一些有价值的帮助索引或tip信息,最好能将相应的keyword.s3db文件发给我,这样我可以更新到新版本的脚本开发包中,注意添加的时候对于索引表中的import字段最好写入有意义并且相同的内容,这样我就可以通过数据库工具按照import字段来分离出所有新增的记录。