Exemplo n.º 1
0
 def complete_request(self, text):
     line = str_to_unicode(readline.get_line_buffer())
     byte_cursor_pos = readline.get_endidx()
     
     # get_endidx is a byte offset
     # account for multi-byte characters to get correct cursor_pos
     bytes_before_cursor = cast_bytes(line)[:byte_cursor_pos]
     cursor_pos = len(cast_unicode(bytes_before_cursor))
     
     # send completion request to kernel
     # Give the kernel up to 5s to respond
     msg_id = self.client.complete(
         code=line,
         cursor_pos=cursor_pos,
     )
 
     msg = self.client.shell_channel.get_msg(timeout=self.timeout)
     if msg['parent_header']['msg_id'] == msg_id:
         content = msg['content']
         cursor_start = content['cursor_start']
         matches = [ line[:cursor_start] + m for m in content['matches'] ]
         if content["cursor_end"] < cursor_pos:
             extra = line[content["cursor_end"]: cursor_pos]
             matches = [m + extra for m in matches]
         matches = [ unicode_to_str(m) for m in matches ]
         return matches
     return []
Exemplo n.º 2
0
    def complete_request(self, text):
        line = str_to_unicode(readline.get_line_buffer())
        byte_cursor_pos = readline.get_endidx()

        # get_endidx is a byte offset
        # account for multi-byte characters to get correct cursor_pos
        bytes_before_cursor = cast_bytes(line)[:byte_cursor_pos]
        cursor_pos = len(cast_unicode(bytes_before_cursor))

        # send completion request to kernel
        # Give the kernel up to 5s to respond
        msg_id = self.client.complete(
            code=line,
            cursor_pos=cursor_pos,
        )

        msg = self.client.shell_channel.get_msg(timeout=self.timeout)
        if msg['parent_header']['msg_id'] == msg_id:
            content = msg['content']
            cursor_start = content['cursor_start']
            matches = [line[:cursor_start] + m for m in content['matches']]
            if content["cursor_end"] < cursor_pos:
                extra = line[content["cursor_end"]:cursor_pos]
                matches = [m + extra for m in matches]
            matches = [unicode_to_str(m) for m in matches]
            return matches
        return []
Exemplo n.º 3
0
    def complete_request(self, text):
        line = readline.get_line_buffer()
        cursor_pos = readline.get_endidx()

        # send completion request to kernel
        # Give the kernel up to 0.5s to respond
        msg_id = self.client.complete(code=line, cursor_pos=cursor_pos)

        msg = self.client.shell_channel.get_msg(timeout=self.timeout)
        if msg["parent_header"]["msg_id"] == msg_id:
            return msg["content"]["matches"]
        return []
Exemplo n.º 4
0
    def complete_request(self, text):
        line = readline.get_line_buffer()
        cursor_pos = readline.get_endidx()

        # send completion request to kernel
        # Give the kernel up to 0.5s to respond
        msg_id = self.client.shell_channel.complete(text=text,
                                                    line=line,
                                                    cursor_pos=cursor_pos)

        msg = self.client.shell_channel.get_msg(timeout=self.timeout)
        if msg['parent_header']['msg_id'] == msg_id:
            return msg["content"]["matches"]
        return []
Exemplo n.º 5
0
 def rlcomplete(self, text, state):
     if state == 0:
         line = str_to_unicode(readline.get_line_buffer())
         byte_cursor_pos = readline.get_endidx()
         # get_endidx is a byte offset
         # account for multi-byte characters to get correct cursor_pos
         bytes_before_cursor = cast_bytes(line)[:byte_cursor_pos]
         cursor_pos = len(cast_unicode(bytes_before_cursor))
         try:
             content = self.complete_request(line, cursor_pos)
             self.matches = _construct_readline_matches(line, cursor_pos, content)
         except Empty:
             #print('WARNING: Kernel timeout on tab completion.')
             pass
     
     try:
         return self.matches[state]
     except IndexError:
         return None
Exemplo n.º 6
0
    def rlcomplete(self, text, state):
        if state == 0:
            line = str_to_unicode(readline.get_line_buffer())
            byte_cursor_pos = readline.get_endidx()
            # get_endidx is a byte offset
            # account for multi-byte characters to get correct cursor_pos
            bytes_before_cursor = cast_bytes(line)[:byte_cursor_pos]
            cursor_pos = len(cast_unicode(bytes_before_cursor))
            try:
                content = self.complete_request(line, cursor_pos)
                self.matches = _construct_readline_matches(
                    line, cursor_pos, content)
            except Empty:
                #print('WARNING: Kernel timeout on tab completion.')
                pass

        try:
            return self.matches[state]
        except IndexError:
            return None