added settings and fixed a bug where the autocompletion could lead to a crash if a string without slashes were to be inserted

This commit is contained in:
janis
2022-08-22 19:37:08 +02:00
parent 0f8b20be69
commit 359562ec0c
5 changed files with 62 additions and 29 deletions

View File

@@ -18,9 +18,11 @@ class AutoComplete:
self.path = ""
self.check = ""
self.check_in = ""
self.okay = True
def autocomplete(self, text):
self.text = str(text)
self.okay = True
if self.text[len(self.text) - 2:] == "\t\n":
self.text = self.text[:len(self.text) - 2]
elif self.text[len(self.text) - 1:] == "\t":
@@ -42,26 +44,32 @@ class AutoComplete:
self.check = ""
self.check_in = self.text
while self.check_in[len(self.check_in) - 1:] != "/":
self.check += str(self.check_in[len(self.check_in) - 1:])
self.check_in = self.check_in[:len(self.check_in) - 1]
self.check = self.check[::-1]
for self.item in self.__command_list:
if self.check == self.item[:len(self.check)]:
self.__possible_completion.append(f'{self.path}{self.item}/')
if len(self.check_in) < 1:
self.okay = False
else:
pass
if len(self.__possible_completion) < 1:
self.__return_value = ["No such file or directory", self.text[:len(self.text)]]
elif len(self.__possible_completion) == 1:
self.__return_value = ["", str(self.__possible_completion.pop(0))]
else:
for self.items in self.__possible_completion:
self.__return_value_assembly += f"{str(self.items)} "
if self.__command_count > 2:
self.__return_value_assembly += "\n"
self.__command_count = 0
self.check += str(self.check_in[len(self.check_in) - 1:])
self.check_in = self.check_in[:len(self.check_in) - 1]
if self.okay:
self.check = self.check[::-1]
for self.item in self.__command_list:
if self.check == self.item[:len(self.check)]:
self.__possible_completion.append(f'{self.path}{self.item}/')
else:
self.__command_count += 1
self.__return_value.append(self.__return_value_assembly)
self.__return_value.append(self.text[:len(self.text)])
return self.__return_value
pass
if len(self.__possible_completion) < 1:
self.__return_value = ["No such file or directory", self.text[:len(self.text)]]
elif len(self.__possible_completion) == 1:
self.__return_value = ["", str(self.__possible_completion.pop(0))]
else:
for self.items in self.__possible_completion:
self.__return_value_assembly += f"{str(self.items)} "
if self.__command_count > 2:
self.__return_value_assembly += "\n"
self.__command_count = 0
else:
self.__command_count += 1
self.__return_value.append(self.__return_value_assembly)
self.__return_value.append(self.text[:len(self.text)])
return self.__return_value
else:
pass