package comby-kernel

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

Source file replacement.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
40
41
42
open Core_kernel

open Match

type t =
  { range : range
  ; replacement_content : string
  ; environment : environment
  }
[@@deriving yojson]

type result =
  { rewritten_source : string
  ; in_place_substitutions : t list
  }
[@@deriving yojson]

let empty_result =
  { rewritten_source = ""
  ; in_place_substitutions = []
  }
[@@deriving yojson]

let to_json ?path ?replacements ?rewritten_source ~diff () =
  let uri =
    match path with
    | Some path -> `String path
    | None -> `Null
  in
  match replacements, rewritten_source with
  | Some replacements, Some rewritten_source ->
    `Assoc
      [ "uri", uri
      ; "rewritten_source", `String rewritten_source
      ; "in_place_substitutions", `List (List.map ~f:to_yojson replacements)
      ; "diff", `String diff
      ]
  | _ ->
    `Assoc
      [ "uri", uri
      ; "diff", `String diff
      ]
OCaml

Innovation. Community. Security.