Something went wrong. Try again.
Fork of micro-editor/micro
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566package screen
import ( "bufio" "fmt" "os" "strconv" "strings")
// TermMessage sends a message to the user in the terminal. This usually occurs before// micro has been fully initialized -- ie if there is an error in the syntax highlighting// regular expressions// The function must be called when the Screen is not initialized// This will write the message, and wait for the user// to press and key to continuefunc TermMessage(msg ...any) { screenb := TempFini()
fmt.Println(msg...) fmt.Print("\nPress enter to continue")
reader := bufio.NewReader(os.Stdin) reader.ReadString('\n')
TempStart(screenb)}
// TermPrompt prints a prompt and requests the user for a response// The result is matched against a list of options and the index of// the match is returned// If wait is true, the prompt re-prompts until a valid option is// chosen, otherwise if wait is false, -1 is returned for no matchfunc TermPrompt(prompt string, options []string, wait bool) int { screenb := TempFini()
idx := -1 // same behavior as do { ... } while (wait && idx == -1) for ok := true; ok; ok = wait && idx == -1 { reader := bufio.NewReader(os.Stdin) fmt.Print(prompt) resp, _ := reader.ReadString('\n') resp = strings.TrimSpace(resp)
for i, opt := range options { if resp == opt { idx = i } }
if wait && idx == -1 { fmt.Println("\nInvalid choice.") } }
TempStart(screenb)
return idx}
// TermError sends an error to the user in the terminal. Like TermMessage except formatted// as an errorfunc TermError(filename string, lineNum int, err string) { TermMessage(filename + ", " + strconv.Itoa(lineNum) + ": " + err)}