Open
Description
Expected/Actual behavior
There appear to be several issues with the implementation of cljr--promote-function-literal
(the #() -> fn
case of cljr-promote-function)
- Throws a "unbalanced parantheses" error when the #() form is at top level
#(foo %)
- Does not support certain combinations of nested forms and multiple % args
(comment
#(foo % (bar %2))
)
;; =>
(comment
(fn [a] (foo a (bar a2)))
)
- Enters a loop when a string contains "%"
(comment
#(str "%%" %)
)
I've proposed an alternative implementation of this feature in clojure-emacs/clojure-mode#601.
The cljr-promote-function
command could delegate to it in the #()->fn
case, replacing the current implementation while keeping the fn->defn
logic.
Environment & Version information
clj-refactor.el version information
3.0.0alpha13
CIDER version information
;; CIDER 1.2.0snapshot, nREPL 0.8.3
;; Clojure 1.10.3, Java 13.0.2
Leiningen or Boot version
Emacs version
28.1
Operating system
macOS
Metadata
Assignees
Labels
No labels