diff --git a/src/vendor/vscode-ocaml-platform/src-bindings/node/node.ml b/src/vendor/vscode-ocaml-platform/src-bindings/node/node.ml index 42e268df..db0b9805 100644 --- a/src/vendor/vscode-ocaml-platform/src-bindings/node/node.ml +++ b/src/vendor/vscode-ocaml-platform/src-bindings/node/node.ml @@ -198,6 +198,8 @@ module Net = struct module Socket = struct include Class.Make () + let to_ojs (t : t) : Ojs.t = (t :> Ojs.t) + include [%js: val make : unit -> t [@@js.new "net.Socket"] diff --git a/src/vendor/vscode-ocaml-platform/src-bindings/node/node.mli b/src/vendor/vscode-ocaml-platform/src-bindings/node/node.mli index 4d91685f..d67fce7e 100644 --- a/src/vendor/vscode-ocaml-platform/src-bindings/node/node.mli +++ b/src/vendor/vscode-ocaml-platform/src-bindings/node/node.mli @@ -156,6 +156,8 @@ module Net : sig module Socket : sig type t + val to_ojs : t -> Ojs.t + val make : unit -> t val isPaused : t -> bool diff --git a/src/vendor/vscode-ocaml-platform/src-bindings/vscode_languageclient/vscode_languageclient.ml b/src/vendor/vscode-ocaml-platform/src-bindings/vscode_languageclient/vscode_languageclient.ml index 9ce3d6d4..06578388 100644 --- a/src/vendor/vscode-ocaml-platform/src-bindings/vscode_languageclient/vscode_languageclient.ml +++ b/src/vendor/vscode-ocaml-platform/src-bindings/vscode_languageclient/vscode_languageclient.ml @@ -193,31 +193,17 @@ end module StreamInfo = struct include Interface.Make () - type njs_stream - - let njs_stream_of_string str : njs_stream = - Format.ksprintf - Js_of_ocaml.Js.Unsafe.eval_string - "new webSocket (`%s`);" - str - - let njs_stream_of_js = Obj.magic - - let njs_stream_to_js = Obj.magic - - let njs_stream_of_socket: _ -> njs_stream = njs_stream_of_js - include [%js: - val writer : t -> njs_stream [@@js.get] + val writer : t -> Ojs.t [@@js.get] - val reader : t -> njs_stream [@@js.get] + val reader : t -> Ojs.t [@@js.get] val detached : t -> bool option [@@js.get] val create : - writer:njs_stream - -> reader:njs_stream + writer:Ojs.t + -> reader:Ojs.t -> ?detached:bool -> unit -> t diff --git a/src/vendor/vscode-ocaml-platform/src-bindings/vscode_languageclient/vscode_languageclient.mli b/src/vendor/vscode-ocaml-platform/src-bindings/vscode_languageclient/vscode_languageclient.mli index 9ee8fe13..3c7ad83b 100644 --- a/src/vendor/vscode-ocaml-platform/src-bindings/vscode_languageclient/vscode_languageclient.mli +++ b/src/vendor/vscode-ocaml-platform/src-bindings/vscode_languageclient/vscode_languageclient.mli @@ -170,20 +170,15 @@ end module StreamInfo: sig include Js.T - type njs_stream + val writer : t -> Ojs.t [@@js.get] - val njs_stream_of_string : string -> njs_stream - val njs_stream_of_socket : 'a -> njs_stream - - val writer : t -> njs_stream [@@js.get] - - val reader : t -> njs_stream [@@js.get] + val reader : t -> Ojs.t [@@js.get] val detached : t -> bool option [@@js.get] val create : - writer:njs_stream - -> reader:njs_stream + writer:Ojs.t + -> reader:Ojs.t -> ?detached:bool -> unit -> t diff --git a/src/vscode/superbol-vscode-platform/superbol_instance.ml b/src/vscode/superbol-vscode-platform/superbol_instance.ml index 30a80f45..cada9a3b 100644 --- a/src/vscode/superbol-vscode-platform/superbol_instance.ml +++ b/src/vscode/superbol-vscode-platform/superbol_instance.ml @@ -69,16 +69,14 @@ let start_language_server ({ context; _ } as t) = | Some url -> let host, port = host_and_port url in LanguageClient.make_stream ~id ~name begin fun () -> - let njs_stream = - Vscode_languageclient.StreamInfo.njs_stream_of_socket @@ - Node.Net.Socket.(connect (make ())) - ~host - ~port + let socket = + (* Vscode_languageclient.StreamInfo.njs_stream_of_socket @@ *) + Node.Net.Socket.(to_ojs (connect (make ()) ~host ~port)) in Promise.return @@ Vscode_languageclient.StreamInfo.create () - ~writer:njs_stream - ~reader:njs_stream + ~writer:socket + ~reader:socket end | None -> let clientOptions = Superbol_languageclient.client_options () in