I'm really impressed with the TabNine completion engine's design. By building on top of the language server protocol, it can offer its completion tricks to any programming language! https://tabnine.com/semantic