code: def _completion_move(self, p_step, p_size):
          
          current_position = self.completion_box.focus_position
  
          try:
              self.completion_box.set_focus(current_position + p_step)
          except IndexError:
              position = 0 if p_step > 0 else len(self.completion_box) - 1
              self.completion_box.set_focus(position)
  
          maxcols, = p_size
          size = (maxcols, self.completion_box.height)
          self.completion_box.calculate_visible(size)
  
          candidate = self.completion_box.focus.original_widget.text
          self.insert_completion(candidate)
docs: Visually selects completion specified by p_step (positive numbers
          forwards, negative numbers backwards) and inserts it into edit_text.
  
          If p_step results in value out of range of currently evaluated
          completion candidates, list is rewinded to the start (if cycling
          forwards) or to the end (if cycling backwards).