o Ignore all text after ' # ' (doesn't conflict with option flag) o Command aliases o Add user-defined setions o Add a SOURCE section with link to git repo o Bullet-lists o Allow a USAGE section (and NAME) o Find source in code an adjust line number in error messages o Rename line and char to lineno and charno o Client-defined argument types o Rename Expr -> ? o Find clean(er) procedural object model o Allow assignment to options (this makes practical stuff easier) o Special handling of --help arguments so that '--help command' is possible o Support for paging of help: begin file = Tempfile.new("prick") file.puts HELP.split("\n").map { |l| l.sub(/^ /, "") } file.flush system "less #{file.path}" ensure file.close end + Bold text output + Recursive format of commands + Rename Compiler -> Interpreter OLD o Fix that it is near unsable when the user doesn't do 'include ShellOpts' o Subcommands can be parsed as well: opts, args = Shellopts.process(OPTIONS, ARGV) ... opts, command = opts.process case command when ... end o 'help' should list commands in declaration order o 'help' should use all levels by default o 'help' should always include top-level options (try setting levels: 10 and see top-level options are gone o A ShellOpts#shift command that makes it possible for Array#expect to emit relevant error messages + Somehow escape comments where a line starts with an option name + Parse and check enumeration arguments ('--debug=tokens|ast|idr|...')