Liking cljdoc? Tell your friends :D

rewrite-indented

Library to read and write indented texts.

GitHub Actions for test workflow GitHub Actions for lint workflow

Clojars Project

Usage

(require '[rewrite-indented.zip :as z])
;; => nil

(-> (z/of-string "foo\n  TARGET\n    bar")
    (z/find-next-string #(= "TARGET" %))
    (z/update (constantly "hello"))
    (z/root-string))
;; => "foo\n  hello\n    bar"

(loop [zloc (z/of-string "first\n  TARGET\n    foo\nsecond\n  TARGET\n    bar")]
  (if-let [zloc (z/find-next-string zloc #(= "TARGET" %))]
    (recur
     (cond-> zloc
       (z/find-ancestor-string zloc #(= "second" %))
       (z/update (constantly "hello"))

       :always
       (z/next)))
    (z/root-string zloc)))
;; => "first\n  TARGET\n    foo\nsecond\n  hello\n    bar"

License

Copyright © 2022 Masashi Iizuka

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.

This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close