package forester

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

Source file Change_configuration.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
(*
 * 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_frontend

open struct
  module L = Lsp.Types
  module RPC = Jsonrpc
end

(* TODO: set up json conversions for forester config*)
let compute (params : L.DidChangeConfigurationParams.t) =
  match params.settings with
  | `Assoc xs ->
    begin
      match List.assoc_opt "configuration_file" xs with
      | Some (`String f) ->
        begin
          try
            let config = Config_parser.parse_forest_config_file f in
            Lsp_state.modify @@ fun state ->
            {state with forest = {state.forest with config = config}}
          with
            | _ -> Eio.traceln "failed to parse configuration file"
        end
      | _ -> Eio.traceln "invalid value for configuration_file"
      (* RPC.Response.Error.raise *)
      (*   ( *)
      (*     RPC.Response.Error.make *)
      (*       ~code: InvalidRequest *)
      (*       ~message: "invalid value for configuration_file" *)
      (*       () *)
      (*   ) *)
    end
  | json -> Eio.traceln "unknown configuration value %a" Yojson.Safe.pp json
OCaml

Innovation. Community. Security.