Skip to content

Commit 6a73bc7

Browse files
Fea, 添加Span、Version、UtcDataTime、LocalDataTime的可视化配置
1 parent c0818ca commit 6a73bc7

File tree

1 file changed

+238
-0
lines changed

1 file changed

+238
-0
lines changed

src/YY.Base.natvis

Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,242 @@
122122
</ArrayItems>
123123
</Expand>
124124
</Type>
125+
126+
<Type Name="YY::Base::Containers::Span&lt;*&gt;" Priority="MediumLow">
127+
<Intrinsic Name="GetSize" Expression="cData" />
128+
<Intrinsic Name="GetData" Expression="pData" />
129+
<DisplayString>{{ Size={GetSize()} }}</DisplayString>
130+
<Expand>
131+
<Item Name="[Size]" ExcludeView="simple">GetSize()</Item>
132+
<Item Name="[Data]" ExcludeView="simple">GetData()</Item>
133+
<ArrayItems>
134+
<Size>GetSize()</Size>
135+
<ValuePointer>GetData()</ValuePointer>
136+
</ArrayItems>
137+
</Expand>
138+
</Type>
139+
140+
<Type Name="YY::Base::Utils::Version" Priority="MediumLow">
141+
<DisplayString>{uMajor,d}.{uMinor,d}.{uBuild,d}.{uRevision,d}</DisplayString>
142+
</Type>
143+
144+
<Type Name="YY::Base::Time::TimeSpan" Priority="MediumLow">
145+
<Intrinsic Name="MillisecondsPerMicrosecond" Expression="YY::Base::Time::MillisecondsPerMicrosecond" />
146+
<Intrinsic Name="SecondsPerMicrosecond" Expression="MillisecondsPerMicrosecond() * YY::Base::Time::SecondsPerMillisecond" />
147+
<Intrinsic Name="MinutesPerMicrosecond" Expression="SecondsPerMicrosecond() * YY::Base::Time::MinutesPerSecond" />
148+
<Intrinsic Name="HoursPerMicrosecond" Expression="MinutesPerMicrosecond() * YY::Base::Time::HoursPerMinute" />
149+
<Intrinsic Name="DaysPerMicrosecond" Expression="HoursPerMicrosecond() * YY::Base::Time::DaysPerHour" />
150+
151+
<Intrinsic Name="GetMicroseconds" Expression="iElapsedMicroseconds >= 0 ? iElapsedMicroseconds : (iElapsedMicroseconds * -1ll)" />
152+
<Intrinsic Name="GetMilliseconds" Expression="GetMicroseconds() / MillisecondsPerMicrosecond()" />
153+
<Intrinsic Name="GetSeconds" Expression="GetMicroseconds() / SecondsPerMicrosecond()" />
154+
<Intrinsic Name="GetMinutes" Expression="GetMicroseconds() / MinutesPerMicrosecond()" />
155+
<Intrinsic Name="GetHours" Expression="GetMicroseconds() / HoursPerMicrosecond()" />
156+
<Intrinsic Name="GetDays" Expression="GetMicroseconds() / DaysPerMicrosecond()" />
157+
158+
<DisplayString Condition="GetMilliseconds() !=0">{ iElapsedMicroseconds / HoursPerMicrosecond(),d}:{GetMinutes() % 60,d}:{GetSeconds() % 60,d}.{GetMilliseconds() % 1000,d}</DisplayString>
159+
<DisplayString>{iElapsedMicroseconds,d}us</DisplayString>
160+
<Expand>
161+
<Item Name="[Days]" ExcludeView="simple" Condition="GetDays() != 0 &amp;&amp; (iElapsedMicroseconds % DaysPerMicrosecond()) == 0">iElapsedMicroseconds / DaysPerMicrosecond()</Item>
162+
<Item Name="[Days]" ExcludeView="simple" Condition="GetDays() != 0 &amp;&amp; (iElapsedMicroseconds % DaysPerMicrosecond()) != 0">iElapsedMicroseconds / DaysPerMicrosecond() + double(iElapsedMicroseconds % DaysPerMicrosecond()) / DaysPerMicrosecond()</Item>
163+
164+
<Item Name="[Hours]" ExcludeView="simple" Condition="GetHours() != 0 &amp;&amp; (iElapsedMicroseconds % HoursPerMicrosecond()) == 0">iElapsedMicroseconds / HoursPerMicrosecond()</Item>
165+
<Item Name="[Hours]" ExcludeView="simple" Condition="GetHours() != 0 &amp;&amp; (iElapsedMicroseconds % HoursPerMicrosecond()) != 0">iElapsedMicroseconds / HoursPerMicrosecond() + double(iElapsedMicroseconds % HoursPerMicrosecond()) / HoursPerMicrosecond()</Item>
166+
167+
<Item Name="[Minutes]" ExcludeView="simple" Condition="GetMinutes() != 0 &amp;&amp; (iElapsedMicroseconds % MinutesPerMicrosecond()) == 0">iElapsedMicroseconds / MinutesPerMicrosecond()</Item>
168+
<Item Name="[Minutes]" ExcludeView="simple" Condition="GetMinutes() != 0 &amp;&amp; (iElapsedMicroseconds % MinutesPerMicrosecond()) != 0">iElapsedMicroseconds / MinutesPerMicrosecond() + double(iElapsedMicroseconds % MinutesPerMicrosecond()) / MinutesPerMicrosecond()</Item>
169+
170+
<Item Name="[Seconds]" ExcludeView="simple" Condition="GetSeconds() != 0 &amp;&amp; (iElapsedMicroseconds % SecondsPerMicrosecond()) == 0">iElapsedMicroseconds / SecondsPerMicrosecond()</Item>
171+
<Item Name="[Seconds]" ExcludeView="simple" Condition="GetSeconds() != 0 &amp;&amp; (iElapsedMicroseconds % SecondsPerMicrosecond()) != 0">iElapsedMicroseconds / SecondsPerMicrosecond() + double(iElapsedMicroseconds % SecondsPerMicrosecond()) / SecondsPerMicrosecond()</Item>
172+
173+
<Item Name="[Milliseconds]" ExcludeView="simple" Condition="GetMilliseconds() != 0 &amp;&amp; (iElapsedMicroseconds % MillisecondsPerMicrosecond()) == 0">iElapsedMicroseconds / MillisecondsPerMicrosecond()</Item>
174+
<Item Name="[Milliseconds]" ExcludeView="simple" Condition="GetMilliseconds() != 0 &amp;&amp; (iElapsedMicroseconds % MillisecondsPerMicrosecond()) != 0">iElapsedMicroseconds / MillisecondsPerMicrosecond() + double(iElapsedMicroseconds % MillisecondsPerMicrosecond()) / MillisecondsPerMicrosecond()</Item>
175+
176+
<Item Name="[Microseconds]" ExcludeView="simple">iElapsedMicroseconds</Item>
177+
</Expand>
178+
</Type>
179+
180+
<Type Name="YY::Base::Time::UtcDataTime">
181+
<Intrinsic Name="MillisecondsPerMicrosecond" Expression="YY::Base::Time::MillisecondsPerMicrosecond * 10" />
182+
<Intrinsic Name="SecondsPerMicrosecond" Expression="MillisecondsPerMicrosecond() * YY::Base::Time::SecondsPerMillisecond" />
183+
<Intrinsic Name="MinutesPerMicrosecond" Expression="SecondsPerMicrosecond() * YY::Base::Time::MinutesPerSecond" />
184+
<Intrinsic Name="HoursPerMicrosecond" Expression="MinutesPerMicrosecond() * YY::Base::Time::HoursPerMinute" />
185+
<Intrinsic Name="DaysPerMicrosecond" Expression="HoursPerMicrosecond() * YY::Base::Time::DaysPerHour" />
186+
187+
<Intrinsic Name="GetNanosecond" Expression="uTimeInternalValue % 10 * 100" />
188+
<Intrinsic Name="GetMicrosecond" Expression="uTimeInternalValue / 10 % 1000" />
189+
<Intrinsic Name="GetMillisecond" Expression="uTimeInternalValue / MillisecondsPerMicrosecond() % 1000" />
190+
<Intrinsic Name="GetSecond" Expression="uTimeInternalValue / SecondsPerMicrosecond() % 60" />
191+
<Intrinsic Name="GetMinute" Expression="uTimeInternalValue / MinutesPerMicrosecond() % 60" />
192+
<Intrinsic Name="GetHour" Expression="uTimeInternalValue / HoursPerMicrosecond() % 24" />
193+
<Intrinsic Name="GetDays" Expression="uTimeInternalValue / DaysPerMicrosecond()" />
194+
<Intrinsic Name="GetDayOfWeek" Expression="(GetDays() + 0) % 7" />
195+
196+
<Intrinsic Name="CalculateDaysPassedThisYearPer4Years" Expression="Days &lt; 365 * 4 ? Days % 365 : 365">
197+
<Parameter Name="Days" Type="int"/>
198+
</Intrinsic>
199+
200+
<Intrinsic Name="CalculateDaysPassedThisYearPer100Years" Expression="Days &lt; 1461 * 25 ? CalculateDaysPassedThisYearPer4Years(Days%1461):CalculateDaysPassedThisYearPer4Years(1461)">
201+
<Parameter Name="Days" Type="int"/>
202+
</Intrinsic>
203+
204+
<Intrinsic Name="CalculateDaysPassedThisYearPer400Years" Expression="Days &lt; 36524 * 4 ? CalculateDaysPassedThisYearPer100Years(Days % 36524) : CalculateDaysPassedThisYearPer100Years(36524)">
205+
<Parameter Name="Days" Type="int"/>
206+
</Intrinsic>
207+
208+
<Intrinsic Name="GetDaysPassedThisYear" Expression="CalculateDaysPassedThisYearPer400Years(GetDays() % 146097)" />
209+
210+
<Intrinsic Name="CalculateMonthByDays" Expression="Days &lt;31 ? 1 : (Days &lt;59 ? 2:(Days &lt;90 ? 3:(Days &lt;120 ? 4:(Days &lt;151 ? 5:(Days &lt;181 ? 6:(Days &lt;212 ? 7:(Days &lt;243 ? 8:(Days &lt;273 ? 9:(Days &lt;304 ? 10:(Days &lt;334 ? 11:12))))))))))">
211+
<Parameter Name="Days" Type="int"/>
212+
</Intrinsic>
213+
214+
<Intrinsic Name="CalculateMonthForLeapYearByDays" Expression="Days &lt;31 ? 1 : (Days &lt;60 ? 2:(Days &lt;91 ? 3:(Days &lt;121 ? 4:(Days &lt;152 ? 5:(Days &lt;182 ? 6:(Days &lt;213 ? 7:(Days &lt;244 ? 8:(Days &lt;274 ? 9:(Days &lt;305 ? 10:(Days &lt;335 ? 11:12))))))))))">
215+
<Parameter Name="Days" Type="int"/>
216+
</Intrinsic>
217+
218+
<Intrinsic Name="IsLeapYear" Expression="(Year%100 == 0) ? (Year % 400 ==0) : (Year % 4 == 0)">
219+
<Parameter Name="Year" Type="int"/>
220+
</Intrinsic>
221+
222+
<Intrinsic Name="GetYear" Expression="1601 + (GetDays() - GetDaysPassedThisYear()) / 365" />
223+
224+
<Intrinsic Name="GetMonth" Expression="IsLeapYear(GetYear()) ? CalculateMonthForLeapYearByDays(GetDaysPassedThisYear()) : CalculateMonthByDays(GetDaysPassedThisYear())" />
225+
226+
<Intrinsic Name="CalculateDayByDays" Expression="Days &lt;31 ? (Days + 1) : (Days &lt;59 ? (Days - 31 + 1):(Days &lt;90 ? (Days - 59 + 1):(Days &lt;120 ? (Days - 90 + 1):(Days &lt;151 ? (Days - 120 + 1):(Days &lt;181 ? (Days - 151 + 1):(Days &lt;212 ? (Days - 181 + 1):(Days &lt;243 ? (Days - 212 + 1):(Days &lt;273 ? (Days - 243 + 1):(Days &lt;304 ? (Days - 273 + 1):(Days &lt;334 ? (Days - 304 + 1):(Days - 334 + 1)))))))))))">
227+
<Parameter Name="Days" Type="int"/>
228+
</Intrinsic>
229+
230+
<Intrinsic Name="CalculateDayForLeapYearByDays" Expression="Days &lt;31 ? (Days + 1) : (Days &lt;60 ? (Days - 31 + 1):(Days &lt;91 ? (Days - 60 + 1):(Days &lt;121 ? (Days - 91 + 1):(Days &lt;152 ? (Days - 121 + 1):(Days &lt;182 ? (Days - 152 + 1):(Days &lt;212 ? (Days - 182 + 1):(Days &lt;244 ? (Days - 213 + 1):(Days &lt;274 ? (Days - 244 + 1):(Days &lt;305 ? (Days - 274 + 1):(Days &lt;335 ? (Days - 305 + 1):(Days - 335 + 1)))))))))))">
231+
<Parameter Name="Days" Type="int"/>
232+
</Intrinsic>
233+
234+
<Intrinsic Name="GetDay" Expression="IsLeapYear(GetYear()) ? CalculateDayForLeapYearByDays(GetDaysPassedThisYear()) : CalculateDayByDays(GetDaysPassedThisYear())" />
235+
236+
<DisplayString>{GetYear(),d}-{GetMonth(),d}-{GetDay(),d}T{GetHour(),d}:{GetMinute(),d}:{GetSecond(),d}.{GetMillisecond(),d}Z</DisplayString>
237+
238+
<Expand>
239+
<Item Name="[Year]" ExcludeView="simple">GetYear()</Item>
240+
<Item Name="[Month]" ExcludeView="simple">GetMonth()</Item>
241+
<Item Name="[Day]" ExcludeView="simple">GetDay()</Item>
242+
<Item Name="[Hour]" ExcludeView="simple">GetHour()</Item>
243+
<Item Name="[Minute]" ExcludeView="simple">GetMinute()</Item>
244+
<Item Name="[Second]" ExcludeView="simple">GetSecond()</Item>
245+
<Item Name="[Millisecond]" ExcludeView="simple">GetMillisecond()</Item>
246+
<Item Name="[Microsecond]" ExcludeView="simple">GetMicrosecond()</Item>
247+
<Item Name="[Nanosecond]" ExcludeView="simple">GetNanosecond()</Item>
248+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 0">
249+
<DisplayString>星期一</DisplayString>
250+
</Synthetic>
251+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 1">
252+
<DisplayString>星期二</DisplayString>
253+
</Synthetic>
254+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 2">
255+
<DisplayString>星期三</DisplayString>
256+
</Synthetic>
257+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 3">
258+
<DisplayString>星期四</DisplayString>
259+
</Synthetic>
260+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 4">
261+
<DisplayString>星期五</DisplayString>
262+
</Synthetic>
263+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 5">
264+
<DisplayString>星期六</DisplayString>
265+
</Synthetic>
266+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 6">
267+
<DisplayString>星期日</DisplayString>
268+
</Synthetic>
269+
</Expand>
270+
</Type>
271+
272+
<Type Name="YY::Base::Time::LocalDataTime">
273+
<Intrinsic Name="MillisecondsPerMicrosecond" Expression="YY::Base::Time::MillisecondsPerMicrosecond * 10" />
274+
<Intrinsic Name="SecondsPerMicrosecond" Expression="MillisecondsPerMicrosecond() * YY::Base::Time::SecondsPerMillisecond" />
275+
<Intrinsic Name="MinutesPerMicrosecond" Expression="SecondsPerMicrosecond() * YY::Base::Time::MinutesPerSecond" />
276+
<Intrinsic Name="HoursPerMicrosecond" Expression="MinutesPerMicrosecond() * YY::Base::Time::HoursPerMinute" />
277+
<Intrinsic Name="DaysPerMicrosecond" Expression="HoursPerMicrosecond() * YY::Base::Time::DaysPerHour" />
278+
279+
<Intrinsic Name="GetNanosecond" Expression="uTimeInternalValue % 10 * 100" />
280+
<Intrinsic Name="GetMicrosecond" Expression="uTimeInternalValue / 10 % 1000" />
281+
<Intrinsic Name="GetMillisecond" Expression="uTimeInternalValue / MillisecondsPerMicrosecond() % 1000" />
282+
<Intrinsic Name="GetSecond" Expression="uTimeInternalValue / SecondsPerMicrosecond() % 60" />
283+
<Intrinsic Name="GetMinute" Expression="uTimeInternalValue / MinutesPerMicrosecond() % 60" />
284+
<Intrinsic Name="GetHour" Expression="uTimeInternalValue / HoursPerMicrosecond() % 24" />
285+
<Intrinsic Name="GetDays" Expression="uTimeInternalValue / DaysPerMicrosecond()" />
286+
<Intrinsic Name="GetDayOfWeek" Expression="(GetDays() + 0) % 7" />
287+
288+
<Intrinsic Name="CalculateDaysPassedThisYearPer4Years" Expression="Days &lt; 365 * 4 ? Days % 365 : 365">
289+
<Parameter Name="Days" Type="int"/>
290+
</Intrinsic>
291+
292+
<Intrinsic Name="CalculateDaysPassedThisYearPer100Years" Expression="Days &lt; 1461 * 25 ? CalculateDaysPassedThisYearPer4Years(Days%1461):CalculateDaysPassedThisYearPer4Years(1461)">
293+
<Parameter Name="Days" Type="int"/>
294+
</Intrinsic>
295+
296+
<Intrinsic Name="CalculateDaysPassedThisYearPer400Years" Expression="Days &lt; 36524 * 4 ? CalculateDaysPassedThisYearPer100Years(Days % 36524) : CalculateDaysPassedThisYearPer100Years(36524)">
297+
<Parameter Name="Days" Type="int"/>
298+
</Intrinsic>
299+
300+
<Intrinsic Name="GetDaysPassedThisYear" Expression="CalculateDaysPassedThisYearPer400Years(GetDays() % 146097)" />
301+
302+
<Intrinsic Name="CalculateMonthByDays" Expression="Days &lt;31 ? 1 : (Days &lt;59 ? 2:(Days &lt;90 ? 3:(Days &lt;120 ? 4:(Days &lt;151 ? 5:(Days &lt;181 ? 6:(Days &lt;212 ? 7:(Days &lt;243 ? 8:(Days &lt;273 ? 9:(Days &lt;304 ? 10:(Days &lt;334 ? 11:12))))))))))">
303+
<Parameter Name="Days" Type="int"/>
304+
</Intrinsic>
305+
306+
<Intrinsic Name="CalculateMonthForLeapYearByDays" Expression="Days &lt;31 ? 1 : (Days &lt;60 ? 2:(Days &lt;91 ? 3:(Days &lt;121 ? 4:(Days &lt;152 ? 5:(Days &lt;182 ? 6:(Days &lt;213 ? 7:(Days &lt;244 ? 8:(Days &lt;274 ? 9:(Days &lt;305 ? 10:(Days &lt;335 ? 11:12))))))))))">
307+
<Parameter Name="Days" Type="int"/>
308+
</Intrinsic>
309+
310+
<Intrinsic Name="IsLeapYear" Expression="(Year%100 == 0) ? (Year % 400 ==0) : (Year % 4 == 0)">
311+
<Parameter Name="Year" Type="int"/>
312+
</Intrinsic>
313+
314+
<Intrinsic Name="GetYear" Expression="1601 + (GetDays() - GetDaysPassedThisYear()) / 365" />
315+
316+
<Intrinsic Name="GetMonth" Expression="IsLeapYear(GetYear()) ? CalculateMonthForLeapYearByDays(GetDaysPassedThisYear()) : CalculateMonthByDays(GetDaysPassedThisYear())" />
317+
318+
<Intrinsic Name="CalculateDayByDays" Expression="Days &lt;31 ? (Days + 1) : (Days &lt;59 ? (Days - 31 + 1):(Days &lt;90 ? (Days - 59 + 1):(Days &lt;120 ? (Days - 90 + 1):(Days &lt;151 ? (Days - 120 + 1):(Days &lt;181 ? (Days - 151 + 1):(Days &lt;212 ? (Days - 181 + 1):(Days &lt;243 ? (Days - 212 + 1):(Days &lt;273 ? (Days - 243 + 1):(Days &lt;304 ? (Days - 273 + 1):(Days &lt;334 ? (Days - 304 + 1):(Days - 334 + 1)))))))))))">
319+
<Parameter Name="Days" Type="int"/>
320+
</Intrinsic>
321+
322+
<Intrinsic Name="CalculateDayForLeapYearByDays" Expression="Days &lt;31 ? (Days + 1) : (Days &lt;60 ? (Days - 31 + 1):(Days &lt;91 ? (Days - 60 + 1):(Days &lt;121 ? (Days - 91 + 1):(Days &lt;152 ? (Days - 121 + 1):(Days &lt;182 ? (Days - 152 + 1):(Days &lt;212 ? (Days - 182 + 1):(Days &lt;244 ? (Days - 213 + 1):(Days &lt;274 ? (Days - 244 + 1):(Days &lt;305 ? (Days - 274 + 1):(Days &lt;335 ? (Days - 305 + 1):(Days - 335 + 1)))))))))))">
323+
<Parameter Name="Days" Type="int"/>
324+
</Intrinsic>
325+
326+
<Intrinsic Name="GetDay" Expression="IsLeapYear(GetYear()) ? CalculateDayForLeapYearByDays(GetDaysPassedThisYear()) : CalculateDayByDays(GetDaysPassedThisYear())" />
327+
328+
<DisplayString>{GetYear(),d}-{GetMonth(),d}-{GetDay(),d}T{GetHour(),d}:{GetMinute(),d}:{GetSecond(),d}.{GetMillisecond(),d}</DisplayString>
329+
330+
<Expand>
331+
<Item Name="[Year]" ExcludeView="simple">GetYear()</Item>
332+
<Item Name="[Month]" ExcludeView="simple">GetMonth()</Item>
333+
<Item Name="[Day]" ExcludeView="simple">GetDay()</Item>
334+
<Item Name="[Hour]" ExcludeView="simple">GetHour()</Item>
335+
<Item Name="[Minute]" ExcludeView="simple">GetMinute()</Item>
336+
<Item Name="[Second]" ExcludeView="simple">GetSecond()</Item>
337+
<Item Name="[Millisecond]" ExcludeView="simple">GetMillisecond()</Item>
338+
<Item Name="[Microsecond]" ExcludeView="simple">GetMicrosecond()</Item>
339+
<Item Name="[Nanosecond]" ExcludeView="simple">GetNanosecond()</Item>
340+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 0">
341+
<DisplayString>星期一</DisplayString>
342+
</Synthetic>
343+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 1">
344+
<DisplayString>星期二</DisplayString>
345+
</Synthetic>
346+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 2">
347+
<DisplayString>星期三</DisplayString>
348+
</Synthetic>
349+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 3">
350+
<DisplayString>星期四</DisplayString>
351+
</Synthetic>
352+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 4">
353+
<DisplayString>星期五</DisplayString>
354+
</Synthetic>
355+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 5">
356+
<DisplayString>星期六</DisplayString>
357+
</Synthetic>
358+
<Synthetic Name="[DayOfWeek]" Condition="GetDayOfWeek() == 6">
359+
<DisplayString>星期日</DisplayString>
360+
</Synthetic>
361+
</Expand>
362+
</Type>
125363
</AutoVisualizer>

0 commit comments

Comments
 (0)