Add handlers for unknown requests and notifications

This commit is contained in:
Xavier Denis 2023-03-22 10:36:05 +01:00 committed by Simon Cruanes
parent 498c62d46f
commit af49b048c9

View file

@ -308,6 +308,10 @@ module Make (IO : IO) = struct
(** List symbols in this document.
@since 0.3 *)
method on_unknown_request ~notify_back:(_ : notify_back) ~server_request:_ ~id:_ meth params
: Yojson.Safe.t IO.t =
IO.failwith "unhandled request"
method on_request : type r.
notify_back:_ ->
server_request:_ ->
@ -467,14 +471,20 @@ module Make (IO : IO) = struct
| Lsp.Client_request.CallHierarchyOutgoingCalls _
| Lsp.Client_request.WillCreateFiles _
| Lsp.Client_request.WillDeleteFiles _
| Lsp.Client_request.WillRenameFiles _
| Lsp.Client_request.UnknownRequest _ ->
| Lsp.Client_request.WillRenameFiles _ ->
let notify_back =
new notify_back
~workDoneToken:None ~partialResultToken:None ~notify_back
~server_request ()
in
self#on_request_unhandled ~notify_back ~id r
| Lsp.Client_request.UnknownRequest r ->
let notify_back =
new notify_back
~workDoneToken:None ~partialResultToken:None ~notify_back
~server_request ()
in
self#on_unknown_request ~notify_back ~server_request ~id r.meth r.params
method virtual on_notif_doc_did_open
: notify_back:notify_back ->
@ -495,6 +505,10 @@ module Make (IO : IO) = struct
unit IO.t
(** Called when the document changes. *)
method on_unknown_notification ~notify_back:(_ : notify_back)
(_n : Jsonrpc.Notification.t) : unit IO.t =
IO.return ()
method on_notification_unhandled ~notify_back:(_ : notify_back)
(_n : Lsp.Client_notification.t) : unit IO.t =
IO.return ()
@ -598,7 +612,6 @@ module Make (IO : IO) = struct
| Lsp.Client_notification.ChangeWorkspaceFolders _
| Lsp.Client_notification.ChangeConfiguration _
| Lsp.Client_notification.Initialized
| Lsp.Client_notification.UnknownNotification _
| Lsp.Client_notification.CancelRequest _
| Lsp.Client_notification.WorkDoneProgressCancel _
| Lsp.Client_notification.SetTrace _
@ -615,5 +628,12 @@ module Make (IO : IO) = struct
self#on_notification_unhandled
~notify_back:(notify_back : notify_back)
n
| Lsp.Client_notification.UnknownNotification n ->
let notify_back =
new notify_back
~workDoneToken:None ~partialResultToken:None ~notify_back
~server_request ()
in
self#on_unknown_notification ~notify_back n
end
end