I am configuring the automatic start of OhMyREPL.jl
. The document advise putting the following code in the .julia/config/startup.jl
file:
atreplinit() do repl
try
@eval using OhMyREPL
println("OhMyREPL imported") # I add this line
catch e
@warn "error while importing OhMyREPL" e
end
end
Now I have some questions on this code:
- Why do I have to write the
try...catch...end
code segment into the atreplinit() do repl...end
?
- Why do I have to add an
@eval
before using OhMyREPL
but unnecessarily do that before println(“OhMyREPL imported”)
?
Thanks for response!
In my first question I actually want to know why is the atreplinit() do repl ... end
block necessary?
From the docs
help?> atreplinit
search: atreplinit
atreplinit(f)
Register a one-argument function to be called before the REPL interface is initialized in interactive sessions; this is useful to customize the interface. The
argument of f is the REPL object. This function should be called from within the .julia/config/startup.jl initialization file.
It is added so that OhMyREPL
is only loaded when running interactively.
If you are using Julia just to run a script once, like julia compute_something.jl
, then you likely don’t need OhMyREPL
, so the above prevents that.
3 Likes