mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 20:42:21 +02:00
Show invocation param info in mouseover
This commit is contained in:
parent
b784101e93
commit
cd3318cc3e
3 changed files with 68 additions and 9 deletions
|
@ -261,7 +261,7 @@ namespace IDE.ui
|
||||||
float mOrigScreenY;
|
float mOrigScreenY;
|
||||||
float mTaskbarXOffset;
|
float mTaskbarXOffset;
|
||||||
float mTaskbarYOffset;
|
float mTaskbarYOffset;
|
||||||
bool mIsShown;
|
public bool mIsShown;
|
||||||
bool mCreatedWindow;
|
bool mCreatedWindow;
|
||||||
bool mClosed;
|
bool mClosed;
|
||||||
bool mOwnsListView = true;
|
bool mOwnsListView = true;
|
||||||
|
@ -752,7 +752,7 @@ namespace IDE.ui
|
||||||
showString.RemoveToEnd(crPos);
|
showString.RemoveToEnd(crPos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
showString.Replace('\r', '\n');
|
||||||
useListViewItem.Label = showString;
|
useListViewItem.Label = showString;
|
||||||
isStringLiteral = true;
|
isStringLiteral = true;
|
||||||
}
|
}
|
||||||
|
@ -1543,6 +1543,13 @@ namespace IDE.ui
|
||||||
|
|
||||||
public bool Show(TextPanel textPanel, float x, float y, String displayString, String evalString)
|
public bool Show(TextPanel textPanel, float x, float y, String displayString, String evalString)
|
||||||
{
|
{
|
||||||
|
if ((mIsShown) && (evalString.StartsWith(':')))
|
||||||
|
{
|
||||||
|
mDisplayString.Set(evalString.Substring(1));
|
||||||
|
Rehup();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (mIsShown)
|
if (mIsShown)
|
||||||
Clear();
|
Clear();
|
||||||
|
|
||||||
|
|
|
@ -4763,8 +4763,6 @@ namespace IDE.ui
|
||||||
|
|
||||||
public void UpdateMouseover(bool mouseoverFired, bool mouseInbounds, int line, int lineChar, bool isManual = false)
|
public void UpdateMouseover(bool mouseoverFired, bool mouseInbounds, int line, int lineChar, bool isManual = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
#unwarn
|
#unwarn
|
||||||
CompilerBase compiler = ResolveCompiler;
|
CompilerBase compiler = ResolveCompiler;
|
||||||
|
|
||||||
|
@ -4989,7 +4987,9 @@ namespace IDE.ui
|
||||||
if (mHoverResolveTask != null)
|
if (mHoverResolveTask != null)
|
||||||
{
|
{
|
||||||
if (mHoverResolveTask.mCursorPos != textIdx)
|
if (mHoverResolveTask.mCursorPos != textIdx)
|
||||||
|
{
|
||||||
DeleteAndNullify!(mHoverResolveTask);
|
DeleteAndNullify!(mHoverResolveTask);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!String.IsNullOrEmpty(mHoverResolveTask?.mResult)))
|
if ((!String.IsNullOrEmpty(mHoverResolveTask?.mResult)))
|
||||||
|
@ -5031,10 +5031,20 @@ namespace IDE.ui
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!didShow) &&
|
/*if ((!didShow) &&
|
||||||
((debugExpr == null) || (isOverMessage) || (!mHoverWatch.Show(this, x, y, origDebugExpr ?? debugExpr, debugExpr))))
|
((debugExpr == null) || (isOverMessage) || (!mHoverWatch.Show(this, x, y, origDebugExpr ?? debugExpr, debugExpr))))*/
|
||||||
|
if (!didShow)
|
||||||
{
|
{
|
||||||
if (mHoverResolveTask == null)
|
if ((debugExpr != null) && (!isOverMessage))
|
||||||
|
{
|
||||||
|
if ((mHoverWatch.mIsShown) && (!debugExpr.StartsWith(':')))
|
||||||
|
didShow = true;
|
||||||
|
else
|
||||||
|
didShow = mHoverWatch.Show(this, x, y, origDebugExpr ?? debugExpr, debugExpr);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((mHoverResolveTask == null) &&
|
||||||
|
((debugExpr == null) || (!debugExpr.StartsWith(':'))))
|
||||||
{
|
{
|
||||||
if ((!handlingHoverResolveTask) && (ResolveCompiler != null) && (!ResolveCompiler.mThreadWorkerHi.mThreadRunning) && (gApp.mSettings.mEditorSettings.mHiliteCursorReferences) && (!gApp.mDeterministic))
|
if ((!handlingHoverResolveTask) && (ResolveCompiler != null) && (!ResolveCompiler.mThreadWorkerHi.mThreadRunning) && (gApp.mSettings.mEditorSettings.mHiliteCursorReferences) && (!gApp.mDeterministic))
|
||||||
{
|
{
|
||||||
|
@ -5100,7 +5110,7 @@ namespace IDE.ui
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((parser != null) && (mIsBeefSource))
|
if ((parser != null) && (mIsBeefSource) && (!didShow))
|
||||||
ErrorScope:
|
ErrorScope:
|
||||||
{
|
{
|
||||||
//TODO: Needed this?
|
//TODO: Needed this?
|
||||||
|
@ -5226,7 +5236,7 @@ namespace IDE.ui
|
||||||
if ((DarkTooltipManager.sTooltip != null) && (DarkTooltipManager.sTooltip.mRelWidget == this))
|
if ((DarkTooltipManager.sTooltip != null) && (DarkTooltipManager.sTooltip.mRelWidget == this))
|
||||||
DarkTooltipManager.CloseTooltip();
|
DarkTooltipManager.CloseTooltip();
|
||||||
|
|
||||||
if (!CheckAllowHoverWatch())
|
if ((!CheckAllowHoverWatch()) && (mHoverResolveTask?.mResult == null))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7391,6 +7391,48 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu
|
||||||
failed = true;
|
failed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((arg != NULL) && (autoComplete != NULL) && (autoComplete->mResolveType == BfResolveType_GetResultString) && (autoComplete->IsAutocompleteNode(arg)))
|
||||||
|
{
|
||||||
|
if (!autoComplete->mResultString.Contains('\r'))
|
||||||
|
{
|
||||||
|
String str;
|
||||||
|
str += methodInstance->GetParamName(paramIdx);
|
||||||
|
str += " @ ";
|
||||||
|
bool isCtor = methodInstance->mMethodDef->mMethodType == BfMethodType_Ctor;
|
||||||
|
if (isCtor)
|
||||||
|
str += methodInstance->GetOwner()->mTypeDef->mName->ToString();
|
||||||
|
else
|
||||||
|
str += methodInstance->mMethodDef->mName;
|
||||||
|
str += "(";
|
||||||
|
for (int i = isCtor ? 1 : 0; i < methodInstance->GetParamCount(); i++)
|
||||||
|
{
|
||||||
|
if (i > (isCtor ? 1 : 0))
|
||||||
|
str += ",";
|
||||||
|
if (i == paramIdx)
|
||||||
|
{
|
||||||
|
if (methodInstance->GetParamKind(paramIdx) == BfParamKind_Params)
|
||||||
|
str += "params ";
|
||||||
|
str += mModule->TypeToString(methodInstance->GetParamType(paramIdx));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
str += ")";
|
||||||
|
|
||||||
|
if (!autoComplete->mResultString.StartsWith(":"))
|
||||||
|
autoComplete->mResultString.Clear();
|
||||||
|
|
||||||
|
int crPos = (int)autoComplete->mResultString.IndexOf('\n');
|
||||||
|
if (crPos == -1)
|
||||||
|
crPos = autoComplete->mResultString.mLength;
|
||||||
|
int insertPos = BF_MAX(1, crPos);
|
||||||
|
|
||||||
|
if (autoComplete->mResultString.IsEmpty())
|
||||||
|
autoComplete->mResultString += ":";
|
||||||
|
if (insertPos > 1)
|
||||||
|
str.Insert(0, '\r');
|
||||||
|
autoComplete->mResultString.Insert(insertPos, str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (argValue)
|
if (argValue)
|
||||||
{
|
{
|
||||||
if ((isThis) && (argValue.mType->IsRef()))
|
if ((isThis) && (argValue.mType->IsRef()))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue