package forester

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file Did_open.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(*
 * SPDX-FileCopyrightText: 2024 The Forester Project Contributors AND The RedPRL Development Team
 *
 * SPDX-License-Identifier: GPL-3.0-or-later OR Apache-2.0 WITH LLVM-exception
 *
 *)

open Forester_core
open Forester_compiler
open State.Syntax
open struct module L = Lsp.Types end

let compute (params : L.DidOpenTextDocumentParams.t) =
  let lsp_uri = params.textDocument.uri in
  let Lsp_state.{forest; _} = Lsp_state.get () in
  let document = Lsp.Text_document.make ~position_encoding: `UTF16 params in
  let uri = URI_scheme.lsp_uri_to_uri ~base: forest.config.url lsp_uri in
  forest.={uri} <- Document document;
  Lsp_state.modify (fun ({forest; _} as lsp_state) ->
    let new_forest = Driver.run_until_done (Action.Parse lsp_uri) forest in
    {lsp_state with forest = new_forest}
  );
  Diagnostics.compute document
OCaml

Innovation. Community. Security.