Skip to content

Commit 435515e

Browse files
committed
[Fix #313] pf doesn't understand varargs
No tests are added because of a long standing bug in the test framework where use of `%s` triggers a 'wrong number of args passed to format' error.
1 parent f5c8f17 commit 435515e

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
- [#299](https://github.com/clojure-emacs/clj-refactor.el/issues/299) `ml` moves cursor
1818
- [#309](https://github.com/clojure-emacs/clj-refactor.el/issues/309) `am` creates alias for fully-qualified symbols.
19+
- [#313](https://github.com/clojure-emacs/clj-refactor.el/issues/313) teach `pf` about function literals using `%&`.
1920
- [#320](https://github.com/clojure-emacs/clj-refactor.el/issues/320) `*data-readers*` ignored when searching for macros.
2021

2122
## 2.2.0

clj-refactor.el

+4-2
Original file line numberDiff line numberDiff line change
@@ -2617,10 +2617,12 @@ See: https://github.com/clojure-emacs/clj-refactor.el/wiki/cljr-update-project-d
26172617
(cljr--goto-fn-definition)
26182618
(let ((fn-start (point))
26192619
var replacement)
2620-
(while (re-search-forward "%[1-9]?" (cljr--point-after 'paredit-forward) t)
2620+
(while (re-search-forward "%[1-9&]?" (cljr--point-after 'paredit-forward) t)
26212621
(setq var (buffer-substring (point) (cljr--point-after 'paredit-backward)))
26222622
(setq replacement (read-string (format "%s => " var)))
2623-
(cljr--append-fn-parameter replacement)
2623+
(cljr--append-fn-parameter (if (string= "%&" var)
2624+
(format "& %s" replacement)
2625+
replacement))
26242626
(goto-char (1+ fn-start))
26252627
(let ((end (cljr--point-after '(paredit-forward-up 2))))
26262628
(while (re-search-forward (format "\\s-%s\\(\\s-\\|\\|\n)\\)" var)

0 commit comments

Comments
 (0)