trait Repl extends ReplCore

Interface to the repl for use by the frontend (shell, the UI).

The interface should not depend on symbols and types (the compiler's internal state). At most, expose untyped trees and positions in addition to standard Java types. This decoupling would allow running the shell in a separate thread, or even in a separate process from the compiler. It should also be possible to write a new REPL frontend using this interface, and be compatible across minor compiler releases.

(The first iteration of this interface is only uses Positions and standard JVM types, but we could loosen that.)

Source
Interface.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Repl
  2. ReplCore
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract type Request <: ReplRequest
  2. type Setting = Settings.Setting

Abstract Value Members

  1. abstract def addUrlsToClassPath(urls: URL*): Unit

    Adds all specified jars to the compile and runtime classpaths.

    Adds all specified jars to the compile and runtime classpaths.

    urls

    The list of items to add to the compile and runtime classpaths.

    Note

    Currently only supports jars, not directories.

  2. abstract def bind(p: NamedParam): Result
  3. abstract def bind(name: String, boundType: String, value: Any, modifiers: List[String] = Nil): Result

    Bind a specified name to a specified value.

    Bind a specified name to a specified value. The name may later be used by expressions passed to interpret.

    name

    the variable name to bind

    boundType

    the type of the variable, as a string

    value

    the object value to bind to it

    returns

    an indication of whether the binding succeeded

    Definition Classes
    ReplCore
  4. abstract def classLoader: AbstractFileClassLoader
  5. abstract def classPathString: String
  6. abstract def clearExecutionWrapper(): Unit
  7. abstract def close(): Unit

    This instance is no longer needed, so release any resources it is using.

    This instance is no longer needed, so release any resources it is using. The reporter's output gets flushed.

  8. abstract def compileSources(sources: SourceFile*): Boolean

    Compile an nsc SourceFile.

    Compile an nsc SourceFile. Returns true if there are no compilation errors, or false otherwise.

  9. abstract def compileString(code: String): Boolean

    Compile a string.

    Compile a string. Returns true if there are no compilation errors, or false otherwise.

  10. abstract def compilerClasspath: Seq[URL]
  11. abstract def definedTypes: List[String]
  12. abstract def implicitsCommandInternal(line: String): (List[String], String)
  13. abstract def importsCommandInternal(tokens: List[String]): List[String]
  14. abstract def initializeCompiler(): Boolean
  15. abstract def initializeComplete: Boolean
  16. abstract def interpret(line: String, synthetic: Boolean): Result
  17. abstract def interpret(line: String): Result

    Interpret one line of input.

    Interpret one line of input. All feedback, including parse errors and evaluation results, are printed via the supplied compiler's reporter. Values defined are available for future interpreted strings.

    The return value is whether the line was interpreted successfully, e.g. that there were no parse errors.

    Definition Classes
    ReplCore
  18. abstract def interpretFinally(line: String): Result
  19. abstract def isPackaged(line: String): Boolean
  20. abstract def kindCommandInternal(expr: String, verbose: Boolean): String
  21. abstract def lastWarnings: List[(Position, String)]
  22. abstract def mostRecentVar: String

    Returns the name of the most recent interpreter result.

    Returns the name of the most recent interpreter result. Mostly this exists so you can conveniently invoke methods on the previous result.

  23. abstract def namedDefinedTerms: List[String]
  24. abstract def namedParam[T](name: String, value: T)(implicit arg0: reflect.api.JavaUniverse.TypeTag[T], arg1: ClassTag[T]): NamedParam
  25. abstract def originalPath(name: String): String
  26. abstract def outputDir: AbstractFile
  27. abstract def parseString(line: String): Result

    TODO resolve scan, parse, compile, interpret, which just indicate how much work to do.

  28. abstract val power: Power[StdReplVals]
  29. abstract def presentationCompile(cursor: Int, buf: String): Either[Result, PresentationCompilationResult]
  30. abstract def quietBind(p: NamedParam): Result
  31. abstract def quietRun(code: String): Result
  32. abstract def reporter: ReplReporter
  33. abstract def requestDefining(name: String): Option[ReplRequest]
  34. abstract def reset(): Unit

    Reset this interpreter, forgetting all user-specified requests.

  35. abstract def setExecutionWrapper(code: String): Unit
  36. abstract val settings: Settings
  37. abstract def showDirectory: String
  38. abstract def tokenize(line: String): List[TokenData]
  39. abstract def translateEnclosingClass(n: String): Option[String]
  40. abstract def translatePath(path: String): Option[String]
  41. abstract def typeCommandInternal(expr: String, verbose: Boolean): (String, String)

    TODO - -n normalize -l label with case class parameter names -c complete - leave nothing out

  42. abstract def updateSettings(arguments: List[String]): Boolean
  43. abstract def userSetSettings: List[Setting]
  44. abstract def valueOfTerm(id: String): Option[Any]
  45. abstract def visibleSettings: List[Setting]
  46. abstract def withLabel[A](temp: String)(body: => A): A
  47. abstract def withSuppressedSettings(body: => Unit): Unit

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from Repl toany2stringadd[Repl] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (Repl, B)
    Implicit
    This member is added by an implicit conversion from Repl toArrowAssoc[Repl] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. final def beQuietDuring(body: => Unit): Unit

    The reporter will not print results during execution of body.

    The reporter will not print results during execution of body.

    Definition Classes
    ReplReplCore
  8. def bindValue(name: String, value: Any): Result

    Bind a specified name to a specified value.

    Bind a specified name to a specified value. The type is derived from the run-time class of the value.

    Definition Classes
    ReplCore
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  10. def ensuring(cond: (Repl) => Boolean, msg: => Any): Repl
    Implicit
    This member is added by an implicit conversion from Repl toEnsuring[Repl] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: (Repl) => Boolean): Repl
    Implicit
    This member is added by an implicit conversion from Repl toEnsuring[Repl] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: Boolean, msg: => Any): Repl
    Implicit
    This member is added by an implicit conversion from Repl toEnsuring[Repl] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean): Repl
    Implicit
    This member is added by an implicit conversion from Repl toEnsuring[Repl] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  16. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  17. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  18. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  19. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  20. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  24. def toString(): String
    Definition Classes
    AnyRef → Any
  25. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Deprecated Value Members

  1. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from Repl toStringFormat[Repl] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.12.16) Use formatString.format(value) instead of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  2. final def setContextClassLoader(): Unit
    Definition Classes
    ReplCore
    Annotations
    @deprecated
    Deprecated

    (Since version 2.12.0) The thread context classloader is now set and restored around execution of REPL line, this method is now a no-op.

  3. def [B](y: B): (Repl, B)
    Implicit
    This member is added by an implicit conversion from Repl toArrowAssoc[Repl] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from ReplCore

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromRepl to any2stringadd[Repl]

Inherited by implicit conversion StringFormat fromRepl to StringFormat[Repl]

Inherited by implicit conversion Ensuring fromRepl to Ensuring[Repl]

Inherited by implicit conversion ArrowAssoc fromRepl to ArrowAssoc[Repl]

Ungrouped