Juno consists of a number of packages for both Julia and Atom:
- language-julia – Provides basic language support of Julia, e.g. syntax highlighting.
- julia-client – This package ties everything together: julia-client boots Julia inside Atom, then communicates with the Atom.jl package to provide e.g. autocompletion and evaluation within the editor.
- ink – Provides generic UI components for building IDEs in Atom (e.g. the REPL, plot pane live here).
- uber-juno – The official installer package of Juno, usually runs only once.
- latex-completions – Provides Unicode completions for certain $\LaTeX$ commands.
- indent-detective – Tries to work out the indentation settings of your current file, sublime-style.
- hyperclick - External package that provides "editor-text-clicking" UI.
- tool-bar - External package that provides the tool-bar UI.
- Juno.jl – The frontend API. Provides components for package developers and users to interact with Juno.
- Atom.jl – This is the language server backend for Juno, the Julia IDE.
- CodeTools.jl – Provides backend editor support for Julia, e.g. editor module detection.
- Blink.jl – An API for communicating with web pages from Julia.
- Hiccup.jl – A library designed to make HTML from Julia.
- LNR.jl – Parser for handwritten text where line and column information is significant.
- Media.jl – The display system which enables the user handle multiple input/output devices and decides what media types get displayed where.
# TODO: add external packages, like CSTParser, JuliaInterpreter ?