'Shift the focus of the completion menu to another item.
Args:
which: \'next\', \'prev\', \'next-category\', or \'prev-category\'.'

@cmdutils.register(instance='completion', hide=True, modes=[usertypes.KeyMode.command], scope='window')
@cmdutils.argument('which', choices=['next', 'prev', 'next-category', 'prev-category'])
def completion_item_focus(self, which):

    if (not self._active):
        return
    selmodel = self.selectionModel()
    if (which == 'next'):
        idx = self._next_idx(upwards=False)
    elif (which == 'prev'):
        idx = self._next_idx(upwards=True)
    elif (which == 'next-category'):
        idx = self._next_category_idx(upwards=False)
    elif (which == 'prev-category'):
        idx = self._next_category_idx(upwards=True)
    else:
        raise ValueError("Invalid    'which'    value    {!r}".format(which))
    if (not idx.isValid()):
        return
    selmodel.setCurrentIndex(idx, (QItemSelectionModel.ClearAndSelect | QItemSelectionModel.Rows))
    if (idx.row() == (self.model().rowCount(idx.parent()) - 1)):
        self.expandAll()
    count = self.model().count()
    if (count == 0):
        self.hide()
    elif ((count == 1) and config.get('completion', 'quick-complete')):
        self.hide()
    elif (config.get('completion', 'show') == 'auto'):
        self.show()
