1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

Bug 426781: Qt content assist is too aggressive

In Content Assist cases like:

    q->

(when the cursor is to the right of the arrow operator) the name that is
returned by the content assist context is the empty string.  This was
used to check if the QObject::connect function applied.  Since the empt
string matches all bindings the Qt assistant incorrectly continued.

I've added a check to stop processing when the current name is the empty
string.

Change-Id: I4e5bf52f4ca1ddc33d88a48917213adbbeb81836
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/21188
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
This commit is contained in:
Andrew Eidsness 2014-01-28 06:48:14 -05:00 committed by Doug Schaefer
parent 8d09935caf
commit d613b149a0

View file

@ -66,7 +66,9 @@ public class QtFunctionCallUtil {
* and false otherwise.
*/
public static boolean isQObjectFunctionCall(IASTCompletionContext astContext, boolean isPrefix, IASTName name) {
if (name == null)
if (name == null
|| name.getSimpleID() == null
|| name.getSimpleID().length <= 0)
return false;
// Bug332201: Qt content assist should always be applied to the most specific part of
@ -80,14 +82,6 @@ public class QtFunctionCallUtil {
return false;
}
/**
* Returns true if the given function call argument is a SIGNAL or SLOT expansion
* and false otherwise.
public static boolean isQtMethodExpansion(IASTInitializerClause arg) {
return MethodRegex.matcher(arg.getRawSignature()).matches();
}
*/
/**
* If the given argument is a SIGNAL or SLOT expansion then find and return the node in the AST
* that will be used for this method. Returns null if the argument is not a Qt method call or