public ConfigNode mergeLanguageSettings(
final String packageName, ConfigNode configNode, ConfigNode prevNode) {
FieldConfigNode languageSettingsNode =
MissingFieldTransformer.insert("language_settings", configNode, prevNode).generate();
if (NodeFinder.hasContent(languageSettingsNode.getChild())) {
return languageSettingsNode;
}
ConfigNode languageSettingsValueNode =
ListTransformer.generateList(
LANGUAGE_FORMATTERS.entrySet(),
languageSettingsNode,
(startLine, entry) -> {
ConfigNode languageNode =
new FieldConfigNode(startLine, entry.getKey().name().toLowerCase());
mergeLanguageSetting(languageNode, entry.getValue(), packageName);
return languageNode;
});
return languageSettingsNode
.setChild(languageSettingsValueNode)
.setComment(new DefaultComment("The settings of generated code in a specific language."));
}