github.com/jmigpin/editor@v1.6.0/util/iout/iorw/rwedit/cut.go (about) 1 package rwedit 2 3 import ( 4 "github.com/jmigpin/editor/util/uiutil/event" 5 ) 6 7 func Cut(ctx *Ctx) error { 8 a, b, ok := ctx.C.SelectionIndexes() 9 if !ok { 10 return nil 11 } 12 13 s, err := ctx.RW.ReadFastAt(a, b-a) 14 if err != nil { 15 return err 16 } 17 ctx.Fns.SetClipboardData(event.CIClipboard, string(s)) 18 19 if err := ctx.RW.OverwriteAt(a, b-a, nil); err != nil { 20 return err 21 } 22 ctx.C.SetSelectionOff() 23 ctx.C.SetIndex(a) 24 return nil 25 }