返回介绍

Lua 编辑器选择

发布于 2019-08-25 05:47:42 字数 2608 浏览 1681 评论 0 收藏 0

一个好用趁手的编辑器可以为我们带来极大的工作效率提升,lua 本身并不挑编辑器只是一个存文本,但是如果有代码提示,方便的 goto 跳转,在我们理解别人的代码效率上将会有极大的提升。

我从最初的记事本编辑、vi,到后来的UE自定义语法高亮和函数列表,以及 scite 等寻找和尝试过能找到的绝大部分的 lua 编辑器,我想在编辑器选择上面(linux 下的不熟)应该比较有发言权,这里我主要讲我的环境是如何的。

选择过程我就不详述了,这里只讲解如果在你自己的 windows 上配置好 ide。

下载 idea 并配置

idea 是一个 java 语言非常受好评的编辑器,但是并不是只支持java,目前通过开放的插件编写已经支持绝大部分语言且使用的非常好用顺手,相信使用过的都会深有感受的.下载地址

其中 Community 版本是免费的,下载完后双击安装即可,安装完成后打开 File->Settings->Plugins 在其中输入 emmylua 点击右边的 install 安装并重启 idea

新建一个 lua 项目,在 File->Project Structure 里面配置好 modules 和 lib,如下图。

至此一个包含 lua 语法提示和调整的编辑器环境就配置好了,有关 emmylua 的详细帮助文档看这里

插件基本用法

1.方法提示

你可以在Setting里面配置鼠标移动到方法上后一定时间自动弹出


也可以按 Ctrl+q 手动弹出,效果如下,目前我使用的版本文档中的换行显示还有问题

2.快速跳转

在任何已经被定义的方法上按住Ctrl+鼠标点击该方法就可以自动打开和跳转到方法定义上面,非常方便

3.方法提示

在你输入识别的全局或者局部变量上面按点会自动出现可选方法做提示,不用记住所有的方法.

进阶配置

由于 emmylua 并没有自带 openresty 的库函数,所以我们需要自己写函数提示,这里我提供我自己写的供你们下载和丰富,请丢到你的 lualib 根目录中,下面是一个简单的库函数定义示例

---语法: pid = ngx.worker.pid()
---
---语法: set_by_lua*, rewrite_by_lua*, access_by_lua*, content_by_lua*, header_filter_by_lua*, body_filter_by_lua*, log_by_lua*, ngx.timer.*, init_by_lua*, init_worker_by_lua*
---
---这个函数返回一个Lua数字,它是当前 Nginx 工作进程的进程 ID (PID)。这个 API 比 ngx.var.pid 更有效,ngx.var.VARIABLE API 不能使用的地方(例如 init_worker_by_lua),该 API 是可以的。
---@return number
function ngx.worker.pid()
end

方法提示不一定要使用独立的文件定义,可以直接在库里面定义:

至于里面的含义就要去这里看和理解拉,总之如果你的库都定义好了方法提示,在你理解源码的时候将会非常方便快速.相信我

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文