Browse Source

ImStrv: enhanced VS debugger .natvis support. build fixes. (5333, 5906)

features/string_view
璀境石 2 years ago
committed by ocornut
parent
commit
67ac1448d9
  1. 6
      imgui.cpp
  2. 3
      misc/debuggers/imgui.natvis

6
imgui.cpp

@ -16592,7 +16592,7 @@ void ImGui::ShowDebugLogWindow(bool* p_open)
// Display line, search for 0xXXXXXXXX identifiers and call DebugLocateItemOnHover() when hovered.
void ImGui::DebugTextUnformattedWithLocateItem(const char* line_begin, const char* line_end)
{
TextUnformatted(line_begin, line_end);
TextUnformatted(ImStrv(line_begin, line_end));
if (!IsItemHovered())
return;
ImGuiContext& g = *GImGui;
@ -16602,8 +16602,8 @@ void ImGui::DebugTextUnformattedWithLocateItem(const char* line_begin, const cha
ImGuiID id = 0;
if (p[0] != '0' || (p[1] != 'x' && p[1] != 'X') || sscanf(p + 2, "%X", &id) != 1 || ImCharIsXdigitA(p[10]))
continue;
ImVec2 p0 = CalcTextSize(line_begin, p);
ImVec2 p1 = CalcTextSize(p, p + 10);
ImVec2 p0 = CalcTextSize(ImStrv(line_begin, p));
ImVec2 p1 = CalcTextSize(ImStrv(p, p + 10));
g.LastItemData.Rect = ImRect(text_rect.Min + ImVec2(p0.x, 0.0f), text_rect.Min + ImVec2(p0.x + p1.x, p1.y));
if (IsMouseHoveringRect(g.LastItemData.Rect.Min, g.LastItemData.Rect.Max, true))
DebugLocateItemOnHover(id);

3
misc/debuggers/imgui.natvis

@ -53,7 +53,8 @@ More information at: https://docs.microsoft.com/en-us/visualstudio/debugger/crea
<!-- String view (non zero-terminated begin/end pair) -->
<Type Name="ImStrv">
<DisplayString>{Begin,[End-Begin]s} ({End-Begin,d})</DisplayString>
<DisplayString>{Begin,[End-Begin]s8} ({End-Begin,d})</DisplayString>
<StringView>Begin,[End-Begin]s8</StringView>
</Type>
<Type Name="ImGuiWindow">

Loading…
Cancel
Save