Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stop spacebar keypress from triggering autocomplete in Eclipse

Tags:

java

eclipse

Update

This was fixed in Eclipse 2018-12. This behaviour is still default, but can be configured off - see the accepted answer for how

I'll leave the question as it was for posterity, and for those on earlier versions of Eclipse


In Eclipse, I've enabled intellisense-style suggestions for Java by going to

Window -> Preferences -> Java/Editor/Content Assist 

and setting the following

Auto activation delay (ms) -> 0 Auto activation triggers for Java -> .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 

source = Eclipse Intellisense?

This works brilliantly, apart from one annoying problem. When I hit spacebar, the token being typed is autocompleted with whatever is at the top of the suggestions list. Fair enough, except that sometimes I'll type a class/variable name with an exact legal match, but this won't appear as the top suggestion. So when I naturally hit spacebar Eclipse inserts something completely wrong.

E.G. after typing Cookie I'll hit spacebar and get CookieMonster.

This seems like a bug, and happens often enough to be annoying, but even despite this I don't want spacebar to trigger autocomplete in general. I may want to type a variable name which hasn't been declared yet, or something similar. I want to use autocomplete as a helper tool, but my natural typing should always take priority over it.

I'd like to stop spacebar triggering autocomplete, and either fall back to using enter, or better still trigger autocomplete with a custom key not used in ordinary typing. Is any of this possible?

I've played around with all the settings in Content Assist to no avail. Googling the question just returns a bunch of results about disabling the autocomplete feature.


This issue is fixed from Eclipse 2018-12 [4.10] see the accepted answer

It's present in all prior versions, i.e. 2018-09 [4.9], Photon [4.8], Oxygen [4.7], Neon [4.6], etc..

like image 822
davnicwil Avatar asked Jan 12 '13 20:01

davnicwil


People also ask

What is the keystroke for code completion in Eclipse?

Pressing Ctrl + Space opens up the auto-completion dialog in Eclipse. In the Java Perspective it opens automatically after you typed a . (normally with a short delay).

What is Eclipse IntelliSense?

IntelliSense can speed up your coding by auto-completing your words as you type, lets say you have aVeryLongVariable in your code, as soon as you start typing aV, a box will pop-up with the suggestions for auto-completion, you can either continue typing or just press enter and your variable will be auto-completed.


1 Answers

Eclipse 2018-12 was already patched for this!

A patch for Bug 348857 was recently merged to the Eclipse project and was released as part of Eclipse 2018-12. You can download that version here.

You now have a new option to disable all insertion triggers apart from enter, which will prevent spacebar from causing autocompletion.

Simply go to Preferences... -> Java -> Editor -> Content Assist (or Window -> Preferences -> Java -> Editor -> Content Assist on Windows) and select Disable insertion triggers except 'Enter', as shown in the screenshot below: Disable insertion triggers preferences

like image 179
Pyves Avatar answered Oct 15 '22 04:10

Pyves