On Fri, 09 Sep 2016 16:30:28 -0700 Alex Elsayed <eternal...@gmail.com> wrote:
> On Wednesday, 7 September 2016 17:57:32 PDT Parrot Raiser wrote: > > This isn't a request for a feature, merely a thought experiment. > > We're still in the phase where it's more important to ensure that > > existing features work properly than add new ones. > > > > How difficult would it be to include a mechanism within the REPL to > > select either documentation or an example, (possibly from the test > > suite), for a particular command? Selection might be by some control > > key combination, cursor positioning, or an alternative to "enter" > > at the end of the line. The purpose would be to speed development, > > by enabling an inexperienced developer to look up details while > > testing. > > > > Syntax errors generate messages which attempt to provide help; could > > this provide the basis for a "help" mechanism? Would this be useful? > > > > Opinions? > > Well, this sounds like a job for the meta-object protocol > (specifically, `.WHY`): > > https://docs.perl6.org/language/mop#WHY > > The simplest option for handling this in the REPL is probably to have > some sort of automatic handling of Pod sent to sink context, > rendering it and sending it to a pager. Then, the user could simply do > > >> Hash.WHY > (LET THERE BE DOCS!) > > And there would be docs. > +1 to this; it wouldn't be too hard to have the REPL pick up on Pod types and render them properly. However, hardly any of the core types or subs have a WHY (due to Rakudo setting compilation time). There were a few ideas flying around a while ago about how to remedy this: - Generate a postamble that is optionally included in the setting that sets up WHY for core objects retroactively. - Alter WHY's implementation slightly so that if an object has no WHY associated with it, there is the option to consult a "WHY repository", which would store WHYs off-setting on disk or as a service on docs.perl6.org. I think that Parrot Raiser's original intent, in addition to object and function-specific help, was offering broader categories of help from within the REPL, like Python's "help('keywords')".