@@ -145,11 +145,85 @@ module ExtendedHover = struct
145
145
[@@@ end]
146
146
end
147
147
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
+
148
220
type t =
149
221
{ codelens : Lens .t Json.Nullable_option .t
150
222
[@ default None ] [@ yojson_drop_default ( = )]
151
223
; extended_hover : ExtendedHover .t Json.Nullable_option .t
152
224
[@ key "extendedHover" ] [@ default None ] [@ yojson_drop_default ( = )]
225
+ ; dune_diagnostics : DuneDiagnostics .t Json.Nullable_option .t
226
+ [@ key "duneDiagnostics" ] [@ default None ] [@ yojson_drop_default ( = )]
153
227
}
154
228
[@@ deriving_inline yojson ] [@@ yojson.allow_extra_fields]
155
229
@@ -161,6 +235,7 @@ let t_of_yojson =
161
235
| `Assoc field_yojsons as yojson -> (
162
236
let codelens_field = ref Ppx_yojson_conv_lib.Option. None
163
237
and extended_hover_field = ref Ppx_yojson_conv_lib.Option. None
238
+ and dune_diagnostics_field = ref Ppx_yojson_conv_lib.Option. None
164
239
and duplicates = ref []
165
240
and extra = ref [] in
166
241
let rec iter = function
@@ -186,6 +261,17 @@ let t_of_yojson =
186
261
extended_hover_field := Ppx_yojson_conv_lib.Option. Some fvalue
187
262
| Ppx_yojson_conv_lib.Option. Some _ ->
188
263
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)
189
275
| _ -> () );
190
276
iter tail
191
277
| [] -> ()
@@ -205,9 +291,10 @@ let t_of_yojson =
205
291
(Ppx_yojson_conv_lib. ( ! ) extra)
206
292
yojson
207
293
| [] ->
208
- let codelens_value, extended_hover_value =
294
+ let codelens_value, extended_hover_value, dune_diagnostics_value =
209
295
( 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 )
211
298
in
212
299
{ codelens =
213
300
(match codelens_value with
@@ -217,6 +304,10 @@ let t_of_yojson =
217
304
(match extended_hover_value with
218
305
| Ppx_yojson_conv_lib.Option. None -> None
219
306
| 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)
220
311
}))
221
312
| _ as yojson ->
222
313
Ppx_yojson_conv_lib.Yojson_conv_error. record_list_instead_atom
@@ -228,8 +319,21 @@ let _ = t_of_yojson
228
319
229
320
let yojson_of_t =
230
321
(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
+ } ->
232
326
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
233
337
let bnds =
234
338
if None = v_extended_hover then bnds
235
339
else
@@ -259,4 +363,5 @@ let _ = yojson_of_t
259
363
let default =
260
364
{ codelens = Some { enable = false }
261
365
; extended_hover = Some { enable = false }
366
+ ; dune_diagnostics = Some { enable = true }
262
367
}
0 commit comments