3 ms·
But it doesn't have to, because you call AboutToUpdateCode and the LSP doesn't return until it's safe, and then you update code and call DoneUpdatingCode.
by mitxela 28d ago
But it doesn't have to, because you call AboutToUpdateCode and the LSP doesn't return until it's safe, and then you update code and call DoneUpdatingCode.
- cyberax 27d agoYes, it does because the physical code update is asynchronous. Or you'd have to do a roundtrip for every little edit, resulting in unusably slow experience.
- mitxela 27d agoI don't know what you're talking about. What is "physical code"? A function call roundtrip costs nothing, that's the reason we are saying it should be function calls.
- cyberax 27d agoTCP roundtrip overhead over localhost costs approximately nothing. But running the LSP itself is slow. It's not instant, and you can't run it in a blocking way for each keypress.
- mitxela 26d agoA function call costs nanoseconds. You can sprinkle them literally everywhere. A JSON-formatted TCP round trip to localhost costs, I'd guess conservatively, at least ten microseconds, 1000x slower.
- cyberax 26d agoOK. Here's my simple implementation of an LSP: > func doLspStuff() { sleep(60000); } Now sprinkle them after each keypress. Do you see the issue now?