From f0909c5ce9d3c8c525955422b64a653d54e92dec Mon Sep 17 00:00:00 2001 From: David Schlachter Date: Thu, 8 Jan 2026 10:41:09 -0500 Subject: Definition viewport now uses all available space --- main.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 0ba5bbb..aa716e5 100644 --- a/main.go +++ b/main.go @@ -94,7 +94,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case definitionMsg: m.currentDefinition = string(msg) m.err = nil - m.vp.SetContent(formatDefinitionForDisplay(m.p, m.currentDefinition)) + m.vp.SetContent(formatDefinitionForDisplay(m.p, m.currentDefinition, m.vp.Width)) return m, nil case wordAddedMsg: m.wordAddStatus = fmt.Sprintf("✅ Added '%s' to Anki", string(msg)) @@ -103,6 +103,12 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { m.wordInput.SetValue("") m.vp.SetContent("") m.err = nil + case tea.WindowSizeMsg: + // headerHeight is the height of everything above the definition window. + headerHeight := 11 + m.vp.Width = msg.Width + m.vp.Height = msg.Height - headerHeight + m.vp.SetContent(formatDefinitionForDisplay(m.p, m.currentDefinition, m.vp.Width)) case tea.KeyMsg: switch msg.Type { case tea.KeyCtrlC: @@ -148,14 +154,16 @@ func (m model) View() string { ) + "\n" } -func formatDefinitionForDisplay(policy bluemonday.Policy, definition string) string { +func formatDefinitionForDisplay(policy bluemonday.Policy, definition string, maxWidth int) string { str := strings.ReplaceAll(definition, "
  • ", "
  • - ") str = strings.ReplaceAll(str, "\t
  • \x1b[0m") str = policy.Sanitize(str) str = strings.ReplaceAll(str, "\t- ", "\x1b[0;33;49m•\x1b[0m ") - return wordwrap.String(str, 72) + width := min(maxWidth, 80) + + return wordwrap.String(str, width) } func formatStatus(lastError error, lastSuccess string) string { -- cgit v1.2.3