Eclipse behaviour for parentheses is interesting, it autocompletes `)` if the character after the typed `(` is not a value or identifier.
So when typing `foo(` at the cursor |.
`if(|xxx)` becomes `if(foo(|xxx)` or `if(|1)` becomes `if(foo(|1)`
but
`if(|+xxx)` becomes `if(foo(|)+xxx)` or `if(|)` becomes `if(foo(|))`
It works fairly well when typing new code and is avoids some (but not all) mistakes during editing, at the expense of having to manually add or delete the closing `)` in some cases.
Note this is observed behaviour because it isn't documented, which makes the behaviour just plain annoying until its worked out, which is why I want it documented for Geany, whichever decisions we end up with.