Index: src/plugins/codecompletion/codecompletion.cpp
===================================================================
--- src/plugins/codecompletion/codecompletion.cpp (revision 6203)
+++ src/plugins/codecompletion/codecompletion.cpp (working copy)
@@ -2015,14 +2015,15 @@
ShowCallTip();
// start calltip
- if (ch == _T('('))
+ if (ch == _T('(') || ch == _T(','))
{
if (control->CallTipActive())
++m_ActiveCalltipsNest;
ShowCallTip();
}
+
// end calltip
- else if (ch == _T(')'))
+ else if (ch == _T(')') || ch == _T(';'))
{
// cancel any active calltip
control->CallTipCancel();
Test demo:
Testing it now, but had to regenerate it myself
Patch against clean trunk (works for the debugger branch too)
Index: src/plugins/codecompletion/codecompletion.cpp
===================================================================
--- src/plugins/codecompletion/codecompletion.cpp (revision 6202)
+++ src/plugins/codecompletion/codecompletion.cpp (working copy)
@@ -2043,7 +2043,7 @@
ShowCallTip();
// start calltip
- if (ch == _T('('))
+ if (ch == _T('(') || ch == _T(','))
{
if (control->CallTipActive())
++m_ActiveCalltipsNest;
@@ -2051,7 +2051,7 @@
}
// end calltip
- else if (ch == _T(')'))
+ else if (ch == _T(')') || ch == _T(';'))
{
// cancel any active calltip
control->CallTipCancel();
The patch has the same problem, then the original version, it ignores whether we are inside a string or not.
Fix it now. and i fix a new problem.
example: MessageBoxA( // here, calltip not work )
Index: src/plugins/codecompletion/codecompletion.cpp
===================================================================
--- src/plugins/codecompletion/codecompletion.cpp (revision 6203)
+++ src/plugins/codecompletion/codecompletion.cpp (working copy)
@@ -1996,8 +1996,7 @@
}
}
- if ( (event.GetEventType() == wxEVT_SCI_CHARADDED)
- && (!control->AutoCompActive()) ) // not already active autocompletion)
+ if (event.GetEventType() == wxEVT_SCI_CHARADDED)
{
// a character was just added in the editor
m_TimerCodeCompletion.Stop();
@@ -2015,25 +2014,34 @@
ShowCallTip();
// start calltip
- if (ch == _T('('))
+ if (ch == _T('(') || ch == _T(','))
{
- if (control->CallTipActive())
- ++m_ActiveCalltipsNest;
- ShowCallTip();
+ int style = control->GetStyleAt(control->GetCurrentPos() - 2);
+ if (style != wxSCI_C_STRING && style != wxSCI_C_COMMENT)
+ {
+ if (control->CallTipActive())
+ ++m_ActiveCalltipsNest;
+ ShowCallTip();
+ }
}
+
// end calltip
- else if (ch == _T(')'))
+ else if (ch == _T(')') || ch == _T(';'))
{
- // cancel any active calltip
- control->CallTipCancel();
- if (m_ActiveCalltipsNest > 0)
+ int style = control->GetStyleAt(control->GetCurrentPos() - 2);
+ if (style != wxSCI_C_STRING && style != wxSCI_C_COMMENT)
{
- --m_ActiveCalltipsNest;
- ShowCallTip();
+ // cancel any active calltip
+ control->CallTipCancel();
+ if (m_ActiveCalltipsNest > 0)
+ {
+ --m_ActiveCalltipsNest;
+ ShowCallTip();
+ }
}
}
- else if ( autoCC
+ else if ( (autoCC && !control->AutoCompActive()) // not already active autocompletion
|| (ch == _T('"')) // this and the next one are for #include's completion
|| (ch == _T('<'))
|| (ch == _T('.'))
[attachment deleted by admin]