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  }