[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/evil-numbers 5356111930 077/145: Cleanup: avoid let bindin
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/evil-numbers 5356111930 077/145: Cleanup: avoid let binding to set default values for arguments |
Date: |
Thu, 6 Jan 2022 03:00:20 -0500 (EST) |
branch: elpa/evil-numbers
commit 535611193000deb27870df627a906a32cb84cf43
Author: Campbell Barton <ideasman42@gmail.com>
Commit: Campbell Barton <ideasman42@gmail.com>
Cleanup: avoid let binding to set default values for arguments
Avoids right-shift.
---
evil-numbers.el | 201 ++++++++++++++++++++++++++++----------------------------
1 file changed, 101 insertions(+), 100 deletions(-)
diff --git a/evil-numbers.el b/evil-numbers.el
index 2a42d2cdc7..994fdedff5 100644
--- a/evil-numbers.el
+++ b/evil-numbers.el
@@ -130,106 +130,107 @@ is enabled, i.e. increasing a negative number to a
positive will result in a
number with a + sign."
:motion nil
(interactive "*<c><R>")
- (let ((amount (or amount 1))
- (padded (if (consp padded) (car padded)
- (funcall
- (if padded #'not (lambda (x) x))
- evil-numbers/padDefault))))
- (cond
- ((and beg end type)
- (let ((count 1))
- (save-excursion
- (save-match-data
- (funcall
- (if (eq type 'block)
- (lambda (f) (evil-apply-on-block f beg end nil))
- (lambda (f) (funcall f beg end)))
- (lambda (beg end)
- (evil-with-restriction beg end
- (while (re-search-forward
"\\(?:0\\(?:[Bb][01]+\\|[Oo][0-7]+\\|[Xx][0-9A-Fa-f]+\\)\\|[+-]?[0-9]+\\|[⁻⁺]?[⁰¹²³⁴⁵⁶⁷⁸⁹]\\|[₋₊]?[₀₁₂₃₄₅₆₇₈₉]\\)"
nil t)
- ;; Backward char, to cancel out the forward-char below. We
need
- ;; this, as `re-search-forwards' puts us behind the match.
- (backward-char)
- (evil-numbers/inc-at-pt (* amount count) nil nil nil)
- (if incremental (setq count (+ count 1)))
- ;; Undo VIM compatibility.
- (forward-char 1)))))))))
- (t
- (save-match-data
- ;; forward-char, so that we do not match the number directly behind us.
- (forward-char)
- (if (not (evil-numbers--search-number))
- (error "No number at point or until end of line")
- (let ((replace-with
- (lambda (from to)
- (skip-chars-backward
- (funcall from "0123456789"))
- (skip-chars-backward
- (funcall from "+-") (- (point) 1))
- (when (looking-at
- (format
- "[%s]?\\([%s]+\\)"
- (funcall from "-+")
- (funcall from "0123456789")))
- (replace-match
- (funcall
- from
- (let* ((padded
- (or padded
- (eq ?0 (string-to-char (match-string 1)))))
- (input (string-to-number
- (funcall to (match-string 0))))
- (output (+ amount input))
- (len (- (match-end 0) (match-beginning 0)))
- (signed (and
- (memq (string-to-char (match-string 0))
- (funcall from '(?+ ?-)))
- (or padded (>= input 0)))))
- (format
- (format "%%%s0%dd"
- (if signed "+" "")
- (if padded len 0))
- output))))
- ;; Moves point one position back to conform with VIM
- (forward-char -1)
- t))))
- (or
- ;; Find binary literals.
- (evil-numbers--search-and-replace "0[bB][01]+" "01" "\\([01]+\\)"
amount 2)
-
- ;; Find octal literals.
- (evil-numbers--search-and-replace "0[oO][0-7]+" "01234567"
"\\([0-7]+\\)" amount 8)
-
- ;; Find hex literals.
- (evil-numbers--search-and-replace "0[xX][0-9a-fA-F]*"
- "0123456789abcdefABCDEF"
- "\\([0-9a-fA-F]+\\)" amount 16)
-
- ;; Find superscript literals.
- (funcall
- replace-with
- (lambda (x)
- (evil-numbers--translate-with-alist
- evil-numbers--superscript-alist x))
- (lambda (x)
- (evil-numbers--translate-with-alist
- (evil-numbers--swap-alist evil-numbers--superscript-alist)
- x)))
-
- ;; Find subscript literals.
- (funcall
- replace-with
- (lambda (x)
- (evil-numbers--translate-with-alist
- evil-numbers--subscript-alist x))
- (lambda (x)
- (evil-numbers--translate-with-alist
- (evil-numbers--swap-alist evil-numbers--subscript-alist)
- x)))
-
- ;; Find normal decimal literals.
- (funcall replace-with (lambda (x) x) (lambda (x) x))
- (error "No number at point or until end of line")))))))))
+
+ (setq amount (or amount 1))
+ (setq padded (if (consp padded)
+ (car padded)
+ (funcall (if padded #'not (lambda (x) x))
+ evil-numbers/padDefault)))
+ (cond
+ ((and beg end type)
+ (let ((count 1))
+ (save-excursion
+ (save-match-data
+ (funcall
+ (if (eq type 'block)
+ (lambda (f) (evil-apply-on-block f beg end nil))
+ (lambda (f) (funcall f beg end)))
+ (lambda (beg end)
+ (evil-with-restriction beg end
+ (while (re-search-forward
"\\(?:0\\(?:[Bb][01]+\\|[Oo][0-7]+\\|[Xx][0-9A-Fa-f]+\\)\\|[+-]?[0-9]+\\|[⁻⁺]?[⁰¹²³⁴⁵⁶⁷⁸⁹]\\|[₋₊]?[₀₁₂₃₄₅₆₇₈₉]\\)"
nil t)
+ ;; Backward char, to cancel out the forward-char below. We
need
+ ;; this, as `re-search-forwards' puts us behind the match.
+ (backward-char)
+ (evil-numbers/inc-at-pt (* amount count) nil nil nil)
+ (if incremental (setq count (+ count 1)))
+ ;; Undo VIM compatibility.
+ (forward-char 1)))))))))
+ (t
+ (save-match-data
+ ;; forward-char, so that we do not match the number directly behind us.
+ (forward-char)
+ (if (not (evil-numbers--search-number))
+ (error "No number at point or until end of line")
+ (let ((replace-with
+ (lambda (from to)
+ (skip-chars-backward
+ (funcall from "0123456789"))
+ (skip-chars-backward
+ (funcall from "+-") (- (point) 1))
+ (when (looking-at
+ (format
+ "[%s]?\\([%s]+\\)"
+ (funcall from "-+")
+ (funcall from "0123456789")))
+ (replace-match
+ (funcall
+ from
+ (let* ((padded
+ (or padded
+ (eq ?0 (string-to-char (match-string 1)))))
+ (input (string-to-number
+ (funcall to (match-string 0))))
+ (output (+ amount input))
+ (len (- (match-end 0) (match-beginning 0)))
+ (signed (and
+ (memq (string-to-char (match-string 0))
+ (funcall from '(?+ ?-)))
+ (or padded (>= input 0)))))
+ (format
+ (format "%%%s0%dd"
+ (if signed "+" "")
+ (if padded len 0))
+ output))))
+ ;; Moves point one position back to conform with VIM
+ (forward-char -1)
+ t))))
+ (or
+ ;; Find binary literals.
+ (evil-numbers--search-and-replace "0[bB][01]+" "01" "\\([01]+\\)"
amount 2)
+
+ ;; Find octal literals.
+ (evil-numbers--search-and-replace "0[oO][0-7]+" "01234567"
"\\([0-7]+\\)" amount 8)
+
+ ;; Find hex literals.
+ (evil-numbers--search-and-replace "0[xX][0-9a-fA-F]*"
+ "0123456789abcdefABCDEF"
+ "\\([0-9a-fA-F]+\\)" amount 16)
+
+ ;; Find superscript literals.
+ (funcall
+ replace-with
+ (lambda (x)
+ (evil-numbers--translate-with-alist
+ evil-numbers--superscript-alist x))
+ (lambda (x)
+ (evil-numbers--translate-with-alist
+ (evil-numbers--swap-alist evil-numbers--superscript-alist)
+ x)))
+
+ ;; Find subscript literals.
+ (funcall
+ replace-with
+ (lambda (x)
+ (evil-numbers--translate-with-alist
+ evil-numbers--subscript-alist x))
+ (lambda (x)
+ (evil-numbers--translate-with-alist
+ (evil-numbers--swap-alist evil-numbers--subscript-alist)
+ x)))
+
+ ;; Find normal decimal literals.
+ (funcall replace-with (lambda (x) x) (lambda (x) x))
+ (error "No number at point or until end of line"))))))))
;;;###autoload (autoload 'evil-numbers/dec-at-pt "evil-numbers" nil t)
(evil-define-operator evil-numbers/dec-at-pt (amount beg end type &optional
incremental padded)
- [nongnu] elpa/evil-numbers 8403eeb125 097/145: Correct oversight in 299e0418caa43cb7c15dd21d2dd40b75b147990f, (continued)
- [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
- [nongnu] elpa/evil-numbers 0ddb39d98e 027/145: Stray paren fix, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 780db06056 018/145: Tag version 0.2., ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers b754f53c82 039/145: support for increasing superscripts, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers fb16206158 054/145: Fix autoloading, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 4308935a03 061/145: Resolve looking-back warnings, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers aa94cd1b26 063/145: Merge pull request #11 from ideasman42/patch-1, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 5356111930 077/145: Cleanup: avoid let binding to set default values for arguments,
ELPA Syncer <=
- [nongnu] elpa/evil-numbers b54cc5ba35 076/145: Fix spelling, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers c37a4cf92a 092/145: Fix padding being ignored with block selection, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers e8dfba58c9 081/145: Cleanup: split skip characters matching out into a function, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 7602f3b484 101/145: Cleanup: split number incrementing into it's own function, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 3fe56219af 091/145: Cleanup: docstring, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers b2397f278a 094/145: Cleanup: move forward character check in evil-numbers--search-number, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 6093a5e039 085/145: Cleanup: use identity functions, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers b98a3dccd3 104/145: Cleanup: forward limits to evil-numbers--search-and-replace, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers cb9eb99998 141/145: Tests: add simple-nop-non-number-with-newline-after test, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-numbers 29859e64c0 138/145: Add automated tests, resolve #22, ELPA Syncer, 2022/01/06