private CompletableFuture<SuggestionContext<C, ?>> addArgumentSuggestions(
            final @NonNull SuggestionContext<C, ?> context,
            final @NonNull CommandComponent<C> component,
            final @NonNull CommandInput input,
            final @NonNull Executor executor
    ) {
        return component.suggestionProvider()
                .suggestionsFuture(context.commandContext(), input.copy())
                .thenAcceptAsync(context::addSuggestions, executor)
                .thenApply(in -> context);
    }
Adds the suggestions for the given {@code argument} to the given {@code context}

@param context   the suggestion context
@param component the component to get suggestions from
@param input     the input from the sender
@param executor  executor to schedule further suggestion logic to
@return future that completes with the context
cloud-core/src/main/java/org/incendo/cloud/CommandTree.java