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