Add the forked nwscript-ee-language-server as a git submodule and wire
it up to the editor through a WebSocket-based LSP bridge:
- Backend: lsp.service.ts spawns the language server in --stdio mode
and bridges JSON-RPC messages between WebSocket and stdin/stdout
- Backend: /ws/lsp upgrade handler in index.ts
- Frontend: LspClient class using vscode-ws-jsonrpc for JSON-RPC over
WebSocket, with Monaco providers for completions, hover, and
diagnostics
- Frontend: useLspClient/useLspDocument hooks integrated into
MonacoEditor component