From f4278fe39f3418b1ca50e25d5d3fc4e19276e083 Mon Sep 17 00:00:00 2001 From: Jesse Beder Date: Tue, 22 May 2012 16:41:03 -0500 Subject: [PATCH] Added long key flow map --- src/emitter.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/emitter.cpp b/src/emitter.cpp index d0e3a53..66c3728 100644 --- a/src/emitter.cpp +++ b/src/emitter.cpp @@ -422,10 +422,59 @@ namespace YAML void Emitter::FlowMapPrepareLongKey(EmitterNodeType::value child) { + const unsigned lastIndent = m_pState->LastIndent(); + + if(!m_pState->HasBegunNode()) { + if(m_stream.comment()) + m_stream << "\n"; + m_stream << IndentTo(lastIndent); + if(m_pState->CurGroupChildCount() == 0) + m_stream << "{ ?"; + else + m_stream << ", ?"; + } + + switch(child) { + case EmitterNodeType::None: + break; + case EmitterNodeType::Property: + case EmitterNodeType::Scalar: + case EmitterNodeType::FlowSeq: + case EmitterNodeType::FlowMap: + SpaceOrIndentTo(m_pState->HasBegunContent() || m_pState->CurGroupChildCount() > 0, lastIndent); + break; + case EmitterNodeType::BlockSeq: + case EmitterNodeType::BlockMap: + assert(false); + break; + } } void Emitter::FlowMapPrepareLongKeyValue(EmitterNodeType::value child) { + const unsigned lastIndent = m_pState->LastIndent(); + + if(!m_pState->HasBegunNode()) { + if(m_stream.comment()) + m_stream << "\n"; + m_stream << IndentTo(lastIndent); + m_stream << ":"; + } + + switch(child) { + case EmitterNodeType::None: + break; + case EmitterNodeType::Property: + case EmitterNodeType::Scalar: + case EmitterNodeType::FlowSeq: + case EmitterNodeType::FlowMap: + SpaceOrIndentTo(m_pState->HasBegunContent() || m_pState->CurGroupChildCount() > 0, lastIndent); + break; + case EmitterNodeType::BlockSeq: + case EmitterNodeType::BlockMap: + assert(false); + break; + } } void Emitter::FlowMapPrepareSimpleKey(EmitterNodeType::value child)