@@ -145,11 +145,85 @@ module ExtendedHover = struct
145145 [@@@ end]
146146end
147147
148+ module DuneDiagnostics = struct
149+ type t = { enable : bool [@ default true ] }
150+ [@@ deriving_inline yojson ] [@@ yojson.allow_extra_fields]
151+
152+ let _ = fun (_ : t ) -> ()
153+
154+ let t_of_yojson =
155+ (let _tp_loc = " ocaml-lsp-server/src/config_data.ml.DuneDiagnostics.t" in
156+ function
157+ | `Assoc field_yojsons as yojson -> (
158+ let enable_field = ref Ppx_yojson_conv_lib.Option. None
159+ and duplicates = ref []
160+ and extra = ref [] in
161+ let rec iter = function
162+ | (field_name , _field_yojson ) :: tail ->
163+ (match field_name with
164+ | "enable" -> (
165+ match Ppx_yojson_conv_lib. ( ! ) enable_field with
166+ | Ppx_yojson_conv_lib.Option. None ->
167+ let fvalue = bool_of_yojson _field_yojson in
168+ enable_field := Ppx_yojson_conv_lib.Option. Some fvalue
169+ | Ppx_yojson_conv_lib.Option. Some _ ->
170+ duplicates := field_name :: Ppx_yojson_conv_lib. ( ! ) duplicates)
171+ | _ -> () );
172+ iter tail
173+ | [] -> ()
174+ in
175+ iter field_yojsons;
176+ match Ppx_yojson_conv_lib. ( ! ) duplicates with
177+ | _ :: _ ->
178+ Ppx_yojson_conv_lib.Yojson_conv_error. record_duplicate_fields
179+ _tp_loc
180+ (Ppx_yojson_conv_lib. ( ! ) duplicates)
181+ yojson
182+ | [] -> (
183+ match Ppx_yojson_conv_lib. ( ! ) extra with
184+ | _ :: _ ->
185+ Ppx_yojson_conv_lib.Yojson_conv_error. record_extra_fields
186+ _tp_loc
187+ (Ppx_yojson_conv_lib. ( ! ) extra)
188+ yojson
189+ | [] ->
190+ let enable_value = Ppx_yojson_conv_lib. ( ! ) enable_field in
191+ { enable =
192+ (match enable_value with
193+ | Ppx_yojson_conv_lib.Option. None -> true
194+ | Ppx_yojson_conv_lib.Option. Some v -> v)
195+ }))
196+ | _ as yojson ->
197+ Ppx_yojson_conv_lib.Yojson_conv_error. record_list_instead_atom
198+ _tp_loc
199+ yojson
200+ : Ppx_yojson_conv_lib.Yojson.Safe. t -> t)
201+
202+ let _ = t_of_yojson
203+
204+ let yojson_of_t =
205+ (function
206+ | { enable = v_enable } ->
207+ let bnds : (string * Ppx_yojson_conv_lib.Yojson.Safe.t) list = [] in
208+ let bnds =
209+ let arg = yojson_of_bool v_enable in
210+ (" enable" , arg) :: bnds
211+ in
212+ `Assoc bnds
213+ : t -> Ppx_yojson_conv_lib.Yojson.Safe. t)
214+
215+ let _ = yojson_of_t
216+
217+ [@@@ end]
218+ end
219+
148220type t =
149221 { codelens : Lens .t Json.Nullable_option .t
150222 [@ default None ] [@ yojson_drop_default ( = )]
151223 ; extended_hover : ExtendedHover .t Json.Nullable_option .t
152224 [@ key "extendedHover" ] [@ default None ] [@ yojson_drop_default ( = )]
225+ ; dune_diagnostics : DuneDiagnostics .t Json.Nullable_option .t
226+ [@ key "duneDiagnostics" ] [@ default None ] [@ yojson_drop_default ( = )]
153227 }
154228[@@ deriving_inline yojson ] [@@ yojson.allow_extra_fields]
155229
@@ -161,6 +235,7 @@ let t_of_yojson =
161235 | `Assoc field_yojsons as yojson -> (
162236 let codelens_field = ref Ppx_yojson_conv_lib.Option. None
163237 and extended_hover_field = ref Ppx_yojson_conv_lib.Option. None
238+ and dune_diagnostics_field = ref Ppx_yojson_conv_lib.Option. None
164239 and duplicates = ref []
165240 and extra = ref [] in
166241 let rec iter = function
@@ -186,6 +261,17 @@ let t_of_yojson =
186261 extended_hover_field := Ppx_yojson_conv_lib.Option. Some fvalue
187262 | Ppx_yojson_conv_lib.Option. Some _ ->
188263 duplicates := field_name :: Ppx_yojson_conv_lib. ( ! ) duplicates)
264+ | "duneDiagnostics" -> (
265+ match Ppx_yojson_conv_lib. ( ! ) dune_diagnostics_field with
266+ | Ppx_yojson_conv_lib.Option. None ->
267+ let fvalue =
268+ Json.Nullable_option. t_of_yojson
269+ DuneDiagnostics. t_of_yojson
270+ _field_yojson
271+ in
272+ dune_diagnostics_field := Ppx_yojson_conv_lib.Option. Some fvalue
273+ | Ppx_yojson_conv_lib.Option. Some _ ->
274+ duplicates := field_name :: Ppx_yojson_conv_lib. ( ! ) duplicates)
189275 | _ -> () );
190276 iter tail
191277 | [] -> ()
@@ -205,9 +291,10 @@ let t_of_yojson =
205291 (Ppx_yojson_conv_lib. ( ! ) extra)
206292 yojson
207293 | [] ->
208- let codelens_value, extended_hover_value =
294+ let codelens_value, extended_hover_value, dune_diagnostics_value =
209295 ( Ppx_yojson_conv_lib. ( ! ) codelens_field
210- , Ppx_yojson_conv_lib. ( ! ) extended_hover_field )
296+ , Ppx_yojson_conv_lib. ( ! ) extended_hover_field
297+ , Ppx_yojson_conv_lib. ( ! ) dune_diagnostics_field )
211298 in
212299 { codelens =
213300 (match codelens_value with
@@ -217,6 +304,10 @@ let t_of_yojson =
217304 (match extended_hover_value with
218305 | Ppx_yojson_conv_lib.Option. None -> None
219306 | Ppx_yojson_conv_lib.Option. Some v -> v)
307+ ; dune_diagnostics =
308+ (match dune_diagnostics_value with
309+ | Ppx_yojson_conv_lib.Option. None -> None
310+ | Ppx_yojson_conv_lib.Option. Some v -> v)
220311 }))
221312 | _ as yojson ->
222313 Ppx_yojson_conv_lib.Yojson_conv_error. record_list_instead_atom
@@ -228,8 +319,21 @@ let _ = t_of_yojson
228319
229320let yojson_of_t =
230321 (function
231- | { codelens = v_codelens ; extended_hover = v_extended_hover } ->
322+ | { codelens = v_codelens
323+ ; extended_hover = v_extended_hover
324+ ; dune_diagnostics = v_dune_diagnostics
325+ } ->
232326 let bnds : (string * Ppx_yojson_conv_lib.Yojson.Safe.t) list = [] in
327+ let bnds =
328+ if None = v_dune_diagnostics then bnds
329+ else
330+ let arg =
331+ (Json.Nullable_option. yojson_of_t DuneDiagnostics. yojson_of_t)
332+ v_dune_diagnostics
333+ in
334+ let bnd = (" duneDiagnostics" , arg) in
335+ bnd :: bnds
336+ in
233337 let bnds =
234338 if None = v_extended_hover then bnds
235339 else
@@ -259,4 +363,5 @@ let _ = yojson_of_t
259363let default =
260364 { codelens = Some { enable = false }
261365 ; extended_hover = Some { enable = false }
366+ ; dune_diagnostics = Some { enable = true }
262367 }
0 commit comments