The new Release 20.03 is out! You can download binaries for Windows and many major Linux distros here .
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();
MessageBox(NULL, "TEST",
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.
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('.'))