If I for example type "Integer." and then hit CTRL+SPACE, and now choose "valueOf" from the list, Eclipse always adds "()" after the function name. That is really annoying to me because often times I have an already existing statement and want to wrap a function around it.
Example: I want to change
String x = "hello world";
to
String x = StringManipulator.uppercase("hello world");
If I write
String x = StringManipulator."hello world";
and hit CTRL+SPACE on the dot character, it inserts
String x = StringManipulator.uppercase()"hello world";
Is there any way to fix this behaviour? I don't need automatical parenthese-closing but just stopping Eclipse from autoinserting them would help me very much.
I find this unrelated-seeming setting makes a big difference so I'll mention it.
The auto-completion feature in eclipse works somewhat differently if you choose "Completion overwrites" instead of "Completion inserts" on the "Content Assist" preferences.
(Let
wrappingMethod()
be the method that will be completed.)wrappingMoriginalMethod()
With the cursor after the "gM" above, accepting the completion proposal gives:
wrappingMethod()
wrappingM(originalMethod()
With the cursor after the "gM" above, accepting the completion proposal gives:
wrappingMethod(originalMethod()
Notice I had to add the open paren to prevent the overwrite, but no extra parens.
wrappingM originalMethod()
With the cursor after the "gM" above, accepting the completion proposal gives:
wrappingMethod(parameterGuess) originalMethod()
I find this the most comfortable choice so far. I DO think that it would be nice if there were a "smart" parentheses insertion feature that would NOT insert the parens if completing right before an existing paren and since I am WISHING anyway... it would be even more awesome if it could check those existing parens to see if they have the args I am looking for or not and do something smart OR check the method after my insertion point to see if it should be an argument to my completion and just go ahead and DO that and put a closing paren after it and BEFORE the semi-colon if there was one there already.
Then again, if the IDE writes ALL of my code then I'll get bored pretty quickly.
Automatically close parentheses is for when you open a parentheses in this case you are autocompleting a method, in this case when the method you are calling has arguments it will autocreate the parentheses and the blocks where the arguments will be placed, there is no way to just autocomplete the method without the parentheses, but you could create a template to autocomplete:
Hope it helps
Go to Preferences in eclipse -> into search box type: "parent" -> uncheck options that you don't like. That's what search is for in that mess (eclipse preferences).