package input_parser var commandsTab []string var prevInput string var tabIndex int func AutoComplete(input string) string { inputLength := len(input) if inputLength == 0 { return input } if prevInput == input { tabIndex = tabIndex + 1 if len(commandsTab) == 0 && tabIndex > 0 { return input } if tabIndex > len(commandsTab)-1 { tabIndex = 0 } prevInput = commandsTab[tabIndex] return commandsTab[tabIndex] } prevInput = input tabIndex = 0 currentCommands := []string{ "cat", "cd", "cp", "echo", "exit", "fritiofcommand", "head", "help", "ls", "man", "mv", "pwd", "rm", "tail", "touch", "whereareyou", } var commandsWorking []string // println(commandsWorking) for _, currentCommand := range currentCommands { // println("currentCommand") // println(currentCommand) if len(currentCommand) < inputLength { continue } currentCommandWithoutEnd := currentCommand[:inputLength] if currentCommandWithoutEnd != input { continue } commandsWorking = append(commandsWorking, currentCommand) } commandsTab = commandsWorking if len(commandsTab) == 0 { return input } prevInput = commandsTab[0] return commandsTab[0] }