@@ -352,24 +352,33 @@ private CompletionList actionScriptCompletion(IASNode offsetNode, Path path, Pos
352
352
}
353
353
currentNodeForScope = currentNodeForScope .getParent ();
354
354
} while (currentNodeForScope != null );
355
-
356
- return result ;
355
+ // don't return because the function might be an override
356
+ // and the name can be completed
357
357
}
358
358
if (ASTNodeID .KeywordVarID .equals (keywordNode .getNodeID ())
359
359
|| ASTNodeID .KeywordConstID .equals (keywordNode .getNodeID ())
360
360
|| ASTNodeID .KeywordClassID .equals (keywordNode .getNodeID ())
361
- || ASTNodeID .KeywordInterfaceID .equals (keywordNode .getNodeID ())
362
- || ASTNodeID .KeywordGetID .equals (keywordNode .getNodeID ())
363
- || ASTNodeID .KeywordSetID .equals (keywordNode .getNodeID ())) {
361
+ || ASTNodeID .KeywordInterfaceID .equals (keywordNode .getNodeID ())) {
364
362
return result ;
365
363
}
366
364
}
367
- if (parentNode != null && parentNode instanceof IDefinitionNode && !( parentNode instanceof IPackageNode ) ) {
365
+ if (parentNode != null && parentNode instanceof IDefinitionNode ) {
368
366
IDefinitionNode defNode = (IDefinitionNode ) parentNode ;
369
367
if (offsetNode == defNode .getNameExpressionNode ()) {
370
- // no completion for definition names because names shouldn't
371
- // conflict with each other
372
- return result ;
368
+ boolean skipCompletion = true ;
369
+ if (defNode instanceof IPackageNode ) {
370
+ skipCompletion = false ;
371
+ } else if (defNode instanceof IFunctionNode ) {
372
+ IFunctionNode funcNode = (IFunctionNode ) defNode ;
373
+ if (funcNode .hasModifier (ASModifier .OVERRIDE )) {
374
+ skipCompletion = false ;
375
+ }
376
+ }
377
+ if (skipCompletion ) {
378
+ // no completion for certain definition names where names
379
+ // shouldn't conflict with each other
380
+ return result ;
381
+ }
373
382
}
374
383
}
375
384
0 commit comments