[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/evil-nerd-commenter 9e7e969719 226/235: try stay put when
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/evil-nerd-commenter 9e7e969719 226/235: try stay put when comment in evil visual line state |
Date: |
Thu, 6 Jan 2022 02:59:50 -0500 (EST) |
branch: elpa/evil-nerd-commenter
commit 9e7e96971900a2840fe2f7e8d6774c92fed2ccba
Author: Chen Bin <chenbin.sh@gmail.com>
Commit: Chen Bin <chenbin.sh@gmail.com>
try stay put when comment in evil visual line state
---
evil-nerd-commenter.el | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
diff --git a/evil-nerd-commenter.el b/evil-nerd-commenter.el
index f7c9965b7d..cf8424a04f 100644
--- a/evil-nerd-commenter.el
+++ b/evil-nerd-commenter.el
@@ -629,6 +629,20 @@ to comment to the line 6453"
"Empty line(s) will be commented"
"Empty line(s) will NOT be commented")))
+(defun evilnc-visual-line-p ()
+ "In Evil visual line mode."
+ (and (fboundp 'evil-visual-type) (eq (evil-visual-type) 'line)))
+
+(defun evilnc-guess-position-at-point ()
+ "Guess current position when evil visual line state is on or off."
+ (cond
+ ((and (evilnc-visual-line-p)
+ (eq (point) (nth 1 (evil-visual-range))))
+ ;; In evil visual line state, point is beginning or end visual range
+ (1- (point)))
+ (t
+ (point))))
+
;;;###autoload
(defun evilnc-comment-or-uncomment-lines (&optional num)
"Comment or uncomment NUM lines. NUM could be negative.
@@ -643,7 +657,7 @@ Case 3: If a region inside of ONE line is selected,
we comment/uncomment that region.
CORRECT comment syntax will be used for C++/Java/Javascript."
(interactive "p")
- (let* ((orig-pos (point)))
+ (let* ((orig-pos (evilnc-guess-position-at-point)))
;; donot move the cursor
;; support negative number
(cond
@@ -655,10 +669,14 @@ CORRECT comment syntax will be used for
C++/Java/Javascript."
(when (< num 0)
(evilnc--forward-line (1+ num))
(setq num (- 0 num)))
- (evilnc--operation-on-lines-or-region '(lambda (b e)
-
(evilnc--fix-buggy-major-modes)
-
(evilnc-comment-or-uncomment-region b e))
- num))
+ (evilnc--operation-on-lines-or-region
+ (lambda (b e)
+ (setq orig-pos (point))
+ (evilnc--fix-buggy-major-modes)
+ ;; when comment in evil visual state, the cursor may be rogue
+ (when (evilnc-visual-line-p) (evil-normal-state))
+ (evilnc-comment-or-uncomment-region b e))
+ num))
(goto-char orig-pos)))))
;;;###autoload
- [nongnu] elpa/evil-nerd-commenter fd2fba722e 205/235: clean keybinding setup code, (continued)
- [nongnu] elpa/evil-nerd-commenter fd2fba722e 205/235: clean keybinding setup code, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 4a72fbd022 207/235: README, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 76f07963c0 213/235: Update outdated link to emacswiki, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 747e346f11 212/235: Merge pull request #109 from hlissner/patch-1, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 1bd2de5201 214/235: Merge pull request #111 from duchainer/patch-outdated-link-emacswiki, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 87734b9c7f 218/235: clean code, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 6ed6f9ea82 215/235: clean code, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter b670f69b64 221/235: add emacs27 to ci, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 2401d871ad 217/235: use GPL version 3, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 8809dccfdb 223/235: user can customize comment style, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 9e7e969719 226/235: try stay put when comment in evil visual line state,
ELPA Syncer <=
- [nongnu] elpa/evil-nerd-commenter 563cdc154b 222/235: fix typo and add unit test for web-mode, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 5535be5421 227/235: (line . column), ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter c0f49e4e87 228/235: fixed minor issue, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 118bebd02a 229/235: use github workflows instead of travis ci, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter c48a95c3ff 234/235: feat: support .tsx files, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter ba535606b4 003/235: add a use case, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 188a475cfc 013/235: Merge branch 'master' of github.com:redguardtoo/evil-nerd-commenter, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 64ee33dac4 022/235: insert live demo link into README, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 1cec61caac 038/235: Removed redundant double information, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-nerd-commenter 1f32941bce 047/235: v1.2.0, ELPA Syncer, 2022/01/06