From a43daef96cf84d90fc26788a85378172e9f5464c Mon Sep 17 00:00:00 2001 From: Christian Rocha Date: Tue, 22 Feb 2022 15:53:21 -0500 Subject: [PATCH] fix: don't print extra newlines when printing with line numbers --- server/middleware.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/server/middleware.go b/server/middleware.go index e6d6b1bcc186f682c5fad72d2e8080f69431f330..48ca66bc89f90a1ecea4b034d4bb1906aefa21a4 100644 --- a/server/middleware.go +++ b/server/middleware.go @@ -151,12 +151,16 @@ func withLineNumber(s string, color bool) string { mll := len(fmt.Sprintf("%d", len(lines))) for i, l := range lines { digit := fmt.Sprintf("%*d", mll, i) - line := "│" + bar := "│" if color { digit = lineDigitStyle.Render(digit) - line = lineBarStyle.Render(line) + bar = lineBarStyle.Render(bar) + } + if i < len(lines)-1 || len(l) != 0 { + // If the final line was a newline we'll get an empty string for + // the final line, so drop the newline altogether. + lines[i] = fmt.Sprintf(" %s %s %s", digit, bar, l) } - lines[i] = fmt.Sprintf(" %s %s %s", digit, line, l) } return strings.Join(lines, "\n") }