aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVyacheslav Egorov <WheretIB@gmail.com>2018-08-08 03:03:37 +0300
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2018-08-07 17:03:37 -0700
commitc51214f21ecd34dd6f0058f84d585fc2b06b4701 (patch)
tree7e687689cf2bd0e7ca7ec6538b94d799256315fb
parent6b9c07e6ed724b82fe601d6f47c33b71eda7a444 (diff)
downloadpugixml-c51214f21ecd34dd6f0058f84d585fc2b06b4701.zip
pugixml-c51214f21ecd34dd6f0058f84d585fc2b06b4701.tar.gz
pugixml-c51214f21ecd34dd6f0058f84d585fc2b06b4701.tar.bz2
Visual Studio Natvis visualization (#227)
* Visual Studio Natvis visualization * Changed string format to remove separate natvis file for wide character mode * Display any node type with name and value if any of them are available
-rw-r--r--contrib/natvis/pugixml.natvis77
1 files changed, 77 insertions, 0 deletions
diff --git a/contrib/natvis/pugixml.natvis b/contrib/natvis/pugixml.natvis
new file mode 100644
index 0000000..b756763
--- /dev/null
+++ b/contrib/natvis/pugixml.natvis
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
+ <Type Name="pugi::xml_node">
+ <DisplayString Condition="_root">{_root}</DisplayString>
+ <DisplayString Condition="!_root">none</DisplayString>
+ <Expand>
+ <ExpandedItem Condition="_root">_root</ExpandedItem>
+ </Expand>
+ </Type>
+
+ <Type Name="pugi::xml_node_struct">
+ <DisplayString Condition="name &amp;&amp; value">{(pugi::xml_node_type)(header &amp; 0xf),en} name={name,na} value={value,na}</DisplayString>
+ <DisplayString Condition="name">{(pugi::xml_node_type)(header &amp; 0xf),en} name={name,na}</DisplayString>
+ <DisplayString Condition="value">{(pugi::xml_node_type)(header &amp; 0xf),en} value={value,na}</DisplayString>
+ <DisplayString>{(pugi::xml_node_type)(header &amp; 0xf),en}</DisplayString>
+ <Expand>
+ <Item Name="value" Condition="value">value,na</Item>
+ <Synthetic Name="attributes" Condition="first_attribute">
+ <Expand>
+ <CustomListItems>
+ <Variable Name="curr" InitialValue="first_attribute" />
+
+ <Loop Condition="curr">
+ <Item Name="{curr->name,na}">curr,view(child)na</Item>
+ <Exec>curr = curr->next_attribute</Exec>
+ </Loop>
+ </CustomListItems>
+ </Expand>
+ </Synthetic>
+ <LinkedListItems>
+ <HeadPointer>first_child</HeadPointer>
+ <NextPointer>next_sibling</NextPointer>
+ <ValueNode>this,na</ValueNode>
+ </LinkedListItems>
+ </Expand>
+ </Type>
+
+ <Type Name="pugi::xml_attribute">
+ <DisplayString Condition="_attr">{_attr}</DisplayString>
+ <DisplayString Condition="!_attr">none</DisplayString>
+ <Expand>
+ <ExpandedItem Condition="_attr">_attr</ExpandedItem>
+ </Expand>
+ </Type>
+
+ <Type Name="pugi::xml_attribute_struct">
+ <DisplayString ExcludeView="child">{name,na} = {value,na}</DisplayString>
+ <DisplayString>{value,na}</DisplayString>
+ <Expand>
+ <Item Name="name">name,na</Item>
+ <Item Name="value">value,na</Item>
+ </Expand>
+ </Type>
+
+ <Type Name="pugi::xpath_node">
+ <DisplayString Condition="_node._root &amp;&amp; _attribute._attr">{_node,na} "{_attribute._attr->name,na}"="{_attribute._attr->value,na}"</DisplayString>
+ <DisplayString Condition="_node._root">{_node,na}</DisplayString>
+ <DisplayString Condition="_attribute._attr">{_attribute}</DisplayString>
+ <DisplayString>empty</DisplayString>
+ <Expand HideRawView="1">
+ <ExpandedItem Condition="_node._root &amp;&amp; !_attribute._attr">_node</ExpandedItem>
+ <ExpandedItem Condition="!_node._root &amp;&amp; _attribute._attr">_attribute</ExpandedItem>
+ <Item Name="node" Condition="_node._root &amp;&amp; _attribute._attr">_node,na</Item>
+ <Item Name="attribute" Condition="_node._root &amp;&amp; _attribute._attr">_attribute,na</Item>
+ </Expand>
+ </Type>
+
+ <Type Name="pugi::xpath_node_set">
+ <Expand>
+ <Item Name="type">_type</Item>
+ <ArrayItems>
+ <Size>_end - _begin</Size>
+ <ValuePointer>_begin</ValuePointer>
+ </ArrayItems>
+ </Expand>
+ </Type>
+</AutoVisualizer> \ No newline at end of file