Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 352010

Summary: cdt editor hangs when trying to autocomplete
Product: [Tools] CDT Reporter: Christopher Friedt <cfriedt>
Component: cdt-editorAssignee: Project Inbox <cdt-editor-inbox>
Status: CLOSED DUPLICATE QA Contact: Anton Leherbauer <aleherb+eclipse>
Severity: critical    
Priority: P3 CC: cdtdoug, yevshif
Version: 8.0   
Target Milestone: ---   
Hardware: Macintosh   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Christopher Friedt CLA 2011-07-13 14:09:57 EDT
Build Identifier: 

Firstly, problem exists for every platform I've ever used eclipse on (PC, Mac), and with every operating system I've ever used it on (Linux, OS X), and has persisted for as long as I've been using Eclipse (a long time).

The description of the bug is as follows:

For very large software projects (e.g. the linux kernel), when defining a global data structure or variable of some kind with an initializer (which is very, very common), the autocompletion simply hangs infinitely due to the sheer vastness of the number of global symbols the autocompletion handler needs to take into account.

Example (outside of any blocks, i.e. in the global context): 

struct irrelevant {
int field;
};

struct irrelevant x = {
.[... wait a second for autocompletion to start, and never return]


I have to stress that this only works for really large software projects, and it only fails for them too. Regardless of the size of the project, It's still a problem. 

Eclipse could be hanging for 15 minutes without any UI responsiveness, and I'm forced to just kill the process and restart eclipse.

Now, if one types the word "field" before the autocompletion handler has time to begin, there is no problem at all (but then again, autocompletion is completely sidestepped).

My suggestion is really to just forget about autocompletion in the global context. 

Even with small projects, autocompletion in the global scope (in C) usually comes up with dozens of completely unrelated and useless values. If it was disabled for the global scope, at least it wouldn't crash eclipse.

This could be related to bug #345138 or #345970, but since it's still present in what I would imagine is the latest version of eclipse, it's obviously never been resolved.

I would imagine that behaviour is better in C++ due to namespaces, but again, if anything is in the global scope (i.e. the default namespace), then it's probably just as poorly behaved.

Reproducible: Always

Steps to Reproduce:
1. follow
2. the steps
3. in my bug report
Comment 1 Christopher Friedt CLA 2011-07-13 14:17:24 EDT
Incidentally, I'm using Eclipse Helios, build id M20110210-1200.

PS: Hi Doug, how're you doing?
Comment 2 Anton Leherbauer CLA 2011-07-15 02:37:04 EDT
Note that you can disable auto completion on '.' in the preferences.

*** This bug has been marked as a duplicate of bug 126698 ***