File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change @@ -370,6 +370,46 @@ func PlainText(content string) TextLit {
370370
371371func (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+
373413func (If ) isTerm () {}
374414
375415func (DoubleLit ) isTerm () {}
You can’t perform that action at this time.
0 commit comments