I've never looked into LSP, how would you design it?
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?)
Well for one I wouldn't design it so both the LSP and the editor need a synchronized view of the underlying file.