Skip to content

Commit d6899ee

Browse files
Add Natvis visualizations for some Regex types.
1 parent 258bdf7 commit d6899ee

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

regex.natvis

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
3+
<Type Name="regex::re_builder::unicode::RegexBuilder">
4+
<DisplayString>{{ text={__0.pats[0]} }}</DisplayString>
5+
<Expand>
6+
<ExpandedItem>__0</ExpandedItem>
7+
</Expand>
8+
</Type>
9+
10+
<Type Name="regex::re_unicode::Captures">
11+
<Intrinsic Name="discriminant" Expression="locs.__0.buf.ptr.pointer[i].discriminant">
12+
<Parameter Name="i" Type="int" />
13+
</Intrinsic>
14+
<Intrinsic Name="location" Expression="locs.__0.buf.ptr.pointer[i].variant1.__0">
15+
<Parameter Name="i" Type="int" />
16+
</Intrinsic>
17+
<Intrinsic Name="match_length" Expression="location(end)-location(start)">
18+
<Parameter Name="start" Type="int" />
19+
<Parameter Name="end" Type="int" />
20+
</Intrinsic>
21+
<DisplayString>{{ named_groups={named_groups.ptr.pointer->data.base.table.table.items} }}</DisplayString>
22+
<Expand>
23+
<Item Name="[text]">text</Item>
24+
<Item Name="[named_groups]">named_groups</Item>
25+
<CustomListItems>
26+
<Variable Name="i" InitialValue="0" />
27+
<Variable Name="index" InitialValue="0" />
28+
<Variable Name="len" InitialValue="locs.__0.len" />
29+
<Loop>
30+
<Break Condition="i &gt;= len || discriminant(i) == 0" />
31+
<Item Name="{index}">(char*)text.data_ptr+location(i),[location(i+1)-location(i)]s8</Item>
32+
<Exec>i+=2</Exec>
33+
<Exec>index++</Exec>
34+
</Loop>
35+
</CustomListItems>
36+
</Expand>
37+
</Type>
38+
39+
<Type Name="regex::re_unicode::Match">
40+
<DisplayString>{text.data_ptr+start,[end-start]s8}</DisplayString>
41+
<Expand>
42+
<Item Name="[text]">text</Item>
43+
<Synthetic Name="[match_text]">
44+
<DisplayString>{(char*)text.data_ptr+start,[end-start]s8}</DisplayString>
45+
</Synthetic>
46+
<Item Name="[start]">start</Item>
47+
<Item Name="[end]">end</Item>
48+
</Expand>
49+
</Type>
50+
51+
<Type Name="regex::re_unicode::Regex">
52+
<DisplayString>{{ text={__0.ro.ptr.pointer->data.res[0]} }}</DisplayString>
53+
<Expand>
54+
<ExpandedItem>__0.ro</ExpandedItem>
55+
</Expand>
56+
</Type>
57+
</AutoVisualizer>

0 commit comments

Comments
 (0)