From 55f29f07e31c408931e3569066c2050c48dd882b Mon Sep 17 00:00:00 2001 From: Axel Forsman Date: Wed, 24 Apr 2024 21:45:21 +0200 Subject: Small cleanups --- evil-commands.el | 45 +++++++++++++++++---------------------------- evil-common.el | 36 ++++++++++++++---------------------- evil-macros.el | 17 +++++++---------- evil-tests.el | 2 +- evil-types.el | 3 +-- 5 files changed, 40 insertions(+), 63 deletions(-) diff --git a/evil-commands.el b/evil-commands.el index 5ccfce0..e0554e6 100644 --- a/evil-commands.el +++ b/evil-commands.el @@ -62,7 +62,7 @@ of the line or the buffer; just return nil." ((not crosslines) ;; For efficiency, narrow the buffer to the projected ;; movement before determining the current line - (evil-with-restriction (point) (+ (point) (or count 1) 1) + (evil-with-restriction nil (min (+ (point) (or count 1) 1) (point-max)) (condition-case err (evil-narrow-to-line (forward-char count)) (error @@ -75,11 +75,10 @@ of the line or the buffer; just return nil." (t (evil-motion-loop (nil (or count 1)) (forward-char) ;; don't put the cursor on a newline - (and (not evil-move-beyond-eol) - (not (evil-visual-state-p)) - (not (evil-operator-state-p)) - (eolp) (not (eobp)) (not (bolp)) - (forward-char)))))) + (or evil-move-beyond-eol + (evil-visual-state-p) (evil-operator-state) + (not (eolp)) (bolp) + (forward-char)))))) (evil-define-motion evil-backward-char (count &optional crosslines noerror) "Move cursor to the left by COUNT characters. @@ -92,7 +91,9 @@ of the line or the buffer; just return nil." (cond ((not crosslines) ;; Restrict movement to the current line - (evil-with-restriction (- (point) (or count 1)) (1+ (point)) + (evil-with-restriction + (max (- (point) (or count 1)) (point-min)) + (min (1+ (point)) (point-max)) (condition-case err (evil-narrow-to-line (backward-char count)) (error @@ -132,29 +133,19 @@ of the line or the buffer; just return nil." (let ((line-move-visual t)) (evil-line-move (- (or count 1))))) -;; used for repeated commands like "dd" +;; Used for repeated commands like "dd" (evil-define-motion evil-line (count) "Move COUNT - 1 lines down." :type line (let (line-move-visual) - ;; Catch bob and eob errors. These are caused when not moving - ;; point starting in the first or last line, respectively. In this - ;; case the current line should be selected. - (condition-case _err - (evil-line-move (1- (or count 1))) - ((beginning-of-buffer end-of-buffer))))) + (evil-line-move (1- (or count 1)) t))) (evil-define-motion evil-line-or-visual-line (count) "Move COUNT - 1 lines down." :type screen-line (let ((line-move-visual (and evil-respect-visual-line-mode visual-line-mode))) - ;; Catch bob and eob errors. These are caused when not moving - ;; point starting in the first or last line, respectively. In this - ;; case the current line should be selected. - (condition-case _err - (evil-line-move (1- (or count 1))) - ((beginning-of-buffer end-of-buffer))))) + (evil-line-move (1- (or count 1)) t))) (evil-define-motion evil-beginning-of-line () "Move the cursor to the beginning of the current line." @@ -3402,18 +3393,16 @@ command." (switch-to-buffer buffer))))) (evil-define-command evil-next-buffer (&optional count) - "Go to the `count'-th next buffer in the buffer list." + "Go to the COUNTth next buffer in the buffer list." :repeat nil (interactive "p") - (dotimes (_ (or count 1)) - (next-buffer))) + (next-buffer count)) (evil-define-command evil-prev-buffer (&optional count) - "Go to the `count'-th prev buffer in the buffer list." + "Go to the COUNTth prev buffer in the buffer list." :repeat nil (interactive "p") - (dotimes (_ (or count 1)) - (previous-buffer))) + (previous-buffer count)) (evil-define-command evil-delete-buffer (buffer &optional bang) "Delete a buffer. @@ -4539,14 +4528,14 @@ of the parent of the splitted window are rebalanced." :repeat nil (interactive "p") (evil-window-split) - (evil-next-buffer count)) + (next-buffer count)) (evil-define-command evil-split-prev-buffer (&optional count) "Split window and go to the COUNT-th prev buffer in the buffer list." :repeat nil (interactive "p") (evil-window-split) - (evil-prev-buffer count)) + (previous-buffer count)) (evil-define-command evil-window-left (count) "Move the cursor to new COUNT-th window left of the current one." diff --git a/evil-common.el b/evil-common.el index 82eaddb..fd259d6 100644 --- a/evil-common.el +++ b/evil-common.el @@ -917,28 +917,26 @@ so it is more compatible with Evil's notion of EOL tracking." "Restrict the buffer to BEG and END. BEG or END may be nil, specifying a one-sided restriction including `point-min' or `point-max'. See also `evil-with-restriction.'" + (declare (obsolete nil "1.15.0")) (narrow-to-region (if beg (max beg (point-min)) (point-min)) (if end (min end (point-max)) (point-max)))) (defmacro evil-with-restriction (beg end &rest body) "Execute BODY with the buffer narrowed to BEG and END. -BEG or END may be nil as passed to `evil-narrow'; this creates -a one-sided restriction." - (declare (indent 2) - (debug t)) +BEG or END may be nil to specify a one-sided restriction." + (declare (indent 2) (debug t)) `(save-restriction (let ((evil-restriction-stack (cons (cons (point-min) (point-max)) evil-restriction-stack))) - (evil-narrow ,beg ,end) + (narrow-to-region (or ,beg (point-min)) (or ,end (point-max))) ,@body))) (defmacro evil-without-restriction (&rest body) "Execute BODY with the top-most narrowing removed. This works only if the previous narrowing has been generated by `evil-with-restriction'." - (declare (indent defun) - (debug t)) + (declare (indent defun) (debug t)) `(save-restriction (widen) (narrow-to-region (car (car evil-restriction-stack)) @@ -2932,8 +2930,8 @@ linewise, otherwise it is character wise." (objbnd (let ((wsend (evil-with-restriction ;; restrict to current line if we do non-line selection - (and (not line) (line-beginning-position)) - (and (not line) (line-end-position)) + (unless line (line-beginning-position)) + (unless line (line-end-position)) (evil-bounds-of-not-thing-at-point thing dir)))) (cond (wsend @@ -2947,11 +2945,11 @@ linewise, otherwise it is character wise." (setq wsend (evil-with-restriction ;; restrict to current line if we do non-line selection - (and (not line) - (if (member thing '(evil-word evil-WORD)) - (save-excursion (back-to-indentation) (point)) - (line-beginning-position))) - (and (not line) (line-end-position)) + (unless line + (if (member thing '(evil-word evil-WORD)) + (save-excursion (back-to-indentation) (point)) + (line-beginning-position))) + (unless line (line-end-position)) (evil-bounds-of-not-thing-at-point thing (- dir)))) (when wsend (setq other wsend addcurrent t))))))) ;; current match is whitespace, add thing @@ -3764,14 +3762,8 @@ should be left-aligned for left justification." (let ((fill-column position) adaptive-fill-mode fill-prefix) (evil-with-restriction - (save-excursion - (goto-char beg) - (line-beginning-position)) - (save-excursion - (goto-char end) - (if (bolp) - (line-end-position 0) - (line-end-position))) + (save-excursion (goto-char beg) (line-beginning-position)) + (save-excursion (goto-char end) (line-end-position (if (bolp) 0 1))) (goto-char (point-min)) (while (progn (if (eq justify 'left) diff --git a/evil-macros.el b/evil-macros.el index 86eb867..09b1396 100644 --- a/evil-macros.el +++ b/evil-macros.el @@ -172,21 +172,18 @@ the beginning or end of the current line." (when (save-excursion (goto-char end) (bolp)) (setq end (max beg (1- end)))) ;; Do not include the newline in Normal state - (and (not evil-move-beyond-eol) - (not (evil-visual-state-p)) - (not (evil-operator-state-p)) - (setq end (max beg (1- end)))) + (or evil-move-beyond-eol + (evil-visual-state-p) (evil-operator-state-p) + (setq end (max beg (1- end)))) (evil-with-restriction beg end (condition-case err (progn ,@body) (beginning-of-buffer - (if (= (point-min) beg) - (signal 'beginning-of-line nil) - (signal (car err) (cdr err)))) + (signal (if (= (point-min) beg) 'beginning-of-line (car err)) + (cdr err))) (end-of-buffer - (if (= (point-max) end) - (signal 'end-of-line nil) - (signal (car err) (cdr err)))))))) + (signal (if (= (point-max) end) 'end-of-line (car err)) + (cdr err))))))) (defun evil-eobp (&optional pos) "Whether point is at end-of-buffer with regard to end-of-line." diff --git a/evil-tests.el b/evil-tests.el index 9b4c53e..89bc497 100644 --- a/evil-tests.el +++ b/evil-tests.el @@ -9005,7 +9005,7 @@ Source (ert-deftest evil-test-ex-sort () :tags '(evil ex) - "Text ex command :sort `evil-ex-sort`." + "Text Ex command \":sort\" (`evil-ex-sort')." (ert-info ("Plain sort") (evil-test-buffer "[z]zyy\ntest\ntEst\ntesT\nTEST\ntest\n" diff --git a/evil-types.el b/evil-types.el index 395dc2f..67ea9ce 100644 --- a/evil-types.el +++ b/evil-types.el @@ -138,8 +138,7 @@ and will be removed in a future version." when `evil-respect-visual-line-mode' is non-nil." :one-to-one nil :expand (lambda (beg end) - (if (or (not evil-respect-visual-line-mode) - (not visual-line-mode)) + (if (not (and evil-respect-visual-line-mode visual-line-mode)) (evil-line-expand beg end) (evil-range (progn -- cgit v1.0