【转】增强 scite 编辑器的代码提示功能

在 windows 下写 Lua, 我能找到的最好的编辑器就是 luaForWindows 项目里带的 scite。 npp (即 notepad++ ) 也将就着能用, 不过只有代码高亮和简单的单词/函数提示, 跟 scite 比起来实在是简陋。很多人说 vim 是最好的, 可是不知道为啥我比较疏远 vim, 就是不大喜欢, 以后有需要的时候再摸索vim吧。

用 scite 实在不错, 你可以做到对 lua 代码的单步调试, 设置断点, 查看变量值, 栈追踪, 代码提示(比 npp 要强大)。 调试方面, luaForWindows 里的 scite 都已经配好了, 主要是默认的代码提示还需要改进。
默认情况下, scite 只有函数参数列表提示。 当你输入 print 并按 '(' 时, 会弹出提示如图:

但是假如我不知道 print 这个函数, 不知道是 print, 还是 printf, 希望 scite 能够有提示怎么办?
只需要改动 SciTEGlobal.properties 这个文件, 在文件里添一句:
autocomplete.*.start.characters=.$(chars.alpha)

意思是说, 当按下句点 '.', 以及字母键的时候, 弹出自动完成提示。 这时候只要你按下 'p', 就会弹出提示 'pairs, pcall, print' 可选。 可以看到标准库里没有 printf。

当然,这个提示是可以自己定制的。 lua.properties 文件中指定了 api 文件:
api.$(file.patterns.lua)=$(SciteDefaultHome)\lualib5_annot.api

打开 lualib5_annot.api这个文件, 可以看到这样一行:
print (e1, e2, ...) prints values to stdout using tostring
这就是所谓的代码提示内容啦。

如果要写自己的 api 文件, 先在配置文件加上自定义的文件名 xxx.api, 如此:
api.$(file.patterns.lua)=$(SciteDefaultHome)\lualib5_annot.api;$(SciteDefaultHome)\xxx.api

注意两个api 文件路径用 分号分割, 分号后不要空格

然后就可以在 xxx.api 里写自己的代码提示了

另外, SciTEGlobal.properties 文件里可以加上这么一句:
autocomplete.*.fillups=(

本来代码提示出来之后要按一下 tab 键补全, 现在直接按左括号 '(', 省掉了按 tab 这一下, 略缓解小拇指疲劳啊

原文链接:http://blog.csdn.net/zhangxaochen/article/details/8104034

posted @ 2015-07-29 15:49  wuling129  阅读(630)  评论(0编辑  收藏  举报