Unverified Commit 39bb25d5 authored by Patrick Devine's avatar Patrick Devine Committed by GitHub
Browse files

allow multiline text using three double-quotes (#239)

parent eadee468
...@@ -358,6 +358,9 @@ func generateInteractive(cmd *cobra.Command, model string) error { ...@@ -358,6 +358,9 @@ func generateInteractive(cmd *cobra.Command, model string) error {
} }
defer scanner.Close() defer scanner.Close()
var multiLineBuffer string
var isMultiLine bool
for { for {
line, err := scanner.Readline() line, err := scanner.Readline()
switch { switch {
...@@ -376,6 +379,22 @@ func generateInteractive(cmd *cobra.Command, model string) error { ...@@ -376,6 +379,22 @@ func generateInteractive(cmd *cobra.Command, model string) error {
line = strings.TrimSpace(line) line = strings.TrimSpace(line)
switch { switch {
case isMultiLine:
if strings.HasSuffix(line, `"""`) {
isMultiLine = false
multiLineBuffer += strings.TrimSuffix(line, `"""`)
line = multiLineBuffer
multiLineBuffer = ""
scanner.SetPrompt(">>> ")
} else {
multiLineBuffer += line + " "
continue
}
case strings.HasPrefix(line, `"""`):
isMultiLine = true
multiLineBuffer = strings.TrimPrefix(line, `"""`) + " "
scanner.SetPrompt("... ")
continue
case strings.HasPrefix(line, "/list"): case strings.HasPrefix(line, "/list"):
args := strings.Fields(line) args := strings.Fields(line)
if err := ListHandler(cmd, args[1:]); err != nil { if err := ListHandler(cmd, args[1:]); err != nil {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment