package comby
A tool for structural code search and replace that supports ~every language
Install
Dune Dependency
Authors
Maintainers
Sources
comby-kernel.1.7.0.tar.gz
md5=ee6556d8bd9b25ed0445ebe23862e48a
sha512=e6386c8ce5ef14bbcab2b0ead5b1edc39375438f56330d5f02e81e467afe6623a7e299f97f26008d77bbc62850c6dc63a7cbe5b81671b5183ff3adeee5946bb3
doc/src/comby.configuration/diff_configuration.ml.html
Source file diff_configuration.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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
open Core (* This is the default patdiff configuration, except whitespace is toggled to true. See patdiff/lib/configuration record for options.*) let default context = Format.sprintf {|;; -*- scheme -*- ;; patdiff Configuration file ( (context %d) (line_same ((prefix ((text " |") (style ((bg bright_black) (fg black))))))) (keep_whitespace true) (line_old ((prefix ((text "-|") (style ((bg red)(fg black))))) (style ((fg red))) (word_same (dim)))) (line_new ((prefix ((text "+|") (style ((bg green)(fg black))))) (style ((fg green))))) (line_unified ((prefix ((text "!|") (style ((bg yellow)(fg black))))))) (header_old ((prefix ((text "------ ") (style ((fg red))))) (style (bold)))) (header_new ((prefix ((text "++++++ ") (style ((fg green))))) (style (bold)))) (hunk ((prefix ((text "@|") (style ((bg bright_black) (fg black))))) (suffix ((text " ============================================================") (style ()))) (style (bold)))) )|} context let terminal ?(context = 16) () = Patdiff.Configuration.On_disk.t_of_sexp (Sexp.of_string (default context)) |> Patdiff.Configuration.parse let diff_configuration = {|;; -*- scheme -*- ;; patdiff Configuration file ( (context 1) (line_same ((prefix ((text " |") (style ((bg bright_black) (fg black))))))) (line_old ((prefix ((text "-|") (style ((bg red)(fg black))))) (style ((fg red))) (word_same (dim)))) (line_new ((prefix ((text "+|") (style ((bg green)(fg black))))) (style ((fg green))))) (line_unified ((prefix ((text "!|") (style ((bg yellow)(fg black))))))) (header_old ((prefix ((text "------ ") (style ((fg red))))) (style (bold)))) (header_new ((prefix ((text "++++++ ") (style ((fg green))))) (style (bold)))) (hunk ((prefix ((text "@|") (style ((bg bright_black) (fg black))))) (suffix ((text " =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=") (style ()))) (style (bold)))) )|} let match_diff () = Patdiff.Configuration.On_disk.t_of_sexp (Sexp.of_string diff_configuration) |> Patdiff.Configuration.parse (* Needs (unrefined true), otherwise it just prints without colors. Unrefined true will diff on a line basis. line_unified is ignored for unrefined, but will still create a prefix width of 2 in the diff if it is "!|" *) let plain_configuration = {|;; -*- scheme -*- ;; patdiff Configuration file ( (context 3) ;; unrefined: output every changed line. unrefined false will merge + and - lines if they are similar. (unrefined true) (line_same ((prefix ((text " ") (style ()))))) (line_old ((prefix ((text "-") (style ()))) (style ()) (word_same (dim)))) (line_new ((prefix ((text "+") (style ()))) (style ()))) (header_old ((prefix ((text "--- ") (style ()))) (style ()))) (header_new ((prefix ((text "+++ ") (style ()))) (style ()))) (hunk ((prefix ((text "@@ ") (style ()))) (suffix ((text " @@") (style ()))) (style ()))) ) |} let plain () = Patdiff.Configuration.On_disk.t_of_sexp (Sexp.of_string plain_configuration) |> Patdiff.Configuration.parse type kind = | Plain | Colored | Html | Default | Match_only let get_diff kind source_path source_content result = let open Patdiff in let source_path = match source_path with | Some path -> path | None -> "/dev/null" in let configuration = match kind with | Plain -> plain () | Colored | Html | Default -> terminal ~context:3 () | Match_only -> match_diff () in let prev = Patdiff.Diff_input.{ name = source_path; text = source_content } in let next = Patdiff.Diff_input.{ name = source_path; text = result } in Compare_core.diff_strings ~print_global_header:true configuration ~prev ~next |> function | `Different diff -> Some diff | `Same -> None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>