diff --git a/src/contrib/yaml-cpp.natvis b/src/contrib/yaml-cpp.natvis new file mode 100644 index 0000000000000000000000000000000000000000..d5c222be52c19a8d98c965a588c50e7098765c5a --- /dev/null +++ b/src/contrib/yaml-cpp.natvis @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- MSVC Debugger visualization hints for YAML::Node and YAML::detail::node --> +<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> + <Type Name="YAML::Node"> + <DisplayString Condition="!m_isValid">{{invalid}}</DisplayString> + <DisplayString Condition="!m_pNode">{{pNode==nullptr}}</DisplayString> + <DisplayString>{{ {*m_pNode} }}</DisplayString> + <Expand> + <Item Condition="m_pNode->m_pRef._Ptr->m_pData._Ptr->m_type==YAML::NodeType::Scalar" Name="scalar">m_pNode->m_pRef._Ptr->m_pData._Ptr->m_scalar</Item> + <Item Condition="m_pNode->m_pRef._Ptr->m_pData._Ptr->m_type==YAML::NodeType::Sequence" Name="sequence">m_pNode->m_pRef._Ptr->m_pData._Ptr->m_sequence</Item> + <Item Condition="m_pNode->m_pRef._Ptr->m_pData._Ptr->m_type==YAML::NodeType::Map" Name="map">m_pNode->m_pRef._Ptr->m_pData._Ptr->m_map</Item> + <Item Name="[details]" >m_pNode->m_pRef._Ptr->m_pData._Ptr</Item> + </Expand> + </Type> + + <Type Name="YAML::detail::node"> + <DisplayString Condition="!m_pRef._Ptr">{{node:pRef==nullptr}}</DisplayString> + <DisplayString Condition="!m_pRef._Ptr->m_pData._Ptr">{{node:pRef->pData==nullptr}}</DisplayString> + <DisplayString Condition="!m_pRef._Ptr->m_pData._Ptr->m_isDefined">{{undefined}}</DisplayString> + <DisplayString Condition="m_pRef._Ptr->m_pData._Ptr->m_type==YAML::NodeType::Scalar">{{{m_pRef._Ptr->m_pData._Ptr->m_scalar}}}</DisplayString> + <DisplayString Condition="m_pRef._Ptr->m_pData._Ptr->m_type==YAML::NodeType::Map">{{ Map {m_pRef._Ptr->m_pData._Ptr->m_map}}}</DisplayString> + <DisplayString Condition="m_pRef._Ptr->m_pData._Ptr->m_type==YAML::NodeType::Sequence">{{ Seq {m_pRef._Ptr->m_pData._Ptr->m_sequence}}}</DisplayString> + <DisplayString>{{{m_pRef._Ptr->m_pData._Ptr->m_type}}}</DisplayString> + <Expand> + <Item Condition="m_pRef._Ptr->m_pData._Ptr->m_type==YAML::NodeType::Scalar" Name="scalar">m_pRef._Ptr->m_pData._Ptr->m_scalar</Item> + <Item Condition="m_pRef._Ptr->m_pData._Ptr->m_type==YAML::NodeType::Sequence" Name="sequence">m_pRef._Ptr->m_pData._Ptr->m_sequence</Item> + <Item Condition="m_pRef._Ptr->m_pData._Ptr->m_type==YAML::NodeType::Map" Name="map">m_pRef._Ptr->m_pData._Ptr->m_map</Item> + <Item Name="[details]" >m_pRef._Ptr->m_pData._Ptr</Item> + </Expand> + </Type> + +</AutoVisualizer> diff --git a/src/contrib/yaml-cpp.natvis.md b/src/contrib/yaml-cpp.natvis.md new file mode 100644 index 0000000000000000000000000000000000000000..f1d68a86c61ab9a33073ead285d293429b78b0c4 --- /dev/null +++ b/src/contrib/yaml-cpp.natvis.md @@ -0,0 +1,9 @@ +# MSVC debugger visualizer for YAML::Node + +## How to use +Add yaml-cpp.natvis to your Visual C++ project like any other source file. It will be included in the debug information, and improve debugger display on YAML::Node and contained types. + +## Compatibility and Troubleshooting + +This has been tested for MSVC 2017. It is expected to be compatible with VS 2015 and VS 2019. If you have any problems, you can open an issue here: https://github.com/peterchen-cp/yaml-cpp-natvis +