Fixes #40358 Help output could be better.
For now. Add a header and footer. Later on when I have per-function docs it can look those up and print them (or open a viewer in the GUI.)
This commit is contained in:
parent
acd65f18f7
commit
cdff2ea5ea
|
|
@ -27,6 +27,7 @@ import os, pickle, sys
|
||||||
from inspect import getdoc
|
from inspect import getdoc
|
||||||
|
|
||||||
from joy.joy import run
|
from joy.joy import run
|
||||||
|
from joy.library import HELP_TEMPLATE
|
||||||
from joy.parser import Symbol
|
from joy.parser import Symbol
|
||||||
from joy.utils.stack import stack_to_string
|
from joy.utils.stack import stack_to_string
|
||||||
from joy.utils.types import type_check
|
from joy.utils.types import type_check
|
||||||
|
|
@ -59,14 +60,15 @@ class World(object):
|
||||||
|
|
||||||
def do_opendoc(self, name):
|
def do_opendoc(self, name):
|
||||||
if is_numerical(name):
|
if is_numerical(name):
|
||||||
print('The number', name)
|
doc = 'The number ' + str(name)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
word = self.dictionary[name]
|
word = self.dictionary[name]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print(repr(name), '???')
|
doc = 'Unknown: ' + repr(name)
|
||||||
else:
|
else:
|
||||||
print(getdoc(word))
|
doc = getdoc(word)
|
||||||
|
print(HELP_TEMPLATE % (name, doc, name))
|
||||||
self.print_stack()
|
self.print_stack()
|
||||||
|
|
||||||
def pop(self):
|
def pop(self):
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,16 @@ from .utils.types import (
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
HELP_TEMPLATE = '''\
|
||||||
|
|
||||||
|
==== Help on %s ====
|
||||||
|
|
||||||
|
%s
|
||||||
|
|
||||||
|
---- end (%s)
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
_SYM_NUMS = lambda c=count(): next(c)
|
_SYM_NUMS = lambda c=count(): next(c)
|
||||||
_COMB_NUMS = lambda c=count(): next(c)
|
_COMB_NUMS = lambda c=count(): next(c)
|
||||||
|
|
||||||
|
|
@ -890,7 +900,7 @@ def help_(S, expression, dictionary):
|
||||||
'''Accepts a quoted symbol on the top of the stack and prints its docs.'''
|
'''Accepts a quoted symbol on the top of the stack and prints its docs.'''
|
||||||
((symbol, _), stack) = S
|
((symbol, _), stack) = S
|
||||||
word = dictionary[symbol]
|
word = dictionary[symbol]
|
||||||
print(getdoc(word))
|
print(HELP_TEMPLATE % (symbol, getdoc(word), symbol))
|
||||||
return stack, expression, dictionary
|
return stack, expression, dictionary
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue