diff --git a/input_parser/input_parser.go b/input_parser/input_parser.go index f2fab72..6685c11 100644 --- a/input_parser/input_parser.go +++ b/input_parser/input_parser.go @@ -104,7 +104,7 @@ func input_str(env *environment.Env) string { case 4: // ^D input = "exit" goto loop_exit - case 8: // + case 8: // input_at := input[:cursor] input_after := input[cursor:] last_index := strings.LastIndex(input_at, " ") @@ -115,11 +115,12 @@ func input_str(env *environment.Env) string { input_at = input_at[:last_index] cursor = len(input_at) } - input = input_at+input_after - + input = input_at + input_after + case 9: // TAB - input = AutoComplete(input, *env) - cursor = len(input) + complete := AutoComplete(input[:cursor], *env) + input = complete + input[cursor:] + cursor = len(complete) case 27: // Escape input, history_index, cursor = Escape_handler(reader, history_index, input, *env, cursor) case 127: //packspace @@ -129,14 +130,14 @@ func input_str(env *environment.Env) string { input_at = input_at[:len(input_at)-1] cursor-- } - input=input_at+input_after + input = input_at + input_after case 13: // Enter goto loop_exit default: input_at := input[:cursor] input_after := input[cursor:] input_at += string(r_rune) - input = input_at+input_after + input = input_at + input_after cursor++ } ghost_input := AutoCompleteHistory(input, *env)