package main import ( "log" lua "github.com/yuin/gopher-lua" luar "layeh.com/gopher-luar" "github.com/zyedidia/micro/internal/action" ulua "github.com/zyedidia/micro/internal/lua" "github.com/zyedidia/micro/internal/screen" ) func init() { ulua.L = lua.NewState() ulua.L.SetGlobal("import", luar.New(ulua.L, LuaImport)) } func LuaImport(pkg string) *lua.LTable { if pkg == "micro" { return luaImportMicro() } else { return ulua.Import(pkg) } } func luaImportMicro() *lua.LTable { pkg := ulua.L.NewTable() ulua.L.SetField(pkg, "TermMessage", luar.New(ulua.L, screen.TermMessage)) ulua.L.SetField(pkg, "TermError", luar.New(ulua.L, screen.TermError)) ulua.L.SetField(pkg, "InfoBar", luar.New(ulua.L, action.GetInfoBar)) ulua.L.SetField(pkg, "Log", luar.New(ulua.L, log.Println)) ulua.L.SetField(pkg, "TryBindKey", luar.New(ulua.L, action.TryBindKey)) return pkg }