function __fish_complete_tar -d "Peek inside of archives and list all files"

    set -l args (commandline -poc)
    while count $args >/dev/null
        switch $args[1]
            case '-*f' '--file'
                set -e args[1]
                if test -f $args[1]
                    set -l file_list (tar -atf $args[1] 2> /dev/null)
                    if test -n "$file_list"
                        printf (_ "%s\tArchived file\n") $file_list
                    end
                    return
                end
            case '*'
                set -e args[1]
                continue
        end
    end
end