object Doc extends Serializable
- Alphabetic
- By Inheritance
- Doc
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
cat(ds: Iterable[Doc]): Doc
Concatenate the given documents together.
Concatenate the given documents together.
cat(ds)is equivalent tods.foldLeft(empty)(_ + _) -
def
char(c: Char): Doc
Build a document from a single character.
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
val
comma: Doc
a literal comma, equivalent to char(',')
- val empty: Doc
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
equivAtWidths(widths: List[Int]): Equiv[Doc]
Require documents to be equivalent at all the given widths, as well as at their "wide" renderings.
-
def
fill(sep: Doc, ds: Iterable[Doc]): Option[Doc]
Collapse a collection of documents into one document, delimited by a separator.
Collapse a collection of documents into one document, delimited by a separator.
For example:
import Doc.{ comma, line, text, fill } val ds = text("1") :: text("2") :: text("3") :: Nil val doc = fill(comma + line, ds)
doc.render(0) // produces "1,\n2,\n3" doc.render(6) // produces "1, 2,\n3" doc.render(10) // produces "1, 2, 3"
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
foldDocs(ds: Iterable[Doc])(fn: (Doc, Doc) ⇒ Doc): Doc
Combine documents, using the given associative function.
Combine documents, using the given associative function.
The function
fnmust be associative. That is, the expressionfn(x, fn(y, z))must be equivalent tofn(fn(x, y), z).In practice this method builds documents from the right, so that the resulting concatenations are all right-associated.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
intercalate(sep: Doc, ds: Iterable[Doc]): Doc
Concatenate the given documents together, delimited by the given separator.
Concatenate the given documents together, delimited by the given separator.
For example,
intercalate(comma, List(a, b, c))is equivalent toa + comma + b + comma + b. -
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
line: Doc
when flattened a line becomes a space You might also @see lineBreak if you want a line that is flattened into empty
-
val
lineBreak: Doc
A lineBreak is a line that is flattened into an empty Doc.
A lineBreak is a line that is flattened into an empty Doc. This is generally useful in code following tokens that parse without the need for whitespace termination (consider ";" "," "=>" etc..)
when we call
.groupedon lineBreak we get lineOrEmpty -
val
lineNoFlat: Doc
Line that does not flatten, but respects nesting.
-
val
lineNoFlatNoIndent: Doc
Line that does not flatten, and does not respect nesting.
-
val
lineOrEmpty: Doc
lineOrEmpty renders as empty if we can fit the rest or inserts a newline.
lineOrEmpty renders as empty if we can fit the rest or inserts a newline. Identical to lineBreak.grouped
-
val
lineOrSpace: Doc
lineOrSpace renders a space if we can fit the rest or inserts a newline.
lineOrSpace renders a space if we can fit the rest or inserts a newline. Identical to line.grouped
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
orderingAtWidth(w: Int): Ordering[Doc]
Order documents by how they render at the given width.
-
def
paragraph(s: String): Doc
Split the given text into words (separated by whitespace), and then join those words with a space or newline.
Split the given text into words (separated by whitespace), and then join those words with a space or newline.
This produces text which will wrap naturally at line boundaries, producing a block of text.
paragraphis an alias for Doc.split(s), which uses its default arguments to split on whitespace and to rejoin the documents withDoc.lineOrSpace. - val space: Doc
-
def
spaces(n: Int): Doc
Produce a document of exactly
nspaces.Produce a document of exactly
nspaces.If
n < 1, and empty document is returned. -
def
split(str: String, pat: Regex = Doc.splitWhitespace, sep: Doc = Doc.lineOrSpace): Doc
Convert a string to text, replacing instances of the given pattern with the corresponding separator.
Convert a string to text, replacing instances of the given pattern with the corresponding separator.
Like Doc.text, this method will also lift newlines into the Doc abstraction.
The default pattern to use is
"""\s+""".rand the default separator to use isDoc.lineOrSpace. -
def
spread(ds: Iterable[Doc]): Doc
Concatenate the given documents together, delimited by spaces.
-
def
stack(ds: Iterable[Doc]): Doc
Concatenate the given documents together, delimited by newlines.
-
def
str[T](t: T): Doc
Convert an arbitrary value to a Doc, using
toString.Convert an arbitrary value to a Doc, using
toString.This method is equivalent to
Doc.text(t.toString). -
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
tabulate(fill: Char, rightSep: String, rows: Iterable[(String, Doc)]): Doc
build a table with the strings left aligned and the Docs starting in the column after the longest string.
build a table with the strings left aligned and the Docs starting in the column after the longest string. The Docs on the right are rendered aligned after the rightSep
- fill
the character used to fill the columns to make the values aligned (i.e. ' ' or '.')
- rightSep
a string append left to the left of the value. Intended for use with bullets on values
- rows
a List of key, value pairs to put in a table.
-
def
tabulate(kv: List[(String, Doc)]): Doc
A simple table which is the same as: tabulate("", ' ', "", kv)
A simple table which is the same as: tabulate("", ' ', "", kv)
or, no right separator and a space as the fill
-
def
text(str: String): Doc
Convert a string to text.
Convert a string to text.
This method translates newlines into an appropriate document representation. The result may be much more complex than a single
Text(_)node. -
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )