branch: elpa/evil-nerd-commenter
commit 237040205e0c0dc8b367b5ee6d4095e95aa7703c
Author: lalopmak <[email protected]>
Commit: lalopmak <[email protected]>
Made definition of evilnc-comment-operator a callable function,
evilnc-define-comment-operator. Only does anything if 'evil-define-operator
bound and 'evilnc-comment-operator isn't.
It gets called when evilnc first gets loaded, when user calls it, and when
user calls evilnc-default-hotkeys.
---
evil-nerd-commenter.el | 67 ++++++++++++++++++++++++++++----------------------
1 file changed, 38 insertions(+), 29 deletions(-)
diff --git a/evil-nerd-commenter.el b/evil-nerd-commenter.el
index 450b670e57..8744c24118 100644
--- a/evil-nerd-commenter.el
+++ b/evil-nerd-commenter.el
@@ -262,38 +262,47 @@ Paragraphs are separated by empty lines."
(global-set-key (kbd "C-c c") 'evilnc-copy-and-comment-lines)
(global-set-key (kbd "C-c p") 'evilnc-comment-or-uncomment-paragraphs)
(eval-after-load 'evil
- '(when (fboundp 'evilnc-comment-operator)
- (define-key evil-normal-state-map "," 'evilnc-comment-operator)
- (define-key evil-visual-state-map "," 'evilnc-comment-operator))))
+ '(progn (evilnc-define-comment-operator)
+ (define-key evil-normal-state-map "," 'evilnc-comment-operator)
+ (define-key evil-visual-state-map "," 'evilnc-comment-operator))))
-(when (fboundp 'evil-define-operator)
- (evil-define-operator evilnc-comment-operator (beg end type register
yank-handler)
- "Comments text from BEG to END with TYPE.
+(defun evilnc-define-comment-operator ()
+ "Attempts to define the comment operator evilnc-comment-operator.
+
+Will only work if 'evil-define-operator is defined and
'evilnc-comment-operator is not."
+ (interactive)
+ (when (and (fboundp 'evil-define-operator)
+ (not (fboundp 'evilnc-comment-operator)))
+ (evil-define-operator evilnc-comment-operator (beg end type register
yank-handler)
+ "Comments text from BEG to END with TYPE.
Save in REGISTER or in the kill-ring with YANK-HANDLER."
- (interactive "<R><x><y>")
- (unless register
- (let ((text (filter-buffer-substring beg end)))
- (unless (string-match-p "\n" text)
- ;; set the small delete register
- (evil-set-register ?- text))))
- (evil-yank beg end type register yank-handler)
- (cond
- ((eq type 'block)
- (evil-apply-on-block #'comment-or-uncomment-region beg end nil))
- ((and (eq type 'line)
- (= end (point-max))
- (or (= beg end)
- (/= (char-before end) ?\n))
- (/= beg (point-min))
- (= (char-before beg) ?\n))
- (comment-or-uncomment-region (1- beg) end))
- (t
- (comment-or-uncomment-region beg end)))
- ;; place cursor on beginning of line
- (when (and (evil-called-interactively-p)
- (eq type 'line))
- (evil-first-non-blank))))
+ (interactive "<R><x><y>")
+ (unless register
+ (let ((text (filter-buffer-substring beg end)))
+ (unless (string-match-p "\n" text)
+ ;; set the small delete register
+ (evil-set-register ?- text))))
+ (evil-yank beg end type register yank-handler)
+ (cond
+ ((eq type 'block)
+ (evil-apply-on-block #'comment-or-uncomment-region beg end nil))
+ ((and (eq type 'line)
+ (= end (point-max))
+ (or (= beg end)
+ (/= (char-before end) ?\n))
+ (/= beg (point-min))
+ (= (char-before beg) ?\n))
+ (comment-or-uncomment-region (1- beg) end))
+ (t
+ (comment-or-uncomment-region beg end)))
+ ;; place cursor on beginning of line
+ (when (and (evil-called-interactively-p)
+ (eq type 'line))
+ (evil-first-non-blank)))))
+;; Attemps to define the operator on first load.
+;; Will only work if evil has been loaded
+(evilnc-define-comment-operator)
(provide 'evil-nerd-commenter)