if err != nil {
screen.TermMessage(err)
}
- err = config.RunPluginFn("init")
- if err != nil {
- screen.TermMessage(err)
- }
b := LoadInput()
action.InitTabs(b)
action.InitGlobals()
+ err = config.RunPluginFn("init")
+ if err != nil {
+ screen.TermMessage(err)
+ }
+
events = make(chan tcell.Event)
// Here is the event loop which runs in a separate thread
"unicode/utf8"
dmp "github.com/sergi/go-diff/diffmatchpatch"
+ "github.com/zyedidia/micro/internal/config"
+ ulua "github.com/zyedidia/micro/internal/lua"
+ "github.com/zyedidia/micro/internal/screen"
+ luar "layeh.com/gopher-luar"
)
const (
}
eh.UndoStack.Push(t)
- // TODO: Call plugins on text events
- // for pl := range loadedPlugins {
- // ret, err := Call(pl+".onBeforeTextEvent", t)
- // if err != nil && !strings.HasPrefix(err.Error(), "function does not exist") {
- // screen.TermMessage(err)
- // }
- // if val, ok := ret.(lua.LBool); ok && val == lua.LFalse {
- // return
- // }
- // }
+ b, err := config.RunPluginFnBool("onBeforeTextEvent", luar.New(ulua.L, t))
+ if err != nil {
+ screen.TermMessage(err)
+ }
+
+ if !b {
+ return
+ }
ExecuteTextEvent(t, eh.buf)
}