https://github.com/Microsoft/language-server-protocol It looks like more and more tools start to use this, no need to reinvent the wheel.