From 1bb6c16786cf1fadd69607284c1853019395c800 Mon Sep 17 00:00:00 2001 From: Keiran Date: Wed, 6 Aug 2025 10:11:05 +0100 Subject: [PATCH] add line numbers --- cmd/goedit/main.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/cmd/goedit/main.go b/cmd/goedit/main.go index 06a1736..49cd93c 100644 --- a/cmd/goedit/main.go +++ b/cmd/goedit/main.go @@ -150,21 +150,25 @@ func (m Model) View() string { b.WriteString("Text Editor (Ctrl+C or Esc to quit)\n\n") contentHeight := m.height - 4 + lineNumWidth := len(fmt.Sprintf("%d", len(m.lines))) + 1 for i, line := range m.lines { if i >= contentHeight { break } + + lineNum := fmt.Sprintf("%*d ", lineNumWidth, i+1) + if i == m.row { if m.col == 0 { - b.WriteString("█" + line + "\n") + b.WriteString(lineNum + "█" + line + "\n") } else if m.col >= len(line) { - b.WriteString(line + "█\n") + b.WriteString(lineNum + line + "█\n") } else { - b.WriteString(line[:m.col] + "█" + line[m.col:] + "\n") + b.WriteString(lineNum + line[:m.col] + "█" + line[m.col:] + "\n") } } else { - b.WriteString(line + "\n") + b.WriteString(lineNum + line + "\n") } } @@ -178,6 +182,7 @@ func (m Model) View() string { return b.String() } + func main() { p := tea.NewProgram(NewModel(), tea.WithAltScreen()) if _, err := p.Run(); err != nil {