Klimi's new dotfiles with stow.
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 
 

126 rindas
3.0 KiB

module ESS
# These methods have been deprecated / moved
macro current_module()
return VERSION >= v"0.7-" ? :(@__MODULE__) : :(current_module())
end
parse = VERSION >= v"0.7-" ? Base.Meta.parse : Base.parse
function_module = VERSION >= v"0.7-" ? Base.parentmodule : Base.function_module
function all_help_topics()
## There are not clear topics anymore. Approximate those with a very general
## apropos(" ")
Base.Docs.apropos(" ")
end
function help(topic::AbstractString)
if (VERSION >= v"1.0-")
Core.eval(parentmodule(ESS), parse("@doc $topic"))
elseif (VERSION >= v"0.4-")
Core.eval(@current_module(), parse("@doc $topic"))
else
Base.Help.help(topic)
end
end
## modified version of function show(io::IO, m::Method)
function fun_args(m::Method)
tv, decls, file, line = Base.arg_decl_parts(m)
io = VERSION >= v"0.7-" ? Base.stdout : STDOUT::IO # STDOUT is no longer in 1.0
if !isempty(tv)
Base.show_delim_array(io, tv, '{', ',', '}', false)
end
print(io, "(")
join(io, [escape_string(isempty(d[2]) ? d[1] : d[1]*"::"*d[2]) for d in decls],
",", ",")
Base.print(io, ")")
end
## modified versionof show(io::IO, mt::MethodTable)
function fun_args(f::Function)
mt = Base.MethodList(methods(f).mt)
mod = function_module(f) # Base.function_module deprecated in 0.7
if mod == Main
mod = "nil"
end
print("(list \"$mod\" nil '(")
for d in mt
print("\"")
## method
fun_args(d)
print("\" ")
end
print("))")
end
function fun_args(s::AbstractString)
try
mod = VERSION >= v"1.0-" ? parentmodule(ESS) : @current_module()
m = Core.eval(mod, parse(s))
if ! isa(m, String)
fun_args(m)
end
catch
print("(list nil nil nil)")
end
end
function fun_args(t::DataType)
print("(list nil nil '(")
for d = fieldnames(t)
print("\"$d\" ")
end
print("))")
end
### OBJECT COMPLETION
# Must print an output of the form:
#
# Cache Module
# Write Module
# add Function
# free Function
function components(m::Module)
for v in sort(names(m, all=true, imported=true))
s = string(v)
if !startswith(s, "#") && isdefined(m,v)
println(rpad(s, 30), summary(Core.eval(m,v)))
end
end
end
function components(t::DataType)
for v in sort(fieldnames(t))
println(rpad(string(v), 30), "field")
end
end
function components(v)
t = typeof(v)
if isa(t, DataType)
return components(t)
end
end
### MISC
function main_modules(m::Module)
for nm in names(m)
if isdefined(m, nm)
mod = Core.eval(m, nm)
if isa(mod, Module)
print("\"$nm\" ")
end
end
end
end
if VERSION >= v"0.7-"
main_modules() = main_modules(Base.parentmodule(@current_module()))
else
main_modules() = main_modules(@current_module())
end
end