Micro用のプラグインを開発する際、Lua(ルア)というスクリプト言語を用います。
Luaは、C言語のホストプログラムに組み込まれることを目的に設計されており、高速な動作と、高い移植性、組み込みの容易さが特徴であるらしく、Go言語で書かれたアプリケーションでもLuaが利用されるそうです。
Microのソースコードを読んでみると、GopherLuaというパッケージを介してLuaで書かれたコードを実行しているので、コードを理解を進める意味合いでGopherLuaを試してみます。
yuin/gopher-lua: GopherLua: VM and compiler for Lua in Go
GopherLuaはGo 1.19以降になりますので、最新版のGoをインストールするを参考にして最新版のGoを使えるようにしておきます。
続いて、GopherLuaを試すためのディレクトリを用意しておきます。
今回は例として、~/workspace/goluaにします。
$ cd ~ $ mkdir workspace $ cd workspace $ mkdir golua $ cd golua
go mod initとGopherLuaパッケージのインストールを行います。
$ go mod init golua $ go get github.com/yuin/gopher-lua
Goから読み込む為のLuaで書かれたファイルを用意します。
$ micro hello.lua
~/workspace/golua/hello.lua
print("hello")
準備が出来ましたので、GopherLuaを試してみます。
$ micro main.go
package main import ( "github.com/yuin/gopher-lua" ) func main() { L := lua.NewState() defer L.Close() if err := L.DoFile("hello.lua"); err != nil { panic(err) } }
ファイルをCtrl + sで保存後、Ctrl + qでファイルを閉じ、
$ go run main.go
でコードを実行してみます。
hello.goの方で書いた
hello
が表示されれば成功です。