From ef942366dbd4a0e74e5d877bc02b99dff3703df4 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 12 Feb 2022 14:20:47 -0500 Subject: [PATCH] Improvements to extended mouseover during debugging --- IDE/src/ui/HoverWatch.bf | 19 ++++++++++++++++++- IDE/src/ui/SourceViewPanel.bf | 4 +++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/IDE/src/ui/HoverWatch.bf b/IDE/src/ui/HoverWatch.bf index fd647c8f..5caf197f 100644 --- a/IDE/src/ui/HoverWatch.bf +++ b/IDE/src/ui/HoverWatch.bf @@ -1545,7 +1545,24 @@ namespace IDE.ui { if ((mIsShown) && (evalString.StartsWith(':'))) { - mDisplayString.Set(evalString.Substring(1)); + var listItem = mListView.GetRoot().GetChildAtIndex(0) as HoverListViewItem; + bool isLiteral = listItem.Label == listItem.GetSubItem(1).Label; + + StringView useStr = evalString.Substring(1); + int crPos = useStr.IndexOf('\n'); + if (crPos != -1) + useStr.RemoveToEnd(crPos); + crPos = useStr.IndexOf('\r'); + if (crPos != -1) + useStr.RemoveFromStart(crPos + 1); + if (isLiteral) + mDisplayString.Set(useStr); + else + { + mDisplayString.Append('\n'); + mDisplayString.Append(useStr); + } + Rehup(); return true; } diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index 370f08e4..8cb6081f 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -5052,7 +5052,9 @@ namespace IDE.ui if ((mHoverResolveTask == null) && ((debugExpr == null) || (!debugExpr.StartsWith(':')))) { - if ((!handlingHoverResolveTask) && (ResolveCompiler != null) && (!ResolveCompiler.mThreadWorkerHi.mThreadRunning) && (gApp.mSettings.mEditorSettings.mHiliteCursorReferences) && (!gApp.mDeterministic)) + + if (((!gApp.mDebugger.mIsRunning) || (!mHoverWatch.mIsShown)) && // Don't show extended information for debug watches + (!handlingHoverResolveTask) && (ResolveCompiler != null) && (!ResolveCompiler.mThreadWorkerHi.mThreadRunning) && (gApp.mSettings.mEditorSettings.mHiliteCursorReferences) && (!gApp.mDeterministic)) { ResolveParams resolveParams = new .(); resolveParams.mOverrideCursorPos = (int32)textIdx;