mirror of
https://github.com/apple/pkl.git
synced 2026-03-29 05:11:55 +02:00
Update SnakeYAML Engine to 2.8 (#813)
Changes: - update version selector and lock files - adapt code to breaking changes
This commit is contained in:
@@ -22,6 +22,7 @@ import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
import org.pkl.core.util.Nullable;
|
||||
import org.pkl.core.util.yaml.snake.YamlUtils;
|
||||
import org.snakeyaml.engine.v2.api.ConstructNode;
|
||||
import org.snakeyaml.engine.v2.api.DumpSettings;
|
||||
import org.snakeyaml.engine.v2.api.StreamDataWriter;
|
||||
import org.snakeyaml.engine.v2.common.FlowStyle;
|
||||
@@ -29,6 +30,7 @@ import org.snakeyaml.engine.v2.emitter.Emitter;
|
||||
import org.snakeyaml.engine.v2.events.*;
|
||||
import org.snakeyaml.engine.v2.nodes.Tag;
|
||||
import org.snakeyaml.engine.v2.resolver.ScalarResolver;
|
||||
import org.snakeyaml.engine.v2.schema.Schema;
|
||||
|
||||
final class YamlRenderer implements ValueRenderer {
|
||||
private final ScalarResolver resolver = YamlUtils.getEmitterResolver("compat");
|
||||
@@ -42,7 +44,18 @@ final class YamlRenderer implements ValueRenderer {
|
||||
DumpSettings.builder()
|
||||
.setIndent(indent)
|
||||
.setBestLineBreak("\n")
|
||||
.setScalarResolver(resolver)
|
||||
.setSchema(
|
||||
new Schema() {
|
||||
@Override
|
||||
public ScalarResolver getScalarResolver() {
|
||||
return resolver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Tag, ConstructNode> getSchemaTagConstructors() {
|
||||
throw new AssertionError("emitters don't use tag constructors");
|
||||
}
|
||||
})
|
||||
.build();
|
||||
|
||||
emitter =
|
||||
|
||||
@@ -39,6 +39,8 @@ import org.snakeyaml.engine.v2.constructor.StandardConstructor;
|
||||
import org.snakeyaml.engine.v2.exceptions.Mark;
|
||||
import org.snakeyaml.engine.v2.exceptions.YamlEngineException;
|
||||
import org.snakeyaml.engine.v2.nodes.*;
|
||||
import org.snakeyaml.engine.v2.resolver.ScalarResolver;
|
||||
import org.snakeyaml.engine.v2.schema.Schema;
|
||||
|
||||
public final class ParserNodes {
|
||||
private static final Pattern WHITESPACE = Pattern.compile("\\s");
|
||||
@@ -133,12 +135,24 @@ public final class ParserNodes {
|
||||
|
||||
private static Load createLoad(VmTyped self, String text, String uri, PklConverter converter) {
|
||||
var mode = (String) VmUtils.readMember(self, Identifier.MODE);
|
||||
var resolver = YamlUtils.getParserResolver(mode);
|
||||
var useMapping = (boolean) VmUtils.readMember(self, Identifier.USE_MAPPING);
|
||||
var settings =
|
||||
LoadSettings.builder()
|
||||
.setMaxAliasesForCollections(getMaxCollectionAliases(self))
|
||||
.setScalarResolver(resolver)
|
||||
.setSchema(
|
||||
new Schema() {
|
||||
@Override
|
||||
public ScalarResolver getScalarResolver() {
|
||||
return YamlUtils.getParserResolver(mode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Tag, ConstructNode> getSchemaTagConstructors() {
|
||||
// ParserNodes.Constructor ignores this method,
|
||||
// but it is called from its superclass.
|
||||
return Map.of();
|
||||
}
|
||||
})
|
||||
.setLabel(uri)
|
||||
.build();
|
||||
var source =
|
||||
|
||||
Reference in New Issue
Block a user