Browse Source
allow multiline text using three double-quotes (#239)
update-nous-hermes
Patrick Devine
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
19 additions and
0 deletions
-
cmd/cmd.go
|
|
|
@ -358,6 +358,9 @@ func generateInteractive(cmd *cobra.Command, model string) error { |
|
|
|
} |
|
|
|
defer scanner.Close() |
|
|
|
|
|
|
|
var multiLineBuffer string |
|
|
|
var isMultiLine bool |
|
|
|
|
|
|
|
for { |
|
|
|
line, err := scanner.Readline() |
|
|
|
switch { |
|
|
|
@ -376,6 +379,22 @@ func generateInteractive(cmd *cobra.Command, model string) error { |
|
|
|
line = strings.TrimSpace(line) |
|
|
|
|
|
|
|
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"): |
|
|
|
args := strings.Fields(line) |
|
|
|
if err := ListHandler(cmd, args[1:]); err != nil { |
|
|
|
|