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')".

Reply via email to