Explain the difference between is_visible and is_enabled when implementing a {Application,Window,Text}Command
I keep forgetting what the differences are. And what the exact effects are. The ST3 docs are pretty much useless in this regard.
I believe it is kinda dependent. In case if the command is registered in the command palette, then both of them have the same behavior i.e. the command doesn't show up if you search for it via the caption. (if you return False that is)
If it's a menu entry, then is_enabled returning False will gray out & disable the menu entry. is_visible returning False will not make it appear in the menu at all.
If it is a key binding, then is_visible has no effect. is_enabled returning False on the other hand will not make the command execute via the binding.
In case of mousemap files also, is_visible has no effect. is_enabled returning False will disable that button from executing the command or press_command (provided the said command/press_command has is_enabled returning False)
Sounds like a pull-request ;)