summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/interactive/tests/core/PresentationCompilerInstance.scala
blob: 7bb2b7b7c80dcb6d52e09a61a363ed7136a7d669 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package scala.tools.nsc
package interactive
package tests.core

import reporters.{Reporter => CompilerReporter}
import scala.reflect.internal.util.Position

/** Trait encapsulating the creation of a presentation compiler's instance.*/
private[tests] trait PresentationCompilerInstance extends TestSettings {
  protected val settings = new Settings
  protected val docSettings = new doc.Settings(_ => ())

  protected val compilerReporter: CompilerReporter = new InteractiveReporter {
    override def compiler = PresentationCompilerInstance.this.compiler
  }

  protected lazy val compiler: Global = {
    prepareSettings(settings)
    new Global(settings, compilerReporter)
  }

  /**
   * Called before instantiating the presentation compiler's instance.
   * You should provide an implementation of this method if you need
   * to customize the `settings` used to instantiate the presentation compiler.
   * */
  protected def prepareSettings(settings: Settings) {}

  protected def printClassPath(implicit reporter: Reporter) {
    reporter.println("\tbootClassPath: %s".format(settings.bootclasspath.value))
    reporter.println("\tverbose: %b".format(settings.verbose.value))
  }
}