SciTE中强大的Lua脚本语言

来源:百度文库 编辑:神马文学网 时间:2024/06/30 21:47:08
━━━━━━━━━━━━━━━━━━━━━━━━━━
转自:〈胡子软件工作室〉 http://hi.baidu.com/boxroom
编辑器中内嵌自己的宏语言已经是常见的事情,而且是否有宏语言已经成为一个编辑器是否强大的标准之一。不过,我所了解的编辑器中宏语言能强大到如SciTE内嵌的Lua script语言的确属未见。
SciTE的好处已经说过很多了,许多用户看中的是它的小巧、快速、简洁和易定制的功能。这些优点也是我最初看中SciTE的原因。随着对SciTE了解的深入,我发现SciTE更为引人注目的方面应该是极易扩充功能。这种扩充表现在两个方面:一是源代码开放,用户很容易通过修改源代码来丰富SciTE的功能。这方面我已经完成了几个不同的Lexer,足以满足自己日常工作的需求了。另一个扩展SciTE功能的途径是通过Lua脚本语言来实现。马宏斌在他的MTeX套装中的Sc1(SciTE的一个静态编译的版本)中已经引入大量通过Lua脚本实现的功能。令人吃惊的是通过Lua脚本实现SciTE功能的扩充代码量极小,因此在资源耗用不大的情况下,通过Lua脚本扩充SciTE的功能还是很方便的。考虑到下一代的TeX引擎--LuaTeX将在TeX中引入Lua的因素,现在是时候来认真对待Lua脚本语言了。
在SciTE中编辑TeX文件,很多人总要问:“象WinEdt那样输入‘\ref{’后自动出现label列表的功能怎么实现呀?”一直以来,对类似这样的问题感觉停不容易实现的。没想到,看了看Lua语言后(其实还未完全看懂它的语法),只用了几个小时,用了不到2K的代码就实现了这个功能。而且,因为这次尝试,今后我的SciTE版本可能又要增加很多功能了:子文件列表、打开全部子文件、TeX宏包列表......等等等等。这些功能已经在开发中了,请MiCTeX用户密切关注我在CTeX BBS上随时发布的消息。