Open
Description
This ticket replaces #325 from 2017. Goals: omit completed tasks, omit less-likely todos, make it easier to see the big picture & see where things stand.
Note that all the
t:repl
The prioritization here is based on part on the Twitter poll I did, as well as many years of discussions within the team and among the community.
Modest goals
- Syntax highlighting (REPL: add syntax highlighting, like the Scala 3 REPL (and Ammonite) bug#12273)
- Display Scaladoc (or at least links to Scaladoc) (REPL: display Scaladoc bug#12275)
- Don't always fully qualify type names in output (REPL print partially qualified type names bug#8349)
More ambitious
These remain possibilities for Scala 2, but would need discussion/planning. It would make the most sense to land it in Scala 3 first, then backport.
- Pretty-printing of results (like Ammonite? adopt their solution?)
Shelved waiting for JLine fix
- Tab completion grouping and ordering (REPL: tab completion: use JLine grouping feature to present choices in groups bug#12281)
- sigh, JLine is broken; see remarks on ticket
Out of scope
- Get rid of our own REPL, adopt Ammonite wholesale
- Perhaps this could happen in Scala 3; I don't know. Certainly not happening in Scala 2: too much work, too disruptive.
- I would encourage people to instead consider porting Ammonite features to the stock REPL, or to turn Ammonite into a wrapper or client of the stock REPL, to avoid code duplication.
- other possibilities originally included on REPL: Improved REPL #325
- ...are probably out of scope for the core team, but contributors might be interested?
- "Magic imports" of dependencies, a la Ammonite's Ivy imports?
- Overlaps with existing
:require
feature - Involves integrating with Coursier
- May overlap with making our launchers Coursier-based
- Moved to "out of scope" with the advent of https://scala-cli.virtuslab.org
- Overlaps with existing