Source file Diagnostics.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
open Forester_core
open Forester_compiler
open struct module L = Lsp.Types end
open State.Syntax
let compute (document : Lsp.Text_document.t) =
let Lsp_state.{forest; _} = Lsp_state.get () in
let lsp_uri = Lsp.Text_document.documentUri document in
let uri = URI_scheme.lsp_uri_to_uri ~base: forest.config.url lsp_uri in
match forest.?{uri} with
| [] ->
Eio.traceln "Clearing diagnostics for %s" (Lsp.Uri.to_path lsp_uri);
Publish.publish lsp_uri []
| diagnostics ->
Eio.traceln "publishing %i diagnostics to %s" (List.length diagnostics) (Lsp.Uri.to_path lsp_uri);
Publish.publish lsp_uri diagnostics