Hi,
I'd like to continue our discussion about feature parity with perl tools
and overall user experience of the new CLI tools.
Here are some projects where we can take inspiration for our own design:
* bpython interpreter
https://bpython-interpreter.org/screenshots.html
* fish shell
http://fishshell.com/docs/current/design.html
* Python Prompt Toolkit
https://github.com/jonathanslenders/python-prompt-toolkit
(it's used to build tools like pgcli and mycli: https://github.com/dbcli)
* OpenStack CLI:
https://docs.openstack.org/python-openstackclient/pike/cli/commands.htmlhttps://docs.openstack.org/python-openstackclient/pike/cli/interactive.html
Common theme is that all of these CLIs are primarily used in REPL mode,
but they can be used in script mode as well.
Here's the quote from fish shell's design page about the law of
discoverability:
* Everything should be tab-completable, and every tab completion should
have a description.
* Every syntax error and error in a built-in command should contain an
error message describing what went wrong and a relevant help page.
Whenever possible, errors should be flagged red by the syntax
highlighter.
* The help manual should be easy to read, easily available from the
shell, complete and contain many examples
* The language should be uniform, so that once the user understands the
command/argument syntax, they will know the whole language, and be
able to use tab-completion to discover new features.
Please let me know what do you think.
Thanks!
--
Viktor