tomlplusplus/toml++.natvis
Mark Gillard 53f29d9365 restructuring and minor refactoring
There's no new functionality here. It's purely tooling + CI stuff:
- moved `python` => `tools`
- moved documentation images to subfolder
- moved `vs/tests` to tests/vs projects
- moved `vs` solution etc to root
- added semicolons to macros
- added cpp.hint to help VS intellisense
- migrated documentation generation to external lib
2021-04-18 22:58:41 +03:00

142 lines
6.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="toml::v2::date">
<Intrinsic Name="y" Expression="(int)year" />
<Intrinsic Name="m" Expression="(int)month" />
<Intrinsic Name="d" Expression="(int)day" />
<DisplayString Condition="y() &lt; 10 &amp;&amp; m() &lt; 10 &amp;&amp; d() &lt; 10">0{y()}-0{m()}-0{d()}</DisplayString>
<DisplayString Condition="y() &lt; 10 &amp;&amp; m() &lt; 10">0{y()}-0{m()}-{d()}</DisplayString>
<DisplayString Condition="y() &lt; 10 &amp;&amp; d() &lt; 10">0{y()}-{m()}-0{d()}</DisplayString>
<DisplayString Condition="m() &lt; 10 &amp;&amp; d() &lt; 10">{y()}-0{m()}-0{d()}</DisplayString>
<DisplayString Condition="y() &lt; 10">0{y()}-{m()}-{d()}</DisplayString>
<DisplayString Condition="m() &lt; 10">{y()}-0{m()}-{d()}</DisplayString>
<DisplayString Condition="d() &lt; 10">{y()}-{m()}-0{d()}</DisplayString>
<DisplayString>{y()}-{m()}-{d()}</DisplayString>
<Expand>
<Item Name="year" ExcludeView="simple">year</Item>
<Item Name="month" ExcludeView="simple">month</Item>
<Item Name="day" ExcludeView="simple">day</Item>
</Expand>
</Type>
<Type Name="toml::v2::time">
<Intrinsic Name="h" Expression="(int)hour" />
<Intrinsic Name="m" Expression="(int)minute" />
<Intrinsic Name="s" Expression="(int)(second + (int)(nanosecond / 1000000000.0))" />
<DisplayString Condition="h() &lt; 10 &amp;&amp; m() &lt; 10 &amp;&amp; s() &lt; 10">0{h()}:0{m()}:0{s()}</DisplayString>
<DisplayString Condition="h() &lt; 10 &amp;&amp; m() &lt; 10">0{h()}:0{m()}:{s()}</DisplayString>
<DisplayString Condition="h() &lt; 10 &amp;&amp; s() &lt; 10">0{h()}:{m()}:0{s()}</DisplayString>
<DisplayString Condition="m() &lt; 10 &amp;&amp; s() &lt; 10">{h()}:0{m()}:0{s()}</DisplayString>
<DisplayString Condition="h() &lt; 10">0{h()}:{m()}:{s()}</DisplayString>
<DisplayString Condition="m() &lt; 10">{h()}:0{m()}:{s()}</DisplayString>
<DisplayString Condition="s() &lt; 10">{h()}:{m()}:0{s()}</DisplayString>
<DisplayString>{h()}:{m()}:{s()}</DisplayString>
<Expand>
<Item Name="hour" ExcludeView="simple">hour</Item>
<Item Name="minute" ExcludeView="simple">minute</Item>
<Item Name="second" ExcludeView="simple">second</Item>
<Item Name="nanosecond" ExcludeView="simple">nanosecond</Item>
</Expand>
</Type>
<Type Name="toml::v2::time_offset">
<Intrinsic Name="absmin" Expression="((int)minutes ^ ((int)minutes >> 31)) - ((int)minutes >> 31)" />
<Intrinsic Name="h" Expression="absmin() / 60u" />
<Intrinsic Name="m" Expression="absmin() % 60u" />
<DisplayString Condition="minutes == 0">Z</DisplayString>
<DisplayString Condition="minutes &lt; 0 &amp;&amp; h() &lt; 10 &amp;&amp; m() &lt; 10">-0{h()}:0{m()}</DisplayString>
<DisplayString Condition="minutes &lt; 0 &amp;&amp; h() &lt; 10">-0{h()}:{m()}</DisplayString>
<DisplayString Condition="minutes &lt; 0 &amp;&amp; m() &lt; 10">-{h()}:0{m()}</DisplayString>
<DisplayString Condition="minutes &lt; 0">-{h()}:{m()}</DisplayString>
<DisplayString Condition="h() &lt; 10 &amp;&amp; m() &lt; 10">0{h()}:0{m()}</DisplayString>
<DisplayString Condition="h() &lt; 10">0{h()}:{m()}</DisplayString>
<DisplayString Condition="m() &lt; 10">{h()}:0{m()}</DisplayString>
<DisplayString>{h()}:{m()}</DisplayString>
<Expand>
<Item Name="minutes" ExcludeView="simple">minutes</Item>
</Expand>
</Type>
<Type Name="toml::v2::stdopt::date_time">
<DisplayString Condition="offset._Has_value">{date}T{time}{offset}</DisplayString>
<DisplayString>{date}T{time}</DisplayString>
<Expand>
<Item Name="date" ExcludeView="simple">date</Item>
<Item Name="time" ExcludeView="simple">time</Item>
<Item Name="offset" ExcludeView="simple">offset</Item>
</Expand>
</Type>
<Type Name="toml::v2::value&lt;*&gt;" Priority="MediumLow">
<DisplayString>{{ {val_} }}</DisplayString>
<Expand>
<Item Name="val_" ExcludeView="simple">val_</Item>
</Expand>
</Type>
<Type Name="toml::v2::value&lt;std::basic_string&lt;char,*&gt;&gt;">
<DisplayString>{{ {val_,s8} }}</DisplayString>
<Expand>
<Item Name="val_" ExcludeView="simple">val_,s8</Item>
</Expand>
</Type>
<Type Name="toml::v2::source_position">
<DisplayString>line {line}, column {column}</DisplayString>
<Expand>
<Item Name="line" ExcludeView="simple">line</Item>
<Item Name="column" ExcludeView="simple">column</Item>
</Expand>
</Type>
<Type Name="toml::v2::impl::utf8_codepoint">
<DisplayString>{&amp;bytes,s8} ({position})</DisplayString>
</Type>
<Type Name="toml::v2::table">
<DisplayString>{map}</DisplayString>
<Expand>
<!-- Modified from std::map visualizer in VS 2019 stl.natvis -->
<TreeItems>
<Size>map._Mypair._Myval2._Myval2._Mysize</Size>
<HeadPointer>map._Mypair._Myval2._Myval2._Myhead-&gt;_Parent</HeadPointer>
<LeftPointer>_Left</LeftPointer>
<RightPointer>_Right</RightPointer>
<ValueNode Condition="_Isnil == 0" Name="[{_Myval.first,s8}]">*_Myval.second</ValueNode>
</TreeItems>
</Expand>
</Type>
<Type Name="toml::v2::array">
<DisplayString>{elements}</DisplayString>
<Expand>
<!-- Modified from std::vector visualizer in VS 2019 stl.natvis -->
<IndexListItems>
<Size>elements._Mypair._Myval2._Mylast - elements._Mypair._Myval2._Myfirst</Size>
<ValueNode>*elements._Mypair._Myval2._Myfirst[$i]</ValueNode>
</IndexListItems>
</Expand>
</Type>
<Type Name="toml::v2::noex::parse_error">
<DisplayString>line {source_.begin.line}: {description_,s8b}</DisplayString>
</Type>
<Type Name="toml::v2::ex::parse_error">
<DisplayString>line {source_.begin.line}: {_Data._What,s8b}</DisplayString>
</Type>
<Type Name="toml::v2::noex::parse_result">
<DisplayString Condition="!is_err">{*reinterpret_cast&lt;toml::v2::table*&gt;(&amp;storage)}</DisplayString>
<DisplayString Condition="is_err">{*reinterpret_cast&lt;toml::v2::noex::parse_error*&gt;(&amp;storage)}</DisplayString>
<Expand>
<Item Name="[table]" Condition="!is_err">*reinterpret_cast&lt;toml::v2::table*&gt;(&amp;storage)</Item>
<Item Name="[error]" Condition="is_err">*reinterpret_cast&lt;toml::v2::noex::parse_error*&gt;(&amp;storage)</Item>
<Item Name="is_err" ExcludeView="simple">is_err</Item>
</Expand>
</Type>
</AutoVisualizer>