diff --git a/commandmap.go b/commandmap.go index f1662fa..f9e4aa3 100644 --- a/commandmap.go +++ b/commandmap.go @@ -119,7 +119,7 @@ func (cm *CommandMapping) RegisterViewCommands() { return ctx.ModelVC().DeleteCol(cellX) }) cm.Define("search", "Search for a cell", "", func(ctx *CommandContext) error { - ctx.Frame().Prompt(PromptOptions{ Prompt: "/" }, func(res string) error { + ctx.Frame().Prompt(PromptOptions{Prompt: "/"}, func(res string) error { re, err := regexp.Compile(res) if err != nil { return fmt.Errorf("invalid regexp: %v", err) @@ -246,9 +246,8 @@ func (cm *CommandMapping) RegisterViewCommands() { return nil }) - cm.Define("enter-command", "Enter command", "", func(ctx *CommandContext) error { - ctx.Frame().Prompt(PromptOptions{ Prompt: ":" }, func(res string) error { + ctx.Frame().Prompt(PromptOptions{Prompt: ":"}, func(res string) error { return cm.Eval(ctx, res) }) return nil @@ -258,8 +257,12 @@ func (cm *CommandMapping) RegisterViewCommands() { grid := ctx.Frame().Grid() cellX, cellY := grid.CellPosition() if _, isRwModel := ctx.ModelVC().Model().(RWModel); isRwModel { - ctx.Frame().Prompt(PromptOptions{ Prompt: "> " }, func(res string) error { - return ctx.ModelVC().SetCellValue(cellY, cellX, res) + ctx.Frame().Prompt(PromptOptions{Prompt: "> "}, func(res string) error { + if err := ctx.ModelVC().SetCellValue(cellY, cellX, res); err != nil { + return err + } + ctx.Frame().ShowCellValue() + return nil }) } return nil @@ -270,10 +273,14 @@ func (cm *CommandMapping) RegisterViewCommands() { if _, isRwModel := ctx.ModelVC().Model().(RWModel); isRwModel { ctx.Frame().Prompt(PromptOptions{ - Prompt: "> ", + Prompt: "> ", InitialValue: grid.Model().CellValue(cellX, cellY), }, func(res string) error { - return ctx.ModelVC().SetCellValue(cellY, cellX, res) + if err := ctx.ModelVC().SetCellValue(cellY, cellX, res); err != nil { + return err + } + ctx.Frame().ShowCellValue() + return nil }) } return nil diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..ff3693c --- /dev/null +++ b/go.mod @@ -0,0 +1,8 @@ +module github.com/lmika/ted + +go 1.15 + +require ( + github.com/mattn/go-runewidth v0.0.9 // indirect + github.com/nsf/termbox-go v0.0.0-20200418040025-38ba6e5628f1 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..72bf7b1 --- /dev/null +++ b/go.sum @@ -0,0 +1,4 @@ +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/nsf/termbox-go v0.0.0-20200418040025-38ba6e5628f1 h1:lh3PyZvY+B9nFliSGTn5uFuqQQJGuNrD0MLCokv09ag= +github.com/nsf/termbox-go v0.0.0-20200418040025-38ba6e5628f1/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ=