[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/evil-numbers 84bb03cb51 037/145: Add incremental increasin
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/evil-numbers 84bb03cb51 037/145: Add incremental increasing like `g C-a' in vim |
Date: |
Thu, 6 Jan 2022 03:00:17 -0500 (EST) |
branch: elpa/evil-numbers
commit 84bb03cb51fc571f667715032c4835c5e148643d
Author: Jan Path <mail@jpath.de>
Commit: Jan Path <mail@jpath.de>
Add incremental increasing like `g C-a' in vim
---
evil-numbers.el | 28 +++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/evil-numbers.el b/evil-numbers.el
index eb7c5dbb1e..b574033607 100644
--- a/evil-numbers.el
+++ b/evil-numbers.el
@@ -59,7 +59,7 @@
;;; Code:
;;;###autoload
-(defun evil-numbers/inc-at-pt (amount &optional no-region)
+(defun evil-numbers/inc-at-pt (amount &optional no-region &optional
incremental)
"Increment the number at point or after point before end-of-line by `amount'.
When region is selected, increment all numbers in the region by `amount'
@@ -67,18 +67,23 @@ NO-REGION is internal flag that allows
`evil-numbers/inc-at-point' to be called recursively when
applying the regional features of `evil-numbers/inc-at-point'.
+INCREMENTAL causes the first number to be increased by 1*amount, the second by
+2*amount and so on.
+
"
(interactive "p*")
(cond
((and (not no-region) (region-active-p))
(let (deactivate-mark
(rb (region-beginning))
- (re (region-end)))
+ (re (region-end))
+ (count 1))
(save-excursion
(save-match-data
(goto-char rb)
(while (re-search-forward
"\\(?:0\\(?:[Bb][01]+\\|[Oo][0-7]+\\|[Xx][0-9A-Fa-f]+\\)\\|-?[0-9]+\\)" re t)
- (evil-numbers/inc-at-pt amount 'no-region)
+ (evil-numbers/inc-at-pt (* amount count) 'no-region)
+ (if incremental (setq count (+ count 1)))
;; Undo vim compatability.
(forward-char 1)))))
(setq deactivate-mark t))
@@ -121,6 +126,23 @@ This function uses `evil-numbers/inc-at-pt'"
(interactive "p*")
(evil-numbers/inc-at-pt (- amount)))
+;;;###autoload
+(defun evil-numbers/inc-at-pt-incremental (amount)
+ "Increment the number at point or after point before end-of-line by `amount'.
+
+If a region is active, increment all the numbers at a point by `amount'*n,
where
+`n' is the index of the number among the numbers in the region, starting at 1.
+That is increment the first number by `amount', the second by 2*`amount', and
so
+on."
+ (interactive "p*")
+ (evil-numbers/inc-at-pt amount nil 'incremental))
+
+;;;###autoload
+(defun evil-numbers/dec-at-pt-incremental (amount)
+ "Like `evil-numbers/inc-at-pt-incremental' but with negated argument
`amount'"
+ (interactive "p*")
+ (evil-numbers/inc-at-pt-incremental (- amount)))
+
;;; utils
(defun evil-numbers/search-number ()
- [nongnu] branch elpa/evil-numbers created (now 08f0c1ee93), ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 82f9d7c702 002/145: Search for number at point or after point (until end of line)., ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 38e17cb47f 026/145: Allow region processing., ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 6c6441e39e 015/145: Fix install docs., ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers cdfb3cb83c 017/145: Cursor position adjustment after inc/dec, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 84bb03cb51 037/145: Add incremental increasing like `g C-a' in vim,
ELPA Syncer <=
- [nongnu] elpa/evil-numbers 23c0a48b62 033/145: Add contributors section., ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 8834eb2e8b 034/145: Bump to 0.4, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 5ec72e6cb5 032/145: Add visual state key documentation., ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers b1ba250f98 078/145: Cleanup: reduce right shift, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 027f8d586c 080/145: Fix #18 operating on bin/hex/octal failed w/ the cursor at the start, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 7ca411f4ac 100/145: CHANGELOG: use fullstops, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 8403eeb125 097/145: Correct oversight in 299e0418caa43cb7c15dd21d2dd40b75b147990f, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers af088b7107 107/145: Cleanup: < 80 chars, reduce right shift, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 407d62222e 126/145: Add separator character support (issue #23), ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers d5c40d2bd1 118/145: Cleanup: docstring line wrapping, ELPA Syncer, 2022/01/06