Start with synchronous function calls instead of JSON. Microsoft knows how to do that - they invented COM and OLE. Function calls enable whatever data sharing is necessary to maintain a coherent view. Imagine trying to do OLE with JSON - just wouldn't work. (Does OLE still exist?)
I feel like MS actually learned their lesson with synchronously integrating the language intelligence into the IDE. Old versions of VS would hang or crash based on bugs in the language tooling trying to provide intellisense. You'd restart and it'd work fine till you hit some other weird edge case. Generally this settled to a level of rare-bugginess where you were happy enough with the advantages not to go back to Emacs/VIM, but still annoyed at the occasional restart needed.
In no way does this mean LSP is a perfect solution, but anything synchronous would be a step backwards.
octoberfranklin · · focus · HN ↗
LSP is an example of utterly horrid technical design.
Stop letting Microsoft design protocols and APIs. They are so. bad. at. it.
duttish · · focus · HN ↗
mitxela · · focus · HN ↗
rspeele · · focus · HN ↗
In no way does this mean LSP is a perfect solution, but anything synchronous would be a step backwards.