A library that reads and writes Clojure, ClojureScript and EDN from Clojure and ClojureScript in a whitespace and comment preserving way.
Warning: v1 Alpha Release
Our first rewrite-clj v1 alpha release was in March of 2021.
Since then we have seen wide and successful adoption of rewrite-clj v1 with no show-stoppers.
I would drop the alpha status but have not yet seen the following features get a good shake yet in the wild:
-
zippers with
:track-position?
enabled -
zippers using
:auto-resolve
support -
paredit API
Some projects using rewrite-clj v1
-
ancient-clj π₯ - Version Metadata Retrieval for Maven Artifacts
-
antq π₯ - Point out your outdated dependencies
-
babashka π - Native, fast starting Clojure interpreter for scripting
-
carve π₯ - Carve out the essentials of your Clojure app
-
clerk π₯ - Local-First Notebooks for Clojure
-
cljfmt π₯ - A tool for formatting Clojure code
-
cljstyle π₯ - A tool for formatting Clojure code
-
clojure-lsp π₯ - Language Server (LSP) for Clojure
-
kusonga π₯ - Renaming and moving namespaces in Clojure(script)
-
refactor-nrepl π₯ - nREPL middleware to support refactorings in an editor agnostic way
-
rewrite-edn π₯ - Utility lib on top of rewrite-clj with common operations to update EDN while preserving whitespace and comments
-
test-doc-blocks π₯ - Test AsciiDoc and CommonMark code blocks found in articles and docstrings
-
umschreiben-clj π₯ - Rewrite utilities for refactoring clojure files
-
zprint π₯ - Executables, uberjar, and library to beautifully format Clojure and Clojurescript source code and s-expressions
Some projects using rewrite-clj v0 and/or rewrite-cljs
-
depot π₯ π©Ή - Find newer versions of your dependencies in your deps.edn file
-
kibit π₯ - Thereβs a function for that!
-
lein-ancient π₯ - Check your Projects for outdated Dependencies
-
mranderson π₯ - Dependency inlining and shadowing
-
mutant π₯ - Mutation testing for Clojure
-
repl-tooling π - a base package for Clojureβs editor tooling
-
update-leiningen-dependencies-skill π - Track project.clj dependencies across different projects
Have an update? Let us know!
π₯ canary tested against rewrite-clj v1 lib test suite
π©Ή source required minor change to work with rewrite-clj v1
π no easy-peasy way to run automated unit tests found for this project
Rewrite-clj versioning scheme is: major
.minor
.patch
-test-qualifier
-
major
increments when a non alpha release API has been broken - something, as a rule, weβd like to avoid. -
minor
increments to convey significant new features have been added. -
patch
indicates bug fixes - it is the total number of commits in the repo. -
test-qualifier
is absent for stable releases. Can bealpha
,beta
,rc1
, etc.
We honor the original MIT license from rewrite-clj v0.
Code has been merged/adapted from:
-
clojure zip which is covered by Eclipse Public License 1.0