Formatting

object Formatting
class Object
trait Matchable
class Any

Type members

Classlikes

The em string interpolator works like the i string interpolator, but marks nonsensical errors using <nonsensical>...</nonsensical> tags. Note: Instead of these tags, it would be nicer to return a data structure containing the message string and a boolean indicating whether the message is sensical, but then we cannot use string operations like concatenation, stripMargin etc on the values returned by em"...", and in the current error message composition methods, this is crucial.

The em string interpolator works like the i string interpolator, but marks nonsensical errors using <nonsensical>...</nonsensical> tags. Note: Instead of these tags, it would be nicer to return a data structure containing the message string and a boolean indicating whether the message is sensical, but then we cannot use string operations like concatenation, stripMargin etc on the values returned by em"...", and in the current error message composition methods, this is crucial.

object ShownDef

General purpose string formatter, with the following features:

General purpose string formatter, with the following features:

  1. Invokes the show extension method on the interpolated arguments.
  2. Sequences can be formatted using the desired separator between two % signs, eg i"myList = (${myList}%, %)"
  3. Safe handling of multi-line margins. Left margins are stripped on the parts of the string context before inserting the arguments. That way, we guard against accidentally treating an interpolated value as a margin.

Value members

Concrete methods

When getting a type mismatch it is useful to disambiguate placeholders like:

When getting a type mismatch it is useful to disambiguate placeholders like:

found:    List[Int]
required: List[T]
where:    T is a type in the initializer of value s which is an alias of
         String
Returns:

the where section as well as the printing context for the placeholders - ("T is a...", printCtx)

def explained(op: Context ?=> String)(using Context): String

Entrypoint for explanation string interpolator:

Entrypoint for explanation string interpolator:

ex"disambiguate $tpe1 and $tpe2"
def explanation(entry: AnyRef)(using Context): String

Create explanation for single Recorded type or symbol

Create explanation for single Recorded type or symbol

def hl(s: String)(using Context): String

Explicit syntax highlighting

Explicit syntax highlighting

def hlAsKeyword(str: String)(using Context): String

Explicitly highlight a string with the same formatting as used for keywords

Explicitly highlight a string with the same formatting as used for keywords

def typeDiff(found: Type, expected: Type)(using Context): (String, String)

This method will produce a colored type diff from the given arguments. The idea is to do this for known cases that are useful and then fall back on regular syntax highlighting for the cases which are unhandled.

This method will produce a colored type diff from the given arguments. The idea is to do this for known cases that are useful and then fall back on regular syntax highlighting for the cases which are unhandled.

Please not that if used in combination with disambiguateTypes the correct Context for printing should also be passed when calling the method.

Returns:

the (found, expected, changePercentage) with coloring to highlight the difference

Exports

Defined exports

final val Show: Show.type
Exported from ShownDef
final type Show = Show
Exported from ShownDef$
final val Shown: Shown.type
Exported from ShownDef
final type Shown = Shown
Exported from ShownDef$