The verb namedoc returns documentation for a name given as parameter. It is similar to scriptdoc, but is suitable to use directly in session.
Examples
namedoc is a handy discovery tool.
namedoc 'namedoc'
namedoc (v) scriptdoc for a name
e.g. namedoc 'namedoc'
namedoc 'split'
;(namedoc,LF"_,LF"_) &.> _3{.nl_z_''
namedoc 'split'
split (v) split head from tail
examples:
split 'abcde'
2 split 'abcde'
namedoc 'ss'
ss (v) string searchIf verb has no doc, its location is returned.
namedoc 'setbreak' defined in /Users/olegyk/j602/system/main/break.ijs
If name is not found, or defined outside of a script file:
qq=.+ namedoc'qq' not found
Definition
The script is based on scriptdoc utility.
NB. session documentation utility
require 'scriptdoc'
coclass 'jscriptdoc'
NB.*namedoc v scriptdoc for a name
NB. e.g. namedoc 'namedoc'
NB. namedoc 'split'
NB. ;(namedoc,LF"_,LF"_) &.> _3{.nl_z_''
namedoc=: 3 : 0
'n file'=. y
tbl=. scriptdef1 'b'fread file
nam=. {."1 tbl
if. (#nam) <: nmi=. nam i. <n do.
'defined in ',>file return. end.
def=. scriptdeffmt ,:nmi{tbl
(1+#DEFSEP) }. def
)
namedoc_z_=: 3 : 0
ndx=. 4!:4 :: _1: y=. boxopen y
if. ndx < 0 do. 'not found' return. end.
file=. ndx { 4!:3 ''
namedoc_jscriptdoc_ y,<file
)
Contributed by OlegKobchenko
Comments
As originally defined namedoc would only return documentation for names defined in the jscriptdoc locale and locales in jscriptdoc's copath (i.e. the z locale).
Now namedoc will also return documentation (or the scriptname where the name is defined) for verbs that aren't "redefined" in the z locale, as long as the name is defined in the copath of the current locale.
I have modelled the changes above on how the edit verb works.
Feel free to revert changes if desired.
-- RicSherlock 2008-03-27 01:55:48
