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  }