Rewrite the parser for a 10x speed improvement.
Support anchors and aliases (&foo
and *foo
).
Support explicit tags (e.g. !!str
). Note that user-defined tags are still not fully supported.
%YAML
and %TAG
directives are now parsed, although again user-defined tags are not fully supported.
YamlScalar
, YamlList
, and YamlMap
now expose the styles in which they were written (for example plain vs folded, block vs flow).
A yamlWarningCallback
field is exposed. This field can be used to customize how YAML warnings are displayed.
Fix an import in a test.
Widen the version constraint on the collection
package.
Span
class in documentation and tests.Switch from source_maps
' Span
class to source_span
's SourceSpan
class.
For consistency with source_span
and string_scanner
, all sourceName
parameters have been renamed to sourceUrl
. They now accept Urls as well as Strings.
Fix broken type arguments that caused breakage on dart2js.
Fix an analyzer warning in yaml_node_wrapper.dart
.
Add new publicly-accessible constructors for YamlNode
subclasses. These constructors make it possible to use the same API to access non-YAML data as YAML data.
Make YamlException
inherit from source_map's [SpanFormatException
][]. This improves the error formatting and allows callers access to source range information.
Backwards incompatibility: The data structures returned by loadYaml
and loadYamlStream
are now immutable.
Backwards incompatibility: The interface of the YamlMap
class has changed substantially in numerous ways. External users may no longer construct their own instances.
Maps and lists returned by loadYaml
and loadYamlStream
now contain information about their source locations.
A new loadYamlNode
function returns the source location of top-level scalars as well.
YamlMap
class is deprecated. In a future version, maps returned by loadYaml
and loadYamlStream
will be Dart HashMap
s with a custom equality operation.