diff options
author | Gabriel M <gabriel.majeri6@gmail.com> | 2017-01-15 03:10:22 +0200 |
---|---|---|
committer | Neil MacIntosh <neilmac@microsoft.com> | 2017-01-14 17:10:22 -0800 |
commit | 0ed032fb13e2549a77986901c186b3d235561a61 (patch) | |
tree | 33b7b58fe33ab53735ea0dc341d8794028e894e8 /GSL.natvis | |
parent | 897cc48f701222c9847b7f37bfd9f73e8ffddb53 (diff) | |
download | Microsoft-GSL-0ed032fb13e2549a77986901c186b3d235561a61.tar.gz |
Add Visual Studio Native Visualiser support file.
Diffstat (limited to 'GSL.natvis')
-rw-r--r-- | GSL.natvis | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/GSL.natvis b/GSL.natvis new file mode 100644 index 0000000..e40a8c9 --- /dev/null +++ b/GSL.natvis @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + This will make GitHub and some editors recognize this code as XML: + vim: syntax=xml +--> +<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> + <!-- These types are from the gsl_assert header. --> + <Type Name="gsl::fail_fast"> + <!-- na hides the address, otherwise it would appear as 0x.... "Message" --> + <DisplayString>{_Data._What,nasb}</DisplayString> + </Type> + + <!-- These types are from the gsl_util header. --> + <Type Name="gsl::final_act<*>"> + <DisplayString>{{ invoke = {invoke_}, action = {f_} }}</DisplayString> + <Expand> + <Item Name="[invoke]">invoke_</Item> + <Item Name="[callback]">f_</Item> + </Expand> + </Type> + + <!-- These types are from the span header. --> + <!-- This is for dynamic_extent spans. --> + <Type Name="gsl::span<*, -1>"> + <DisplayString>{{ extent = {storage_.size_} }}</DisplayString> + <Expand> + <ArrayItems> + <Size>storage_.size_</Size> + <ValuePointer>storage_.data_</ValuePointer> + </ArrayItems> + </Expand> + </Type> + + <!-- This works for constexpr size spans. --> + <Type Name="gsl::span<*, *>"> + <DisplayString>{{ extent = {extent} }}</DisplayString> + <Expand> + <ArrayItems> + <Size>extent</Size> + <ValuePointer>storage_.data_</ValuePointer> + </ArrayItems> + </Expand> + </Type> + + <!-- This is for dynamic_extent string_spans. --> + <Type Name="gsl::basic_string_span<*, -1>"> + <DisplayString>{span_.storage_.data_,[span_.storage_.size_]na}</DisplayString> + <Expand> + <Item Name="[size]">span_.storage_.size_</Item> + <ArrayItems> + <Size>span_.storage_.size_</Size> + <ValuePointer>span_.storage_.data_</ValuePointer> + </ArrayItems> + </Expand> + </Type> + + <!-- This works for constexpr size string_spans. --> + <Type Name="gsl::basic_string_span<*, *>"> + <DisplayString>{span_.storage_.data_,[span_.extent]na}</DisplayString> + <Expand> + <Item Name="[size]">span_.extent</Item> + <ArrayItems> + <Size>span_.extent</Size> + <ValuePointer>span_.storage_.data_</ValuePointer> + </ArrayItems> + </Expand> + </Type> + + <!-- This is for dynamic_extent zstring_spans. --> + <Type Name="gsl::basic_zstring_span<*, -1>"> + <DisplayString>{span_.storage_.data_,[span_.storage_.size_]na}</DisplayString> + <Expand> + <Item Name="[size]">span_.storage_.size_</Item> + <ArrayItems> + <Size>span_.storage_.size_</Size> + <ValuePointer>span_.storage_.data_</ValuePointer> + </ArrayItems> + </Expand> + </Type> + + <!-- This works for constexpr size string_spans. --> + <Type Name="gsl::basic_zstring_span<*, *>"> + <DisplayString>{span_.storage_.data_,[span_.extent]na}</DisplayString> + <Expand> + <Item Name="[size]">span_.extent</Item> + <ArrayItems> + <Size>span_.extent</Size> + <ValuePointer>span_.storage_.data_</ValuePointer> + </ArrayItems> + </Expand> + </Type> + + <!-- These types are from the gsl header. --> + <Type Name="gsl::not_null<*>"> + <!-- We can always dereference this since it's an invariant. --> + <DisplayString>value = {*ptr_}</DisplayString> + </Type> +</AutoVisualizer> |