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/ripgrep.ml.html
Source file ripgrep.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
open Core open Lwt let debug = Sys.getenv "DEBUG_COMBY" |> Option.is_some let run ~pattern ~args = let options = ["--files-with-matches"; "--multiline"] in let pattern = Format.sprintf {|'%s'|} pattern in let command = ("rg" :: options @ args @ [pattern]) |> String.concat ~sep:" " in if debug then Format.printf "Executing: %s@." command; let lwt_command = Lwt_process.shell command in let recv proc = let ic = proc#stdout in Lwt.finalize (fun () -> Lwt_io.read ic) (fun () -> Lwt_io.close ic) in let f () = Lwt_process.with_process_in lwt_command (fun proc -> recv proc >>= fun result -> proc#status >>= function | WEXITED v when v = 1 -> return (Ok None) (* no matches *) | WEXITED v when v <> 0 -> return @@ Or_error.errorf "Error executing rg, exit status %d." v | _ -> return (Ok (Some (String.split ~on:'\n' result |> List.filter ~f:(String.(<>) ""))))) in try Lwt_main.run (f ()) with Sys.Break -> exit 0
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>