fix issue752: generate right long keys
This commit is contained in:
parent
d9c35b6079
commit
f69ca7987c
@ -556,6 +556,8 @@ void Emitter::BlockMapPrepareLongKey(EmitterNodeType::value child) {
|
||||
break;
|
||||
case EmitterNodeType::BlockSeq:
|
||||
case EmitterNodeType::BlockMap:
|
||||
if (m_pState->HasBegunContent())
|
||||
m_stream << "\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -579,8 +581,12 @@ void Emitter::BlockMapPrepareLongKeyValue(EmitterNodeType::value child) {
|
||||
case EmitterNodeType::Scalar:
|
||||
case EmitterNodeType::FlowSeq:
|
||||
case EmitterNodeType::FlowMap:
|
||||
SpaceOrIndentTo(true, curIndent + 1);
|
||||
break;
|
||||
case EmitterNodeType::BlockSeq:
|
||||
case EmitterNodeType::BlockMap:
|
||||
if (m_pState->HasBegunContent())
|
||||
m_stream << "\n";
|
||||
SpaceOrIndentTo(true, curIndent + 1);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -612,6 +612,38 @@ TEST_F(EmitterTest, SimpleGlobalSettings) {
|
||||
ExpectEmit("- ? key 1\n : value 1\n ? key 2\n : [a, b, c]");
|
||||
}
|
||||
|
||||
TEST_F(EmitterTest, GlobalLongKeyOnSeq) {
|
||||
out.SetMapFormat(LongKey);
|
||||
|
||||
out << BeginMap;
|
||||
out << Key << Anchor("key");
|
||||
out << BeginSeq << "a"
|
||||
<< "b" << EndSeq;
|
||||
out << Value << Anchor("value");
|
||||
out << BeginSeq << "c"
|
||||
<< "d" << EndSeq;
|
||||
out << Key << Alias("key") << Value << Alias("value");
|
||||
out << EndMap;
|
||||
|
||||
ExpectEmit("? &key\n - a\n - b\n: &value\n - c\n - d\n? *key\n: *value");
|
||||
}
|
||||
|
||||
TEST_F(EmitterTest, GlobalLongKeyOnMap) {
|
||||
out.SetMapFormat(LongKey);
|
||||
|
||||
out << BeginMap;
|
||||
out << Key << Anchor("key");
|
||||
out << BeginMap << "a"
|
||||
<< "b" << EndMap;
|
||||
out << Value << Anchor("value");
|
||||
out << BeginMap << "c"
|
||||
<< "d" << EndMap;
|
||||
out << Key << Alias("key") << Value << Alias("value");
|
||||
out << EndMap;
|
||||
|
||||
ExpectEmit("? &key\n ? a\n : b\n: &value\n ? c\n : d\n? *key\n: *value");
|
||||
}
|
||||
|
||||
TEST_F(EmitterTest, ComplexGlobalSettings) {
|
||||
out << BeginSeq;
|
||||
out << Block;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user