From a253229dbbef5e09449884febacdfbbd4de85d6d Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 29 Jul 2023 10:20:07 -0230 Subject: swap command --- ui.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'ui.go') diff --git a/ui.go b/ui.go index aedaa6c..aa0f114 100644 --- a/ui.go +++ b/ui.go @@ -37,6 +37,8 @@ func (ui UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg.String() { case "ctrl+c", "Q": return ui, tea.Quit + case "J", "K": + ui.calc.swap() case "+", "-", "*", "/", "%", "^": if err := ui.calc.performOp(msg.String()[0]); err != nil { panic(err) @@ -64,7 +66,7 @@ func (ui UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) { func (ui UI) View() string { var s string for _, f := range ui.calc.stack { - s += fmt.Sprintf(" %.*g\n", sigDigs, f) + s += printStackVal(f) + "\n" } s += boxTop(ui.windowWidth) + "\n" s += fmt.Sprintf("%[1]c%-*s%[1]c\n", boxVertical, ui.windowWidth-2, ui.calc.buf) @@ -72,6 +74,10 @@ func (ui UI) View() string { return s } +func printStackVal(v float64) string { + return fmt.Sprintf(" %.*g", sigDigs, v) +} + // boxTop returns the top of a UTF-8 box, 'width' characters wide (including // corners). func boxTop(width int) string { -- cgit v1.2.3