That's true. What do you expect, then? A program which magically does something that's not possible to do?
It's not that crates cannot capture Ctrl+Enter keyboard event idlealy, it's just terminal doesn't distinguish them.
Now, on some terminals that's, indeed, possible, but there are many ways to do that and many ways to do that, you would need to create a whole database to handle different terminals.
Most modern OSes closed that loophole by now. Ironically enough Windows may be the only exception.
Not even Windows can do that, try to connect to your Windows system via SSH and see how it'll behave.
Just on Windows there are terminal apps and console apps and most people talk about “terminal apps” when they actually want/need “console apps”.
It just wasn't a thing when ADM-3A was developed (google it). And POSIX terminals still live in that world.
Extended somewhat, sure, and, sometimes, even extended to the level where you may reliably distingush Enter from Ctrl+Enter… but extended differently by different vendors!
That's why it's hard: there are many different terminals (even on Windows!) but there are just one Windows console[1].
Windows too, when you connect to it remotely, but on Windows that's not a common situation.
I should give up getting Ctrl state from a terminal then, since it's impassible.
For Windows, using winapi, Linux x11, macOS cocoa may be the solution, but it must be beyond my ability just for a CLI tool. And it's useless for remote ssh.
Now I think using Tab to switch between Edit and View mode to support multi-line input is good enough then.
By the way, if anyone is searching for a CLI dialog crate like dialoguer but supporting multi-line input, this worths a try.