github.com/jmigpin/editor@v1.6.0/util/iout/iorw/rwedit/delete.go (about) 1 package rwedit 2 3 import "github.com/jmigpin/editor/util/iout/iorw" 4 5 func Delete(ctx *Ctx) error { 6 a, b, ok := ctx.C.SelectionIndexes() 7 if ok { 8 ctx.C.SetSelectionOff() 9 } else { 10 a = ctx.C.Index() 11 _, size, err := iorw.ReadRuneAt(ctx.RW, a) 12 if err != nil { 13 return err 14 } 15 b = a + size 16 } 17 if err := ctx.RW.OverwriteAt(a, b-a, nil); err != nil { 18 return err 19 } 20 ctx.C.SetIndex(a) 21 return nil 22 }