-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathlsp_request.ml
39 lines (38 loc) · 1.08 KB
/
lsp_request.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
open Lsp.Types
open Lsp_context
open Lsp_error
module Server_life_cycle = struct
let initialize context ~params =
let () =
(* TODO: this is duplicated *)
match status context with
| Handshake -> ()
| Running -> fail Error_invalid_status_during_initialize
in
(* TODO: use additional data *)
let InitializeParams.
{
workDoneToken = _;
processId = _;
clientInfo = _;
locale = _;
rootPath = _;
rootUri = _;
initializationOptions = _;
capabilities = _;
(* TODO: definitely ignore capabilities *)
trace = _;
(* TODO: enable logging using tgrace*)
workspaceFolders = _;
} =
params
in
let () = Lsp_context.initialize context in
(* TODO: better capabilities *)
let capabilities =
ServerCapabilities.create ~textDocumentSync:(`TextDocumentSyncKind Full)
~hoverProvider:(`Bool true) ()
in
(* TODO: server_info *)
InitializeResult.create ~capabilities ()
end