> Why not calling Nimsuggest on space hits and carriage returns only ?
Yes this is one solution, but I was not really happy with it. In the general case one single keystroke can change highlight of the whole file. For example when we modify a var or type definition all occurrences of that var or type in that file can become invalid, and I think highlight should show that immediately. So only cursor movements are keystrokes which for sure do not need a new nimsuggest query. And if I remember correctly nimsuggest does send for each query the information for the whole file, which is a lot traffic and CPU load.