@@ -3358,12 +3358,18 @@ See: https://github.com/clojure-emacs/clj-refactor.el/wiki/cljr-create-fn-from-e
3358
3358
(cljr--insert-example-fn fn-name args path)))
3359
3359
(cljr--insert-example-fn fn-name args path))))
3360
3360
3361
+ (defun cljr--inflect-last-word (f s )
3362
+ (let* ((words (s-split " -" s))
3363
+ (last-word (-last-item words))
3364
+ (prefix (-butlast words)))
3365
+ (s-join " -" (-concat prefix (list (funcall f last-word))))))
3366
+
3361
3367
(defun cljr--create-fn-from-list-fold (args path )
3362
3368
(cljr--insert-example-fn (car args)
3363
3369
(seq-map
3364
3370
(lambda (it )
3365
3371
(when-let (name (cljr--guess-param-name it))
3366
- (inflection-singularize-string name)))
3372
+ (cljr--inflect-last-word ' inflection-singularize-string name)))
3367
3373
(cdr args))
3368
3374
path))
3369
3375
@@ -3373,7 +3379,7 @@ See: https://github.com/clojure-emacs/clj-refactor.el/wiki/cljr-create-fn-from-e
3373
3379
(seq-map
3374
3380
(lambda (it )
3375
3381
(when-let (name (cljr--guess-param-name it))
3376
- (inflection-singularize-string name)))
3382
+ (cljr--inflect-last-word ' inflection-singularize-string name)))
3377
3383
(cdr args)))
3378
3384
path))
3379
3385
@@ -3398,7 +3404,7 @@ See: https://github.com/clojure-emacs/clj-refactor.el/wiki/cljr-create-fn-from-e
3398
3404
(defun cljr--create-fn-from-sort (args path )
3399
3405
(let* ((fn-name (cider-symbol-at-point))
3400
3406
(param-name (when-let (coll-name (cljr--guess-param-name (car (last args))))
3401
- (inflection-singularize-string coll-name))))
3407
+ (cljr--inflect-last-word ' inflection-singularize-string coll-name))))
3402
3408
(cljr--insert-example-fn fn-name
3403
3409
(if param-name
3404
3410
(list (concat param-name " -a" )
@@ -3414,7 +3420,7 @@ See: https://github.com/clojure-emacs/clj-refactor.el/wiki/cljr-create-fn-from-e
3414
3420
(when (cljr--keywordp (car args))
3415
3421
(string-remove-prefix " :" (car args)))
3416
3422
(when-let (coll-name (cljr--guess-param-name (car (last args))))
3417
- (inflection-singularize-string coll-name)))))
3423
+ (cljr--inflect-last-word ' inflection-singularize-string coll-name)))))
3418
3424
(cljr--insert-example-fn fn-name
3419
3425
(if making-comparator?
3420
3426
(if param-name
@@ -3431,7 +3437,7 @@ See: https://github.com/clojure-emacs/clj-refactor.el/wiki/cljr-create-fn-from-e
3431
3437
(cljr--guess-param-name (nth 1 args)))
3432
3438
" acc" )
3433
3439
(when-let (name (cljr--guess-param-name (car (last args))))
3434
- (inflection-singularize-string name)))
3440
+ (cljr--inflect-last-word ' inflection-singularize-string name)))
3435
3441
path))
3436
3442
3437
3443
(defun cljr--unwind-and-extract-this-as-list (name )
@@ -3523,7 +3529,7 @@ and make the whole string lower-cased."
3523
3529
(inflection-pluralize-string
3524
3530
(cljr--guess-param-name (cljr--last-arg-s prepped-form))))
3525
3531
((member fn-call cljr--fns-that-get-item-out-of-coll)
3526
- (inflection-singularize-string
3532
+ (cljr--inflect-last-word ' inflection-singularize-string
3527
3533
(cljr--guess-param-name (cljr--first-arg-s prepped-form)))))))
3528
3534
3529
3535
(defvar cljr--semantic-noops--first-position
0 commit comments