Open yuhan0 opened 2 years ago
There appear to be several issues with the implementation of cljr--promote-function-literal (the #() -> fn case of cljr-promote-function)
cljr--promote-function-literal
#() -> fn
#(foo %)
(comment #(foo % (bar %2)) )
;; =>
(comment (fn [a] (foo a (bar a2))) )
- Enters a loop when a string contains "%" ```clj (comment #(str "%%" %) )
I've proposed an alternative implementation of this feature in https://github.com/clojure-emacs/clojure-mode/pull/601.
The cljr-promote-function command could delegate to it in the #()->fn case, replacing the current implementation while keeping the fn->defn logic.
cljr-promote-function
#()->fn
fn->defn
3.0.0alpha13
;; CIDER 1.2.0snapshot, nREPL 0.8.3 ;; Clojure 1.10.3, Java 13.0.2
28.1
macOS
Fine by me. PR welcome!
Expected/Actual behavior
There appear to be several issues with the implementation of
cljr--promote-function-literal
(the#() -> fn
case of cljr-promote-function);; =>
(comment (fn [a] (foo a (bar a2))) )
I've proposed an alternative implementation of this feature in https://github.com/clojure-emacs/clojure-mode/pull/601.
The
cljr-promote-function
command could delegate to it in the#()->fn
case, replacing the current implementation while keeping thefn->defn
logic.Environment & Version information
clj-refactor.el version information
3.0.0alpha13
CIDER version information
Leiningen or Boot version
Emacs version
28.1
Operating system
macOS