Contains the various entry points to the Ammonite REPL.
Everything to do with the interaction of the Ammonite REPL with the user and the terminal.
Everything to do with the interaction of the Ammonite REPL with the user and the terminal. Interfacing with ammonite-terminal (or with JLine)
What actually lets us compile and execute code in the Ammonite REPL; deals with the Scala compiler, preprocessing the strings, JVM classloaders, etc.
Code related to invoking Ammonite from the outside world: default configuration, running scripts, printing error messages, etc.
Things that are available inside the Ammonite REPL, are really convenient to have available.
Contains the various entry points to the Ammonite REPL.
Configuration of the basic REPL is done by passing in arguments when constructing the Main instance, and the various entrypoints such as run runScript and so on are methods on that instance.
It is more or less equivalent to the ammonite.main.Repl object itself, and has a similar set of parameters, but does not have any of the ammonite.main.Repl's implementation-related code and provides a more convenient set of entry-points that a user can call.
Note that the instantiateRepl function generates a new Repl every time it is called!
Any additional code you want to run before the REPL session starts. Can contain multiple blocks separated by
@
sDo you want to include the "standard" predef imports provided by Ammonite? These include tools like
time
,grep
, the|
or|?
pipes from ammonite-ops, and other helpers. Can be disabled to give a clean namespace for you to fill using your own predef.Where will all of Ammonite's persistent data get stored? Things like any
predef.sc
file, compilation/ivy caches, etc.. Defaults include Storage.Folder and Storage.InMemory, though you can create your own.The working directory of the REPL; when it load scripts, where the scripts will be considered relative to when assigning them packages