@@ -192,70 +192,91 @@ module InlayHints = struct
192192end
193193
194194module Lens = struct
195- type t = { enable : bool [@ default true ] }
195+ type t =
196+ { enable : bool [@ default true ]
197+ ; for_nested_bindings : bool [@ key "forNestedBindings" ] [@ default false ]
198+ }
196199 [@@ deriving_inline yojson ] [@@ yojson.allow_extra_fields]
197200
198201 let _ = fun (_ : t ) -> ()
199202
200- let t_of_yojson =
201- (let _tp_loc = " ocaml-lsp-server/src/config_data.ml.Lens.t" in
202- function
203- | `Assoc field_yojsons as yojson ->
203+
204+ let t_of_yojson =
205+ (let _tp_loc = " ocaml-lsp-server/src/config_data.ml.Lens.t" in
206+ function
207+ | `Assoc field_yojsons as yojson ->
204208 let enable_field = ref Ppx_yojson_conv_lib.Option. None
209+ and for_nested_bindings_field = ref Ppx_yojson_conv_lib.Option. None
205210 and duplicates = ref []
206211 and extra = ref [] in
207- let rec iter = function
208- | (field_name , _field_yojson ) :: tail ->
209- (match field_name with
210- | "enable" ->
211- (match Ppx_yojson_conv_lib. ( ! ) enable_field with
212- | Ppx_yojson_conv_lib.Option. None ->
213- let fvalue = bool_of_yojson _field_yojson in
214- enable_field := Ppx_yojson_conv_lib.Option. Some fvalue
215- | Ppx_yojson_conv_lib.Option. Some _ ->
216- duplicates := field_name :: Ppx_yojson_conv_lib. ( ! ) duplicates)
217- | _ -> () );
218- iter tail
219- | [] -> ()
220- in
221- iter field_yojsons;
222- (match Ppx_yojson_conv_lib. ( ! ) duplicates with
223- | _ :: _ ->
224- Ppx_yojson_conv_lib.Yojson_conv_error. record_duplicate_fields
225- _tp_loc
226- (Ppx_yojson_conv_lib. ( ! ) duplicates)
227- yojson
228- | [] ->
229- (match Ppx_yojson_conv_lib. ( ! ) extra with
230- | _ :: _ ->
231- Ppx_yojson_conv_lib.Yojson_conv_error. record_extra_fields
232- _tp_loc
233- (Ppx_yojson_conv_lib. ( ! ) extra)
234- yojson
235- | [] ->
236- let enable_value = Ppx_yojson_conv_lib. ( ! ) enable_field in
237- { enable =
238- (match enable_value with
239- | Ppx_yojson_conv_lib.Option. None -> true
240- | Ppx_yojson_conv_lib.Option. Some v -> v)
241- }))
242- | _ as yojson ->
243- Ppx_yojson_conv_lib.Yojson_conv_error. record_list_instead_atom _tp_loc yojson
244- : Ppx_yojson_conv_lib.Yojson.Safe. t -> t)
212+ let rec iter =
213+ function
214+ | (field_name , _field_yojson )::tail ->
215+ ((match field_name with
216+ | "enable" ->
217+ (match Ppx_yojson_conv_lib. (! ) enable_field with
218+ | Ppx_yojson_conv_lib.Option. None ->
219+ let fvalue = bool_of_yojson _field_yojson in
220+ enable_field :=
221+ (Ppx_yojson_conv_lib.Option. Some fvalue)
222+ | Ppx_yojson_conv_lib.Option. Some _ ->
223+ duplicates := (field_name ::
224+ (Ppx_yojson_conv_lib. (! ) duplicates)))
225+ | "forNestedBindings" ->
226+ (match Ppx_yojson_conv_lib. (! ) for_nested_bindings_field
227+ with
228+ | Ppx_yojson_conv_lib.Option. None ->
229+ let fvalue = bool_of_yojson _field_yojson in
230+ for_nested_bindings_field :=
231+ (Ppx_yojson_conv_lib.Option. Some fvalue)
232+ | Ppx_yojson_conv_lib.Option. Some _ ->
233+ duplicates := (field_name ::
234+ (Ppx_yojson_conv_lib. (! ) duplicates)))
235+ | _ -> () );
236+ iter tail)
237+ | [] -> () in
238+ (iter field_yojsons;
239+ (match Ppx_yojson_conv_lib. (! ) duplicates with
240+ | _ ::_ ->
241+ Ppx_yojson_conv_lib.Yojson_conv_error. record_duplicate_fields
242+ _tp_loc (Ppx_yojson_conv_lib. (! ) duplicates) yojson
243+ | [] ->
244+ (match Ppx_yojson_conv_lib. (! ) extra with
245+ | _ ::_ ->
246+ Ppx_yojson_conv_lib.Yojson_conv_error. record_extra_fields
247+ _tp_loc (Ppx_yojson_conv_lib. (! ) extra) yojson
248+ | [] ->
249+ let (enable_value, for_nested_bindings_value) =
250+ ((Ppx_yojson_conv_lib. (! ) enable_field),
251+ (Ppx_yojson_conv_lib. (! ) for_nested_bindings_field)) in
252+ {
253+ enable =
254+ ((match enable_value with
255+ | Ppx_yojson_conv_lib.Option. None -> true
256+ | Ppx_yojson_conv_lib.Option. Some v -> v));
257+ for_nested_bindings =
258+ ((match for_nested_bindings_value with
259+ | Ppx_yojson_conv_lib.Option. None -> false
260+ | Ppx_yojson_conv_lib.Option. Some v -> v))
261+ })))
262+ | _ as yojson ->
263+ Ppx_yojson_conv_lib.Yojson_conv_error. record_list_instead_atom _tp_loc
264+ yojson : Ppx_yojson_conv_lib.Yojson.Safe. t -> t)
245265 ;;
246266
247267 let _ = t_of_yojson
248268
249- let yojson_of_t =
250- (function
251- | { enable = v_enable } ->
269+
270+ let yojson_of_t =
271+ (function
272+ | { enable = v_enable ; for_nested_bindings = v_for_nested_bindings } ->
252273 let bnds : (string * Ppx_yojson_conv_lib.Yojson.Safe.t) list = [] in
253274 let bnds =
254- let arg = yojson_of_bool v_enable in
255- (" enable " , arg) :: bnds
256- in
257- `Assoc bnds
258- : t -> Ppx_yojson_conv_lib.Yojson.Safe. t)
275+ let arg = yojson_of_bool v_for_nested_bindings in
276+ (" forNestedBindings " , arg) :: bnds in
277+ let bnds =
278+ let arg = yojson_of_bool v_enable in ( " enable " , arg) :: bnds in
279+ `Assoc bnds : t -> Ppx_yojson_conv_lib.Yojson.Safe. t)
259280 ;;
260281
261282 let _ = yojson_of_t
@@ -921,7 +942,7 @@ let _ = yojson_of_t
921942[@@@ end]
922943
923944let default =
924- { codelens = Some { enable = false }
945+ { codelens = Some { enable = false ; for_nested_bindings = false }
925946 ; extended_hover = Some { enable = false }
926947 ; standard_hover = Some { enable = true }
927948 ; inlay_hints =
0 commit comments