We currently have a Language Server for Darklang written in Node — this powers our (WIP) VS Code Extension.
This Node server acts as an intermediate server, calling upon Darklang code to indirectly support the Extension, via the darklang-cli
-- starting, running, and exiting the executable for every request the LSP client/extension makes. (e.g. for every re-evaluation of name resolution of parsed Darklang source code)
Some problems with the current approach:
At some point, we should delete this Node LSP server in favor of one written in Darklang, which will probably be sitting on top our CLI runtime. Is that time now/soon? This document covers the steps I think in our way to discuss+decide this, I think "in order.” (not to say we shouldn't pursue multiple of these at the same time
Elmish-CLI