add cleverTab() to make tab act as tab when only white space ahead, and autocompletion when dot appeared