Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
2701 views
1
module ESS
2
3
function all_help_topics()
4
Base.Help.init_help()
5
## show all categories
6
for (func, _ ) in Base.Help.MODULE_DICT
7
if !isempty(Base.Help.MODULE_DICT[func])
8
println()
9
show(func);
10
end
11
end
12
end
13
14
function help(topic::String)
15
Base.Help.help(topic)
16
end
17
18
## modified version of function show(io::IO, m::Method)
19
function fun_args(m::Method)
20
tv, decls, file, line = Base.arg_decl_parts(m)
21
io = STDOUT::IO
22
if !isempty(tv)
23
Base.show_delim_array(io, tv, '{', ',', '}', false)
24
end
25
li = m.func.code
26
e = Base.uncompressed_ast(li)
27
argnames = e.args[1]
28
print(io, "(")
29
print_joined(io, [isempty(d[2]) ? d[1] : d[1]*"::"*d[2] for d in decls], ",", ",")
30
print(io, ")")
31
end
32
33
## modified versionof show(io::IO, mt::MethodTable)
34
function fun_args(f::Function)
35
mt = f.env
36
mod = Base.function_module(f)
37
if mod == Main
38
mod = "nil"
39
end
40
print("(list \"$mod\" nil '(")
41
d = mt.defs
42
while !is(d, ())
43
print("\"")
44
## method
45
fun_args(d)
46
print("\" ")
47
d = d.next
48
if is(d,())
49
print("))")
50
end
51
end
52
end
53
54
function fun_args(s::ASCIIString)
55
try
56
m = eval(current_module(), parse(s))
57
if typeof(m) != ASCIIString
58
fun_args(m)
59
end
60
catch
61
print("(list nil nil nil)")
62
end
63
end
64
65
function fun_args(t::DataType)
66
print("(list nil nil '(")
67
for d = names(t)
68
print("\"$d\" ")
69
end
70
print("))")
71
end
72
73
74
### OBJECT COMPLETION
75
function components(m::Module)
76
for v in sort(names(m))
77
s = string(v)
78
if isdefined(m,v)
79
println(rpad(s, 30), summary(eval(m,v)))
80
end
81
end
82
end
83
84
function components(t::DataType)
85
for v in sort(names(t))
86
println(rpad(string(v), 30), "field")
87
end
88
end
89
90
function components(v)
91
t = typeof(v)
92
if isa(t, DataType)
93
return components(t)
94
end
95
end
96
97
98
### MISC
99
function main_modules()
100
mainmod = current_module()
101
for nm in names(mainmod)
102
if isdefined(mainmod, nm)
103
mod = eval(mainmod, nm)
104
if isa(mod, Module)
105
print("\"$nm\" ")
106
end
107
end
108
end
109
end
110
111
end
112
113