Return a negative integer, zero, or a positive integer if this object is less than, equal to, or greater than the specified object:
this < that => <0
this == that => 0
this > that => >0
This method may also be accessed via the <
<=
<=>
>=
and >
shortcut operators. If not overridden the default
implementation compares the toStr
representations. Also see docLang.
Examples:
3.compare(8) => -1
8.compare(3) => 1
8.compare(8) => 0
3 <=> 8 => -1 // shortcut for 3.compare(8)
Add a custom block parser factory.
Note that custom factories are applied before the built-in factories. This is so that extensions can change how some syntax is parsed that would otherwise be handled by built-in factories.
Add a factory for a custom inline content parser, for extending inline parsing or overriding built-in parsing.
Note that parsers are triggered based on a special character as specified by InlineContentParserFactory.triggerChars. It is possible to register multiple parsers for the same character, or even for some built-in special character such as ```. The custom parsers are tried first in the order in which they are registered, and then the built-in ones.
Compare this object to the specified for equality. This
method may be accessed via the == and != shortcut operators.
If not overridden the default implementation compares for
reference equality using the === operator. If this method
is overridden, then hash() must also be overridden such that
any two objects which return true for equals() must return
the same value for hash(). This method must accept null
and
return false.
Return a unique hashcode for this object. If a class overrides hash() then it must ensure if equals() returns true for any two objects then they have same hash code.
Add a custom link marker for link processing. A link marker
is a character like !
which, if it appears before the [
of a
link, changes the meaning of the link.
If a link marker followed by a valid link is parsed, the LinkInfo that is passed to the LinkProcessor will have its LinkInfo.marker set. A link processor should check the Text.literal and then do any processing, and will probably want to use LinkResult.includeMarker.
Add a custom link/image processor for inline parsing.
Multiple link processors can be added, and will be tried in the order in which they were added. If no processor applies, the normal behavior applies. That means these can override built-in link parsing.
Get an immutable representation of this instance or throw NotImmutableErr if this object cannot be represented as an immutable:
Return a string representation of this object.
Trap a dynamic call for handling. Dynamic calls are invoked with the -> shortcut operator:
a->x a.trap("x", null)
a->x() a.trap("x", null)
a->x = b a.trap("x", [b])
a->x(b) a.trap("x", [b])
a->x(b, c) a.trap("x", [b, c])
The default implementation provided by Obj attempts to use reflection. If name maps to a method, it is invoked with the specified arguments. If name maps to a field and args.size is zero, get the field. If name maps to a field and args.size is one, set the field and return args[0]. Otherwise throw UnknownSlotErr.
This method called whenever an it-block is applied to an
object. The default implementation calls the function with this
,
and then returns this
.
Describe the list of markdown features the parser will recognize and parse.
By default, we will recognize and parse the following set of "block" elements:
#
)<html></html>
)---
)>
)1. / *
)To parse only a subset of the features listed above, pass a lsit of each feature's associated Block type.
Example: to parse only headings and lists:
Parser.builder.withEnabledBlockTypes([Heading#, ListBlock#])
Static
echoWrite x.toStr
to standard output followed by newline. If x
is null then print "null". If no argument is provided then
print an empty line.
Optional
x: JsObj
Builder for customizing the behavior of the common mark parser