def kinds(context, show_all, ids_or_names):
    """Operate on IntelliSense kind ids and names.

    Without an argument, list all available kinds and their ids.

    Windows database must be prepared before using this.
    """
    logging.info(_('Entering kind mode'))
    logging.debug('args: %s', ids_or_names)
    sense = context.obj['sense']
    none = True
    if show_all:
        none = False
        print(sense.query_kinds(None))
    else:
        for id_or_name in ids_or_names:
            id_name = sense.query_kinds(id_or_name)
            if id_name:
                none = False
                print(id_name)
    sys.exit(1 if none else 0)
Operate on IntelliSense kind ids and names.

    Without an argument, list all available kinds and their ids.

    Windows database must be prepared before using this.