@@ -323,31 +323,6 @@ let find_model_plugin plugin name =
323
323
)
324
324
with Not_found -> Dune_plugin plugin
325
325
326
- let parse_plugin_opt s =
327
- match String. rindex s '.' with
328
- | exception Not_found ->
329
- Some
330
- { extension_name = s
331
- ; typing_plugin = Dune_plugin s
332
- ; model_plugin = Dune_plugin s }
333
- | pos ->
334
- let extension_name = String. sub s 0 pos in
335
- let plugin_kind = String. sub s (pos + 1 ) (String. length s - pos - 1 ) in
336
- match plugin_kind with
337
- | "typing" ->
338
- Some
339
- { extension_name
340
- ; typing_plugin = find_typing_plugin s extension_name
341
- ; model_plugin = Unavailable }
342
- | "model" ->
343
- Some
344
- { extension_name
345
- ; typing_plugin = Unavailable
346
- ; model_plugin = find_model_plugin s extension_name }
347
- | _ ->
348
- (* Ignore plugins that do not conform to naming conventions *)
349
- None
350
-
351
326
let merge_extension e1 e2 =
352
327
assert (e1.extension_name = e2.extension_name);
353
328
let typing_plugin = merge_plugin e1.typing_plugin e2.typing_plugin
@@ -388,13 +363,23 @@ let builtin_extensions =
388
363
(List. rev_append builtin_typing_extensions builtin_model_extensions)
389
364
390
365
let all_extensions, invalid_extensions =
391
- let add_plugin ok err n = function
392
- | None -> ok, n :: err
393
- | Some p -> p :: ok, err
366
+ let add_plugin ok err plugin = function
367
+ | None -> ok, plugin :: err
368
+ | Some (extension_name , k ) ->
369
+ let typing_plugin =
370
+ match k with
371
+ | None | Some `Typing -> Dune_plugin plugin
372
+ | Some _ -> Unavailable
373
+ and model_plugin =
374
+ match k with
375
+ | None | Some `Model -> Dune_plugin plugin
376
+ | Some _ -> Unavailable
377
+ in
378
+ { extension_name ; typing_plugin ; model_plugin } :: ok, err
394
379
in
395
380
let ok, err =
396
381
List. fold_left (fun (ok , err ) e ->
397
- add_plugin ok err e @@ parse_plugin_opt e
382
+ add_plugin ok err e @@ parse_ext_opt e
398
383
) (builtin_extensions, [] ) (Dolmen.Sites.Plugins.Plugins. list () )
399
384
in
400
385
merge_extensions ok, List. fast_sort String. compare err
@@ -409,18 +394,6 @@ let pp_extension ppf e =
409
394
Fmt. pf ppf " %s@ %a" e.extension_name
410
395
Fmt. (parens @@ list ~sep: comma string ) variants
411
396
412
- let pp_plugin ppf (n , p ) =
413
- match p with
414
- | None ->
415
- Fmt. pf ppf " %s@ %a" n
416
- (Fmt. styled `Bold @@ Fmt. styled (`Fg (`Hi `Magenta )) @@ Fmt. string )
417
- " IGNORED"
418
- | Some p -> pp_extension ppf p
419
-
420
- let pp_kind ppf = function
421
- | `Typing -> Fmt. pf ppf " typing"
422
- | `Model -> Fmt. pf ppf " model"
423
-
424
397
let find_ext name =
425
398
try Ok (List. find (fun e -> e.extension_name = name) all_extensions)
426
399
with Not_found ->
0 commit comments