Expose codepoint limit in YamlConfigOptions, and increase default

This commit is contained in:
Shane Freeder 2022-09-22 07:04:30 +01:00
parent 8684d2ad7e
commit dc61471a8c
2 changed files with 27 additions and 0 deletions

View file

@ -98,6 +98,7 @@ public class YamlConfiguration extends FileConfiguration {
public void loadFromString(@NotNull String contents) throws InvalidConfigurationException {
Preconditions.checkArgument(contents != null, "Contents cannot be null");
yamlLoaderOptions.setProcessComments(options().parseComments());
yamlLoaderOptions.setCodePointLimit(options().codePointLimit()); // Paper
MappingNode node;
try (Reader reader = new UnicodeReader(new ByteArrayInputStream(contents.getBytes(StandardCharsets.UTF_8)))) {

View file

@ -12,6 +12,7 @@ import org.jetbrains.annotations.Nullable;
public class YamlConfigurationOptions extends FileConfigurationOptions {
private int indent = 2;
private int width = 80;
private int codePointLimit = Integer.MAX_VALUE; // Paper - use upstream's default from YamlConfiguration
protected YamlConfigurationOptions(@NotNull YamlConfiguration configuration) {
super(configuration);
@ -122,4 +123,29 @@ public class YamlConfigurationOptions extends FileConfigurationOptions {
this.width = value;
return this;
}
// Paper start
/**
* Gets the maximum code point limit, that being, the maximum length of the document
* in which the loader will read
*
* @return The current value
*/
public int codePointLimit() {
return codePointLimit;
}
/**
* Sets the maximum code point limit, that being, the maximum length of the document
* in which the loader will read
*
* @param codePointLimit new codepoint limit
* @return This object, for chaining
*/
@NotNull
public YamlConfigurationOptions codePointLimit(int codePointLimit) {
this.codePointLimit = codePointLimit;
return this;
}
// Paper end
}