Since buffer completion processes the current buffer everytime user
types something, it will degrade the experience for large files.
This change adds a timeout to buffer completor function. Processing
current buffer is cut short when timeout is exceeded. Setting
timeout to 0 will revert back to existing behaviour.
Default is set to 100 ms, good for scanning 6000 lines on M1 macbook.
It is possible to get fancy by scanning locality of cursor first
but such complication may not be worth the complexity.
Tested on >20k line files (I have to open these large C files
filled with hw specs occasionally).
M autoload/lsp/completion.vim
M autoload/lsp/options.vim
M doc/lsp.txt