import ui from conf import conf import events COMMAND_PREFIX = conf["command_prefix"] or "/" # normal server commands srv_commands = ['PING', 'JOIN', 'PART', 'MODE', 'SERVER', 'KICK', 'QUIT', 'NICK', 'PRIVMSG', 'NOTICE', 'TOPIC'] #internal commands, uppercased for consistency urk_commands = [x[len('Command'):].upper() for x in events.events if x.startswith('Command')] commands = srv_commands + urk_commands def completer(cmd): while True: for s in commands: if s.startswith(cmd.upper()): yield s yield cmd def onKeyPress(e): global cmd_completer if e.key == 'Tab': i = e.window.input left, right = i.text[:i.cursor], i.text[i.cursor:] if left.startswith(COMMAND_PREFIX): cmd = left[len(COMMAND_PREFIX):] if not cmd_completer: cmd_completer = completer(cmd) cmd = cmd_completer.next() i.text = COMMAND_PREFIX + cmd + right i.cursor = len(COMMAND_PREFIX) + len(cmd) else: cmd_completer = None def onActive(window): global cmd_completer cmd_completer = None