@@ -201,7 +201,7 @@ let format_as_code_block ~highlighter strings =
201
201
let format_type_enclosing ~syntax ~markdown ~typ ~doc
202
202
~(syntax_doc : Query_protocol.syntax_doc_result option ) =
203
203
(* TODO for vscode, we should just use the language id. But that will not work
204
- for all editors *)
204
+ for all editors *)
205
205
let syntax_doc =
206
206
Option. map syntax_doc ~f: (fun syntax_doc ->
207
207
sprintf
@@ -212,30 +212,32 @@ let format_type_enclosing ~syntax ~markdown ~typ ~doc
212
212
in
213
213
`MarkupContent
214
214
(if markdown then
215
- let value =
216
- let markdown_name = Document.Syntax. markdown_name syntax in
217
- let type_info = Some (format_as_code_block ~highlighter: markdown_name [ typ ]) in
218
- let doc =
219
- Option. map doc ~f: (fun doc ->
220
- match Doc_to_md. translate doc with
221
- | Raw d -> d
222
- | Markdown d -> d)
223
- in
224
- print_dividers (List. filter_opt [ type_info; syntax_doc; doc ])
225
- in
226
- { MarkupContent. value; kind = MarkupKind. Markdown }
227
- else
228
- let value =
229
- print_dividers (List. filter_opt [ Some typ; syntax_doc; doc ])
230
- in
231
- { MarkupContent. value; kind = MarkupKind. PlainText })
215
+ let value =
216
+ let markdown_name = Document.Syntax. markdown_name syntax in
217
+ let type_info =
218
+ Some (format_as_code_block ~highlighter: markdown_name [ typ ])
219
+ in
220
+ let doc =
221
+ Option. map doc ~f: (fun doc ->
222
+ match Doc_to_md. translate doc with
223
+ | Raw d -> d
224
+ | Markdown d -> d)
225
+ in
226
+ print_dividers (List. filter_opt [ type_info; syntax_doc; doc ])
227
+ in
228
+ { MarkupContent. value; kind = MarkupKind. Markdown }
229
+ else
230
+ let value =
231
+ print_dividers (List. filter_opt [ Some typ; syntax_doc; doc ])
232
+ in
233
+ { MarkupContent. value; kind = MarkupKind. PlainText })
232
234
233
235
let format_ppx_expansion ~ppx ~expansion =
234
236
let value = sprintf " (* ppx %s expansion *)\n %s" ppx expansion in
235
237
`MarkedString { Lsp.Types.MarkedString. value; language = Some " ocaml" }
236
238
237
- let type_enclosing_hover ~(server : State.t Server.t ) ~(doc : Document.t ) ~ with_syntax_doc
238
- ~merlin ~mode ~uri ~position =
239
+ let type_enclosing_hover ~(server : State.t Server.t ) ~(doc : Document.t )
240
+ ~with_syntax_doc ~ merlin ~mode ~uri ~position =
239
241
let state = Server. state server in
240
242
let verbosity =
241
243
let mode =
@@ -263,7 +265,11 @@ let type_enclosing_hover ~(server : State.t Server.t) ~(doc : Document.t) ~with_
263
265
v
264
266
in
265
267
let * type_enclosing =
266
- Document.Merlin. type_enclosing merlin (Position. logical position) verbosity ~with_syntax_doc
268
+ Document.Merlin. type_enclosing
269
+ merlin
270
+ (Position. logical position)
271
+ verbosity
272
+ ~with_syntax_doc
267
273
in
268
274
match type_enclosing with
269
275
| None -> Fiber. return None
@@ -299,7 +305,12 @@ let type_enclosing_hover ~(server : State.t Server.t) ~(doc : Document.t) ~with_
299
305
client_capabilities
300
306
~field: (fun td -> Option. map td.hover ~f: (fun h -> h.contentFormat))
301
307
in
302
- format_type_enclosing ~syntax ~markdown ~typ ~doc: documentation ~syntax_doc
308
+ format_type_enclosing
309
+ ~syntax
310
+ ~markdown
311
+ ~typ
312
+ ~doc: documentation
313
+ ~syntax_doc
303
314
in
304
315
let range = Range. of_loc loc in
305
316
let hover = Hover. create ~contents ~range () in
@@ -427,7 +438,14 @@ let handle server { HoverParams.textDocument = { uri }; position; _ } mode =
427
438
| Some { enable = true } -> true
428
439
| Some _ | None -> false
429
440
in
430
- type_enclosing_hover ~server ~doc ~merlin ~mode ~uri ~position ~with_syntax_doc
441
+ type_enclosing_hover
442
+ ~server
443
+ ~doc
444
+ ~merlin
445
+ ~mode
446
+ ~uri
447
+ ~position
448
+ ~with_syntax_doc
431
449
| Some ((`Ppx_expr _ | `Ppx_typedef_attr _ ) as ppx_kind ) -> (
432
450
let + ppx_parsetree =
433
451
Document.Merlin. with_pipeline_exn
@@ -439,4 +457,4 @@ let handle server { HoverParams.textDocument = { uri }; position; _ } mode =
439
457
| `Ppx_expr (expr , ppx ) ->
440
458
ppx_expression_hover ~ppx_parsetree ~expr ~ppx
441
459
| `Ppx_typedef_attr (decl , attr ) ->
442
- typedef_attribute_hover ~ppx_parsetree ~decl ~attr )))
460
+ typedef_attribute_hover ~ppx_parsetree ~decl ~attr )))
0 commit comments