mirror of
https://github.com/microsoft/terminal.git
synced 2025-12-10 00:48:23 -06:00
Fixes the broken types for `TextAttribute`, `til::size`, `til::point` and `til::rect` and adds a new type for `TextBuffer` which without this would now be much harder to inspect due to introduction of the manual virtual memory management in 612b00c.
157 lines
6.6 KiB
XML
157 lines
6.6 KiB
XML
|
||
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
||
<!-- See https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2017#BKMK_Syntax_reference for documentation -->
|
||
<Type Name="TextColor">
|
||
<DisplayString Condition="_meta==ColorType::IsIndex256">{{Index256:{_index}}}</DisplayString>
|
||
<DisplayString Condition="_meta==ColorType::IsIndex16">{{Index16:{_index}}}</DisplayString>
|
||
<DisplayString Condition="_meta==ColorType::IsDefault">{{Default}}</DisplayString>
|
||
<DisplayString Condition="_meta==ColorType::IsRgb">{{RGB:{_red},{_green},{_blue}}}</DisplayString>
|
||
<Expand></Expand>
|
||
</Type>
|
||
|
||
<Type Name="TextAttribute">
|
||
<DisplayString Condition="_hyperlinkId == 0">{{FG: {_foreground}, BG: {_background}, Attr: {_attrs}}</DisplayString>
|
||
<DisplayString Condition="_hyperlinkId != 0">{{FG: {_foreground}, BG: {_background}, Attr: {_attrs}, Hyperlink: {_hyperlinkId}}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="Microsoft::Console::Types::Viewport">
|
||
<!-- Can't call functions in here -->
|
||
<DisplayString>{{LT({_sr.left}, {_sr.top}) RB({_sr.right}, {_sr.bottom}) [{_sr.right-_sr.left+1} x { _sr.bottom-_sr.top+1}]}}</DisplayString>
|
||
<Expand>
|
||
<ExpandedItem>_sr</ExpandedItem>
|
||
</Expand>
|
||
</Type>
|
||
|
||
<Type Name="_COORD">
|
||
<DisplayString>{{{X},{Y}}}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="_SMALL_RECT">
|
||
<DisplayString>{{LT({Left}, {Top}) RB({Right}, {Bottom}) In:[{Right-Left+1} x {Bottom-Top+1}] Ex:[{Right-Left} x {Bottom-Top}]}}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="ROW">
|
||
<DisplayString>{_chars.data(),[_charOffsets[_columnCount]]}</DisplayString>
|
||
<StringView>_chars.data(),[_charOffsets[_columnCount]]</StringView>
|
||
<Expand>
|
||
<Item Name="_chars">_chars.data(),[_charOffsets[_columnCount]]</Item>
|
||
<Item Name="_charOffsets">_charOffsets.data(),[_charOffsets.size()]</Item>
|
||
</Expand>
|
||
</Type>
|
||
|
||
<Type Name="std::unique_ptr<TextBuffer,std::default_delete<TextBuffer>>">
|
||
<Expand>
|
||
<ExpandedItem>_Mypair._Myval2</ExpandedItem>
|
||
</Expand>
|
||
</Type>
|
||
|
||
<Type Name="KeyEvent">
|
||
<DisplayString Condition="_keyDown">{{↓ wch:{_charData} mod:{_activeModifierKeys} repeat:{_repeatCount} vk:{_virtualKeyCode} vsc:{_virtualScanCode}}</DisplayString>
|
||
<DisplayString Condition="!_keyDown">{{↑ wch:{_charData} mod:{_activeModifierKeys} repeat:{_repeatCount} vk:{_virtualKeyCode} vsc:{_virtualScanCode}}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="til::size">
|
||
<DisplayString>{{W: {width} x H: {height} -> A: {width * height}}}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="til::point">
|
||
<DisplayString>{{X: {x}, Y: {y}}}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="til::rect">
|
||
<DisplayString>{{L: {left}, T: {top}, R: {right} B: {bottom} [W: {right - left} x H: {bottom - top} -> A: {(right - left) * (bottom - top)}]}}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="til::color">
|
||
<DisplayString>{{RGB: {(int)r,d}, {(int)g,d}, {(int)b,d}; α: {(int)a,d}}}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="til::rle<*>">
|
||
<DisplayString>{{Size: {_total_length,d}}}</DisplayString>
|
||
<Expand>
|
||
<Item Name="[size]">_total_length</Item>
|
||
<ExpandedItem>_runs</ExpandedItem>
|
||
</Expand>
|
||
</Type>
|
||
|
||
<Type Name="til::details::rle_const_iterator<*>">
|
||
<DisplayString>{{run of {_it->first,d} for {_it->second,d} at {_usage,d}}}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="til::small_vector<*>">
|
||
<DisplayString>{{ size={_size} }}</DisplayString>
|
||
<Expand>
|
||
<Item Name="[capacity]" ExcludeView="simple">_capacity</Item>
|
||
<Item Name="[size]" ExcludeView="simple">_size</Item>
|
||
<ArrayItems>
|
||
<Size>_size</Size>
|
||
<ValuePointer>_data</ValuePointer>
|
||
</ArrayItems>
|
||
</Expand>
|
||
</Type>
|
||
|
||
<Type Name="til::small_vector_iterator<*>">
|
||
<AlternativeType Name="til::small_vector_const_iterator<*>" />
|
||
<SmartPointer Usage="Indexable">_ptr,na</SmartPointer>
|
||
<Expand>
|
||
<Item Name="[ptr]">_ptr</Item>
|
||
</Expand>
|
||
</Type>
|
||
|
||
<Type Name="til::generational<*>">
|
||
<AlternativeType Name="$T1" />
|
||
<SmartPointer Usage="Minimal">&_value</SmartPointer>
|
||
<DisplayString>{{ generation={_generation._value} }}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="til::linear_flat_set<*,*>">
|
||
<DisplayString>{{ size={_load / $T2} }}</DisplayString>
|
||
<Expand>
|
||
<ArrayItems>
|
||
<Size>_capacity</Size>
|
||
<ValuePointer>_map._Mypair._Myval2</ValuePointer>
|
||
</ArrayItems>
|
||
</Expand>
|
||
</Type>
|
||
|
||
<Type Name="TextBuffer">
|
||
<DisplayString>{{ width={_width}, height={_height} }}</DisplayString>
|
||
<Expand>
|
||
<Item Name="_firstRow">_firstRow</Item>
|
||
<Item Name="scratchpad">*(ROW*)_buffer.__ptr_.__value_</Item>
|
||
<IndexListItems>
|
||
<Size>(_commitWatermark - _buffer.__ptr_.__value_ - 1) / _bufferRowStride</Size>
|
||
<ValueNode>*(ROW*)(_buffer.__ptr_.__value_ + _bufferRowStride * ($i + 1))</ValueNode>
|
||
</IndexListItems>
|
||
</Expand>
|
||
</Type>
|
||
|
||
<Type Name="Microsoft::Console::Render::Atlas::Buffer<*>">
|
||
<DisplayString>{{ size={_size} }}</DisplayString>
|
||
<Expand>
|
||
<Item Name="[size]" ExcludeView="simple">_size</Item>
|
||
<ArrayItems>
|
||
<Size>_size</Size>
|
||
<ValuePointer>_data</ValuePointer>
|
||
</ArrayItems>
|
||
</Expand>
|
||
</Type>
|
||
|
||
<Type Name="Microsoft::Console::Render::Atlas::ShapedRow">
|
||
<DisplayString>{{ dirtyTop={dirtyTop}, dirtyBottom={dirtyBottom} }}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="Microsoft::Console::Render::Atlas::BackendD3D::AtlasGlyphEntry">
|
||
<DisplayString Condition="!_occupied">(empty)</DisplayString>
|
||
<DisplayString Condition="_occupied">{glyphIndex}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="Microsoft::Console::Render::Atlas::BackendD3D::AtlasFontFaceEntry">
|
||
<DisplayString Condition="!_occupied">(empty)</DisplayString>
|
||
<DisplayString Condition="_occupied">{(void*)fontFace.m_ptr}, {lineRendition}</DisplayString>
|
||
<Expand>
|
||
<ExpandedItem>glyphs</ExpandedItem>
|
||
</Expand>
|
||
</Type>
|
||
</AutoVisualizer>
|