|
@@ -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 {
|
|
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 {
|