I’ve been very used to the ST3 tab completion, as I had it configured. I pressed tab and the word completed with something like it that was somewhere in the file (that was what I understood the behaviour to be). If it wasn’t the completion I wanted, I pressed tab again, and cycled through them. When I was happy I continued typing, and it inserted the new characters after the inserted text.
In ST4, this appears to have been replaced with tab popping up a distracting box over the top of the next line. This does nothing until I press tab again, which completes the word, and if that’s not the one I want, I have to press tab again, producing the distracting box, and then showing me the second word, and then I press tab a fourth time to accept that… and if it turned out I wanted the first completion, I … can’t get it because the next tab just inserts a tab.
The pattern I had of ‘press tab, start typing’ doesn’t work in ST4; it discards the tab completion that was in progress in the box, and just inserts the character I typed.
The ‘auto’ settings I have in my configuration file are:
"auto_close_tags": false,
"auto_complete": false,
"auto_match_enabled": false,
None of the configuration settings I can see in Preferences.sublime-settings appear to have any effect.
I can see that there’s a configuration for the ‘tab’ key in the keymap, which seems to have a bunch of differences to the ST3 settings, which were to use “insert_best_completion”. Adding these old settings to the configuration of the keymap appears ineffective. That is, adding:
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
"context":
[
{ "key": "setting.tab_completion", "operator": "equal", "operand": true },
{ "key": "preceding_text", "operator": "not_regex_match", "operand": ".*\\b[0-9]+$", "match_all": true },
]
},
{ "keys": ["tab"], "command": "replace_completion_with_next_completion", "context":
[
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
]
},
to my default keymap has had the effect of making tab after a word do nothing at all. At this point I’m either going to turn off auto completion entirely, or revert to ST3.
Is there a way to restore the behaviour that works for me with ST4?