package comby

  1. Overview
  2. Docs
A tool for structural code search and replace that supports ~every language

Install

dune-project
 Dependency

Authors

Maintainers

Sources

1.4.0.tar.gz
md5=58295a68289d68231cb3c9e0377e44ef
sha512=3f0154f26cc6016c12f57d0b8e43da32b9329572bf67fb5719008eaf3377b8d5a2ab6f775ffe8d16bc85f2c4db52f567ef64da52ccb77d6ba8e496a0dc9eddf7

doc/src/comby.patdiff_kernel/hunks.ml.html

Source file hunks.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
open! Core_kernel
open! Import

type t = string Patience_diff.Hunk.t list [@@deriving sexp_of]

let iter' ~f_hunk_break ~f_line (hunks : t) =
  List.iter hunks ~f:(fun hunk ->
    f_hunk_break hunk;
    List.iter hunk.ranges ~f:(function
      | Same r -> Array.iter r ~f:(fun (_, next) -> f_line next)
      | Prev r | Next r | Unified r -> Array.iter r ~f:f_line
      | Replace (ar1, ar2) ->
        Array.iter ar1 ~f:f_line;
        Array.iter ar2 ~f:f_line))
;;

let iter ~f_hunk_break ~f_line (hunks : t) =
  iter' ~f_line hunks ~f_hunk_break:(fun hunk ->
    f_hunk_break (hunk.prev_start, hunk.prev_size) (hunk.next_start, hunk.next_size))
;;
OCaml

Innovation. Community. Security.