The difference seems to be in whether completion is committed when you type keys that are not explicit commit keystrokes while typing. Tab is an explicit commit character; . and ; are examples of keys that are not explicit commit characters.
If I type "foo".sub(
(in C# as an example) the behavior will be as follows:
- with the button enabled (suggestion mode), I will get the same literal output with a closing parenthesis added:
"foo".sub()
- with the button disabled (standard mode), it completes using the best match in the completion list:
"foo".Substring()
Turning this behavior on is more suitable in languages or projects where you are invoking dynamic (or new, not-yet-existing) methods and properites that are not present in the completion list, so that you don't have to fight with undesired partial matches.