github.com/jmigpin/editor@v1.6.0/util/iout/iorw/rwedit/insertstring.go (about) 1 package rwedit 2 3 func InsertString(ctx *Ctx, s string) error { 4 n := 0 5 ci := ctx.C.Index() 6 if a, b, ok := ctx.C.SelectionIndexes(); ok { 7 n = b - a 8 ci = a 9 ctx.C.SetSelectionOff() 10 } 11 if err := ctx.RW.OverwriteAt(ci, n, []byte(s)); err != nil { 12 return err 13 } 14 ctx.C.SetIndex(ci + len(s)) 15 return nil 16 }