Vim doesn't provide any way to know all possible plugin options.
As a plugin writer I can tell you this is quite complex as there are many different ways to proceed. For instance either we consider that if the end-user hasn't provided a value for an option in its
.vimrc then we force this option to exist and to be equal to a default value, or we can say: "either take the value set by the end-user, or use an hard-coded default value".
With that first approach, the end-user can see the list of available options with a
More and more plugins choose to organize all their options into dictionaries. i.e., instead of having
g:plugin_bar_option, we have
g:plugin.bar_option. This avoids polluting the list
g: of global options, but we lose command-line autocompletion (I may eventually open an issue of the subject, on vim github).
So far I have only talked about global options. Most plugins don't try to support more specific options even if they should have done it. For instance, I regret that neither YouCompleteMe nor alternate, nor many other plugins, use project specific options instead of global options. Indeed, depending on the project I'm working on I want to set their respective options to different values. Unfortunately, this is not a work-flow they have considered. In my plugins, many options can be specialized on project basis, or on buffer basis. Lately I've come up with an experiment on the subject. But even with the usual and simple
b:plugin_option pair, it's next to impossible to know all available options.
Sometimes I try to offer commands that help setting options as I've done with build-tools-wrappers, or even to display some options in the menu (when using gvim), but it's really far from being perfect.
I'm afraid that the documentation is the best thing available. You can even try a
:h pluginname^D. It's probably the best approach available.