Bug 578817: Check ignored types before creating certain proposals

This commit allows the CompletionEngine to skip the specified
types before it creates the type completion proposals. The
CompletionRequestor subclass is able to override the method
'isIgnored(char[] fullTypeName)' to apply its own type filters.

The benefit of checking the ignored types in CompletionEngine
is that it can avoid creating unnecessary CompletionProposals.
For some CompletionProposal, it takes up a lot of computation
time when creating the relevance property.

For example, when the constructor CompletionProposal computes
relevance, it will resolve TypeBinding for each proposed type
and use TypeBinding to check the compatibility. Resolving
a large number of TypeBindings in completion can slow down
completion speed a lot.

Signed-off-by: Jinbo Wang <jinbwan@microsoft.com>
Change-Id: I9df12db5084533c2b2be3fde7c5519bb5869a96b
Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/191039
Tested-by: JDT Bot <jdt-bot@eclipse.org>
Reviewed-by: Roland Grunberg <rgrunber@redhat.com>
6 files changed
tree: 0609ff47d00e259d95f756edd1f8101d9d3bf1c1
  1. JCL/
  2. modules/
  3. org.eclipse.jdt.annotation/
  4. org.eclipse.jdt.annotation_v1/
  5. org.eclipse.jdt.apt.core/
  6. org.eclipse.jdt.apt.pluggable.core/
  7. org.eclipse.jdt.apt.pluggable.tests/
  8. org.eclipse.jdt.apt.tests/
  9. org.eclipse.jdt.apt.ui/
  10. org.eclipse.jdt.compiler.apt/
  11. org.eclipse.jdt.compiler.apt.tests/
  12. org.eclipse.jdt.compiler.tool/
  13. org.eclipse.jdt.compiler.tool.tests/
  14. org.eclipse.jdt.core/
  15. org.eclipse.jdt.core.ecj.validation/
  16. org.eclipse.jdt.core.formatterapp/
  17. org.eclipse.jdt.core.internal.tools/
  18. org.eclipse.jdt.core.tests.builder/
  19. org.eclipse.jdt.core.tests.compiler/
  20. org.eclipse.jdt.core.tests.model/
  21. org.eclipse.jdt.core.tests.performance/
  22. org.eclipse.jdt.tests.latestBREE/
  23. tests-pom/
  24. .gitignore
  25. CONTRIBUTING
  26. LICENSE
  27. NOTICE
  28. pom.xml
  29. README.md
README.md

JDT Core

This is the core part of Eclipse's Java development tools. It contains the non-UI support for compiling and working with Java code, including the following:

  • an incremental or batch Java compiler that can run standalone or as part of the Eclipse IDE
  • Java source and class file indexer and search infrastructure
  • a Java source code formatter
  • APIs for code assist, access to the AST and structured manipulation of Java source.

For more information and important links, refer to the [JDT wiki page] 1 or the [JDT project overview page] 2.

License

Eclipse Public License (EPL) v2.0