From bc632433bd6102c5c259ea4ad131d545f1989c15 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Wed, 4 Feb 2026 21:36:04 +0100 Subject: perf(markdown): avoid using += for string in lexer --- markdown/lexer.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'markdown/lexer.go') diff --git a/markdown/lexer.go b/markdown/lexer.go index 375ef7f..5520310 100644 --- a/markdown/lexer.go +++ b/markdown/lexer.go @@ -57,11 +57,27 @@ func (l *lexers) Before() bool { } func (l *lexers) String() string { - s := "Lexers[" + var sb strings.Builder + // 8 for "Lexers[" and "]" + sb.Grow(8 + len(l.lexers)*4) + _, err := sb.WriteString("Lexers[") + if err != nil { + panic(err) + } for _, l := range l.lexers { - s += l.String() + " " + _, err = sb.WriteString(l.String()) + if err == nil { + _, err = sb.WriteString(" ") + } + if err != nil { + panic(err) + } + } + _, err = sb.WriteString("]") + if err != nil { + panic(err) } - return s + "]" + return sb.String() } func lex(s string, opt *Option) *lexers { -- cgit v1.2.3