Oh, and once this is done we should update [[GhcFile(driver/ghci-usage.txt)]] to inform user about this possibility (see [[GhcFile(driver/ghc-usage.txt)]] for an example).
After a quick look at the source code I'm not sure if this is that simple. --show-options triggers pre-startup mode, which terminates the compiler before it even starts. But ghci is an alias for ghc --interactive, so we'd have to recognize a special case of --interactive and --show-options being used at the same time. That's probably possible, but it requires more work than I'm willing to put into this at the moment. Leaving this as a newcomer-friendly task. The relevant code is in [[GhcFile(ghc/Main.hs)]]. It is also important to distinguish which options are supported with GHCi and which are not. I'm not sure if this information is stored in one place somewhere in the compiler, but we need to have access to it.
When this is fixed the user documentation needs to be updated as well.
Making --interactive and --show-options work together is simple, just a few more lines to setMode.
The time consuming part with this task is to cleanly separate which flags work in GHC and which work in GHCi.
The flags are defined in a few different places;
ModeFlags defined in ghc/Main.hs which apply to both GHC and GHCi.
StaticFlags defined in compiler/main/StaticFlags.hs which applies to both GHC and GHCi.
DynFlags defined in compiler/main/DynFlags.hs. There are a few different kinds of flags here (dynflags, package flags, fflags, fwarn, ...), each of which where some are for GHC and some for GHCi. For some flags there is code guarding to make sure you don't mix them, like together with --interactive you cannot use -prof, -threaded, -unreg, -debug or -ticky. For other flags there is no such code, and it's not always obvious where each flag has effect.
I am currently running into panics using ghc-7.9.20141113 --interactive --show-options, see #9799 (closed). I guess these will go away once D337 is landed.