github.com/jmigpin/editor@v1.6.0/plugins/eevents/eevents.go (about) 1 package main 2 3 import ( 4 "path/filepath" 5 6 "github.com/jmigpin/editor/core" 7 ) 8 9 var h Handler 10 11 func OnLoad(ed *core.Editor) { 12 h.ed = ed 13 // Register for editor events. Use return value to unregister. 14 _ = ed.EEvents.Register(core.PostNewERowEEventId, h.onEvent1) 15 _ = ed.EEvents.Register(core.PostFileSaveEEventId, h.onEvent1) 16 _ = ed.EEvents.Register(core.PreRowCloseEEventId, h.onEvent1) 17 _ = ed.EEvents.Register(core.RowStateChangeEEventId, h.onEvent2) 18 } 19 20 //---------- 21 22 type Handler struct { 23 ed *core.Editor 24 } 25 26 func (h *Handler) onEvent1(ev interface{}) { 27 h.ed.Messagef("handler1: %T\n", ev) 28 } 29 func (h *Handler) onEvent2(ev interface{}) { 30 h.ed.Messagef("handler2: %T\n", ev) 31 32 e := ev.(*core.RowStateChangeEEvent) 33 name := filepath.Base(e.ERow.Info.Name()) 34 h.ed.Messagef("handler2: %T, %p, %v, %v, %v\n", ev, e.ERow, name, e.State, e.Value) 35 }