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  }