abstract class Reporter extends ZincReporter

A flexible reporter whose configuration is provided by a ReporterConfig. This configuration indicated whether to use colors, how to format messages, etc.

A reporter has internal state and must be instantiated per compilation.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Reporter
  2. ZincReporter
  3. ConfigurableReporter
  4. Reporter
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Reporter(logger: Logger, cwd: AbsolutePath, config: ReporterConfig, _problems: Buffer[ProblemPerPhase] = mutable.ArrayBuffer.empty)

    logger

    The logger that will receive the output of the reporter.

    cwd

    The current working directory of the user who started compilation.

    config

    The configuration for this reporter.

Abstract Value Members

  1. abstract def printSummary(): Unit
    Definition Classes
    Reporter
  2. abstract def reportCancelledCompilation(): Unit

    Report the compile cancellation of this project.

    Report the compile cancellation of this project.

    Definition Classes
    ZincReporter
  3. abstract def reportCompilationProgress(progress: Long, total: Long): Unit

    Report the progress from the compiler.

    Report the progress from the compiler.

    Definition Classes
    ZincReporter
  4. abstract def reportEndIncrementalCycle(durationMs: Long, result: Try[Unit]): Unit

    A function called after every incremental cycle, even if any compilation errors happen.

    A function called after every incremental cycle, even if any compilation errors happen. This method is not called if the compilation is a no-op (e.g. same analysis as before).

    durationMs

    The time it took to complete the incremental compiler cycle.

    result

    The result of the incremental cycle. We don't use bsp.StatusCode because the bloop backend, where this method is used, should not depend on bsp4j.

    Definition Classes
    ZincReporter
  5. abstract def reportStartCompilation(previousProblems: List[ProblemPerPhase]): Unit

    A function called *always* at the very beginning of compilation.

    A function called *always* at the very beginning of compilation.

    Definition Classes
    ZincReporter
  6. abstract def reportStartIncrementalCycle(sources: Seq[File], outputDirs: Seq[File]): Unit

    A function called before every incremental cycle with the compilation inputs.

    A function called before every incremental cycle with the compilation inputs. This method is not called if the compilation is a no-op (e.g. same analysis as before).

    Definition Classes
    ZincReporter

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val _problems: Buffer[ProblemPerPhase]
  5. def allProblems: Seq[Problem]

    All the Problems seen by this reporter.

    All the Problems seen by this reporter.

    Definition Classes
    ReporterConfigurableReporter
  6. def allProblemsPerPhase: Seq[ProblemPerPhase]
    Definition Classes
    ReporterZincReporter
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  9. def comment(pos: Position, msg: String): Unit
    Definition Classes
    Reporter → Reporter
  10. val config: ReporterConfig

    The configuration for this reporter.

    The configuration for this reporter.

    Definition Classes
    ReporterConfigurableReporter
  11. val cwd: AbsolutePath

    The current working directory of the user who started compilation.

    The current working directory of the user who started compilation.

    Definition Classes
    ReporterConfigurableReporter
  12. def enableFatalWarnings(): Unit

    Enables internal bloop implementation of fatal warnings.

    Enables internal bloop implementation of fatal warnings.

    Having fatal warnings implemented inside the compiler has several drawbacks:

    1. Bloop receives a failed compilation when there is a warning. A failed compilation doesn't allow us to cache the work done during an incremental compiler cycle and the compilation products generated are thrown away. This means next time we compile we need to redo the work of compiling all changed source files when we would only want to recompile the files that produced a fatal warning.

    2. When warnings are produced, Metals doesn't have access to the class files generated by the failed compilation. This affects negatively the editing experience in the editor.

    To work around these limitations, we remove -Xfatal-warnings from the scalac options passed to the compiler and we implement fatal warnings ourselves in our reporter implementation.

    Our implementation promotes warnings to errors just before we're going to report them but still represents warnings as warnings in the analysis file. At the same time, it also treats successful compilations with fatal warnings as errors at the very end of the compilation pipeline, after all the compilation passes have been done in a build graph, and guarantees that it works for clients that have their compilations deduplicated.

    All in all, implementing fatal warnings reproduces the previous behavior in the compiler but without the inconveniences of handling compilation results as failures when only fatal warnings are solely responsible for the failed result.

    Definition Classes
    ReporterZincReporter
  13. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  15. val filesToPhaseStack: TrieMap[File, List[String]]
    Attributes
    protected
  16. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  18. def getSourceFilesWithFatalWarnings: Set[File]

    Tells the caller which source files have fatal warnings so that Bloop can mark them as changed and get recompiled in the next incremental cycle.

    Tells the caller which source files have fatal warnings so that Bloop can mark them as changed and get recompiled in the next incremental cycle.

    Definition Classes
    ReporterZincReporter
  19. def hasErrors(): Boolean

    true if this reporter has received errors, false otherwise.

    true if this reporter has received errors, false otherwise.

    Definition Classes
    ReporterConfigurableReporter → Reporter
  20. def hasWarnings(): Boolean

    true if this reporter has received warnings, false otherwise.

    true if this reporter has received warnings, false otherwise.

    Definition Classes
    ReporterConfigurableReporter → Reporter
  21. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. def liftFatalWarning(problem: Problem): Problem
    Attributes
    protected
  24. def liftProblem(p: xsbti.Problem): Problem
    Attributes
    protected
  25. def log(xproblem: xsbti.Problem): Unit
    Definition Classes
    Reporter → Reporter
  26. val logger: Logger
  27. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  28. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  29. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  30. val phasesAtFile: TrieMap[File, String]
    Attributes
    protected
  31. def problems(): Array[xsbti.Problem]
    Definition Classes
    Reporter → Reporter
  32. def reportEndCompilation(previousSuccessfulProblems: List[ProblemPerPhase], code: StatusCode): Unit

    A function called at the very end of compilation, before returning from Zinc to bloop.

    A function called at the very end of compilation, before returning from Zinc to bloop. This method **is** called if the compilation is a no-op.

    code

    The status code for a given compilation. The status code can be used whenever there is a noop compile and it's successful or cancelled.

    Definition Classes
    ReporterZincReporter
  33. def reportNextPhase(phase: String, sourceFile: File): Unit

    Report when the compiler enters in a phase.

    Report when the compiler enters in a phase.

    Definition Classes
    ReporterZincReporter
  34. def reset(): Unit
    Definition Classes
    Reporter → Reporter
  35. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  36. def toString(): String
    Definition Classes
    AnyRef → Any
  37. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  39. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from ZincReporter

Inherited from ConfigurableReporter

Inherited from xsbti.Reporter

Inherited from AnyRef

Inherited from Any

Ungrouped