Skip to content

Commit cc9ec25

Browse files
committed
Restore TextLit.String() from 153c4f6
1 parent b7e2d8c commit cc9ec25

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

term/term.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,46 @@ func PlainText(content string) TextLit {
370370

371371
func (TextLit) isTerm() {}
372372

373+
func (t TextLit) String() string {
374+
var out strings.Builder
375+
out.WriteString(`"`)
376+
for _, chunk := range t.Chunks {
377+
for _, r := range chunk.Prefix {
378+
switch r {
379+
case '"':
380+
out.WriteString(`\"`)
381+
case '$':
382+
out.WriteString(`\u0024`)
383+
case '\\':
384+
out.WriteString(`\\`)
385+
case '\b':
386+
out.WriteString(`\b`)
387+
case '\f':
388+
out.WriteString(`\f`)
389+
case '\n':
390+
out.WriteString(`\n`)
391+
case '\r':
392+
out.WriteString(`\r`)
393+
case '\t':
394+
out.WriteString(`\t`)
395+
default:
396+
if r < 0x1f {
397+
out.WriteString(fmt.Sprintf(`\u%04x`, r))
398+
} else {
399+
out.WriteRune(r)
400+
}
401+
}
402+
}
403+
out.WriteString("${")
404+
out.WriteString(fmt.Sprint(chunk.Expr))
405+
out.WriteString("}")
406+
}
407+
// TODO: properly deserialise string here
408+
out.WriteString(t.Suffix)
409+
out.WriteString(`"`)
410+
return out.String()
411+
}
412+
373413
func (If) isTerm() {}
374414

375415
func (DoubleLit) isTerm() {}

0 commit comments

Comments
 (0)