Skip to content
Back to top

# Source code for xompletions.gh

    """Completers for gh CLI"""

    from xonsh.completers.tools import completion_from_cmd_output, sub_proc_get_output
    from xonsh.parsers.completion_context import CommandContext

    def _complete(cmd, *args):
        out, _ = sub_proc_get_output(cmd, "__complete", *args)
        if out:
            # directives
            # shellCompDirectiveError 1
            # shellCompDirectiveNoSpace 2
            # shellCompDirectiveNoFileComp 4
            # shellCompDirectiveFilterFileExt 8
            # shellCompDirectiveFilterDirs 16
            # todo: implement directive-numbers above
            *lines, dir_num = out.decode().splitlines()
            for ln in lines:
                yield completion_from_cmd_output(ln)

    def xonsh_complete(ctx: CommandContext):
        cmd, *args = [arg.value for arg in ctx.args] + [ctx.prefix]

        return _complete(cmd, *args)