Skip to content

refactor-nrepl 3.0

Latest
Compare
Choose a tag to compare
@bbatsov bbatsov released this 26 Oct 06:04
· 81 commits to master since this release

Changes

  • (Part of #230): Parallelize various functionality
    • This will have a noticeable improvement in e.g. clj-refactor.el's cljr-slash performance.
  • #291: The :ignore-errors option will be honored in more places, making refactor-nrepl more robust in face of files not particularly meant to be part of the AST corpus.
    • Examples: WIP files, Moustache template files, scripts.
  • Upgrade Orchard
  • Upgrade rewrite-clj
    • This fixes some features such as rename-file-or-dir.
  • Reliability improvement: try using require prior to find-ns
    • This increases the chances that a namespace will be found, which in turns makes refactor-nrepl more complete/accurate.
  • Replace Cheshire with clojure.data.json
  • Build ASTs more robustly (by using locks, require, and ruling out certain namespaces like refactor-nrepl itself)
  • Improve namespace-aliases performance and make it return more accurate results.
  • Honor internal future-cancel calls, improving overall responsiveness and stability.

Bugs fixed

  • #335: Strengthen resolve-missing against various edge cases.
  • #289: Fix an edge-case with involving keywords that caused find-symbol to crash.
  • #305: Don't put :as or :refer on their own lines in the ns form, when the libspec is so long it causes the line to wrap.
  • clojure-emacs/clj-refactor.el#459: clean-ns should conform to the style guide: (:require in the ns form should be followed by a newline.
    • You can opt out via the new :insert-newline-after-require configuration option.
  • #294: Properly skip uneval nodes when looking for the first/last sexp
  • From now on, if you set the clojure.tools.namespace.repl/refresh-dirs, files outside said refresh-dirs won't be analyzed, resulting in safer, more efficient analysis.