The Juno.jl Front-End
Juno provides some functionality using Atom's UI, which will usually have a fallback for use in other environments.
isactive() function will provide an interface for figuring out whether the
current session is running within Juno:
Juno.jl includes features which allow package developers to create enhanced displays in Juno.
For example, we can print provide structured display for arbitrary objects (similar to
Profiles collected by
Profile.@profile can be displayed as a flame chart
inside of Juno by calling
There's also a
Juno.@profiler macro which does the same as
but also displays the collected information as a flame chart after clearing all the collected backtraces beforehand.
Just using the
Juno.@profiler macro will be enough for most cases, and it's way much simpler.
Clicking on one of the boxes in the profile view will take you to the corresponding file/line. The width of the boxes in the profile view and the length of the lines in the editor correspond to the percentage of calls made in that line. Also note that there are specially colored lines:
- yellow means the line was dynamically dispatched
- red means there was a garbage collection happened at the line
To clear the profile view and the in-editor display,
Forget Plot button in the profile view toolbar or use
Julia Client: Clear Profile command.
Juno.jl allows package developers to use the progress bar which is provided in the
Atom window. For example, you can easily show a progress meter for a
or a comprehension via the command:
@progress for ...
The following functions provide this interface:
It is recommended to either use the
@progress macro or the
progress(name = "Foo") do p end
notation to ensure that the progress bars are properly unregistered in the frontend.
Juno.jl lets package developers interact with users via the Atom frontend.
allows the user to select from a list of options:
sends an OS-level notification:
sends an notification via Atom's builtin notification API:
!!! note "example usecases"
- plot theme:
Plots.theme(:juno) automatically create a plot theme based on your Atom syntax color, using this function internally
- OhMyREPL.jl theme: the package doesn't not provide an integrated theme by default, but here are snippets you can create its theme based on your Atom syntax theme:
clears the Juno REPL:
you can clear any Juno terminal via
Ctrl-J Ctrl-C (i.e.
Julia Client: Clear REPL command).