branch: elpa/evil-nerd-commenter
commit 41d43709210711c07de69497c5f7db646b7e7a96
Author: Chen Bin <[email protected]>
Commit: Chen Bin <[email protected]>
Fixed: missing one char when comment end is (point-max)
---
README.org | 2 +-
evil-nerd-commenter-operator.el | 41 ++++++++++++++++++++++++++++++++++++++-
evil-nerd-commenter-sdk.el | 3 +++
evil-nerd-commenter.el | 43 ++---------------------------------------
pkg.sh | 2 +-
5 files changed, 47 insertions(+), 44 deletions(-)
diff --git a/README.org b/README.org
index 1454fb347a..b3ce9a6546 100644
--- a/README.org
+++ b/README.org
@@ -1,4 +1,4 @@
-* evil-nerd-commenter (v3.1.2)
+* evil-nerd-commenter (v3.1.3)
[[http://melpa.org/#/evil-nerd-commenter][file:http://melpa.org/packages/evil-nerd-commenter-badge.svg]]
[[http://stable.melpa.org/#/evil-nerd-commenter][file:http://stable.melpa.org/packages/evil-nerd-commenter-badge.svg]]
diff --git a/evil-nerd-commenter-operator.el b/evil-nerd-commenter-operator.el
index b8adf6c683..e4737679fe 100644
--- a/evil-nerd-commenter-operator.el
+++ b/evil-nerd-commenter-operator.el
@@ -78,6 +78,45 @@
(setq last-command tmp-command)
(setq evilnc-temporary-goal-column 0)))
+(defun evilnc--in-comment-p (pos)
+ "Check whether the code at POS is comment by comparing font face."
+ (interactive)
+ (let* ((fontfaces (get-text-property pos 'face)))
+ (if (not (listp fontfaces))
+ (setf fontfaces (list fontfaces)))
+ (delq nil
+ (mapcar #'(lambda (f)
+ ;; learn this trick from flyspell
+ (or (eq f 'font-lock-comment-face)
+ (eq f 'font-lock-comment-delimiter-face)))
+ fontfaces))))
+
+(defun evilnc--extend-to-whole-comment (beg end)
+ "Extend the comment region defined by BEG and END so ALL comment is
included."
+ (interactive)
+ (if (evilnc--in-comment-p beg)
+ (save-excursion
+ (let* ((newbeg beg)
+ (newend end))
+
+ ;; extend the beginning
+ (goto-char newbeg)
+ (while (and (>= newbeg (line-beginning-position))
(evilnc--in-comment-p newbeg))
+ (setq newbeg (1- newbeg)))
+
+ ;; make sure newbeg is at the beginning of the comment
+ (if (< newbeg beg) (setq newbeg (1+ newbeg)))
+
+ ;; extend the end
+ (goto-char newend)
+ (while (and (<= newend (line-end-position)) (evilnc--in-comment-p
newend))
+ (setq newend (1+ newend)))
+ ;; make sure newend is at the end of the comment
+ (if (> newend end) (setq newend (evilnc-get-comment-end newend)))
+
+ (list newbeg newend)))
+ (list beg end)))
+
(evil-define-operator evilnc-comment-operator (beg end type)
"Comments text from BEG to END with TYPE."
(interactive "<R>")
@@ -97,7 +136,7 @@
(evilnc--comment-or-uncomment-region (1- beg) end))
((eq type 'line)
- (evilnc--comment-or-uncomment-region beg (1- end)))
+ (evilnc--comment-or-uncomment-region beg (evilnc-get-comment-end end)))
(t
(let* ((newpos (evilnc--extend-to-whole-comment beg end) ))
diff --git a/evil-nerd-commenter-sdk.el b/evil-nerd-commenter-sdk.el
index cc744cff1d..1e85513be9 100644
--- a/evil-nerd-commenter-sdk.el
+++ b/evil-nerd-commenter-sdk.el
@@ -62,6 +62,9 @@
"Character at POS is line end."
(member (evilnc-get-char pos) '(10 11)))
+(defun evilnc-get-comment-end (end)
+ (if (= end (point-max)) end (1- end)))
+
(defun evilnc-is-comment (pos)
"Check whether the code at POS is comment by comparing font face.
Please note the white spaces out of comment is treated as comment,
diff --git a/evil-nerd-commenter.el b/evil-nerd-commenter.el
index 729c6f80a0..51f7568c62 100644
--- a/evil-nerd-commenter.el
+++ b/evil-nerd-commenter.el
@@ -4,7 +4,7 @@
;; Author: Chen Bin <[email protected]>
;; URL: http://github.com/redguardtoo/evil-nerd-commenter
-;; Version: 3.1.2
+;; Version: 3.1.3
;; Keywords: commenter vim line evil
;;
;; This file is not part of GNU Emacs.
@@ -251,45 +251,6 @@ See
http://lists.gnu.org/archive/html/bug-gnu-emacs/2013-03/msg00891.html."
(setq e (point-max))))
(list b e)))
-(defun evilnc--in-comment-p (pos)
- "Check whether the code at POS is comment by comparing font face."
- (interactive)
- (let* ((fontfaces (get-text-property pos 'face)))
- (if (not (listp fontfaces))
- (setf fontfaces (list fontfaces)))
- (delq nil
- (mapcar #'(lambda (f)
- ;; learn this trick from flyspell
- (or (eq f 'font-lock-comment-face)
- (eq f 'font-lock-comment-delimiter-face)))
- fontfaces))))
-
-(defun evilnc--extend-to-whole-comment (beg end)
- "Extend the comment region defined by BEG and END so ALL comment is
included."
- (interactive)
- (if (evilnc--in-comment-p beg)
- (save-excursion
- (let* ((newbeg beg)
- (newend end))
-
- ;; extend the beginning
- (goto-char newbeg)
- (while (and (>= newbeg (line-beginning-position))
(evilnc--in-comment-p newbeg))
- (setq newbeg (1- newbeg)))
-
- ;; make sure newbeg is at the beginning of the comment
- (if (< newbeg beg) (setq newbeg (1+ newbeg)))
-
- ;; extend the end
- (goto-char newend)
- (while (and (<= newend (line-end-position)) (evilnc--in-comment-p
newend))
- (setq newend (1+ newend)))
- ;; make sure newend is at the end of the comment
- (if (> newend end) (setq newend (1- newend)))
-
- (list newbeg newend)))
- (list beg end)))
-
(defun evilnc--invert-comment (beg end)
"Scan the region from BEG to END line by line, invert its comment status."
(let* (done b e)
@@ -692,7 +653,7 @@ Then we operate the expanded region. NUM is ignored."
(defun evilnc-version ()
"The version number."
(interactive)
- (message "3.1.2"))
+ (message "3.1.3"))
(defvar evil-normal-state-map)
(defvar evil-visual-state-map)
diff --git a/pkg.sh b/pkg.sh
index 31ffc71ba5..8c58cdab3b 100755
--- a/pkg.sh
+++ b/pkg.sh
@@ -1,6 +1,6 @@
#!/bin/bash
name=evil-nerd-commenter
-version=3.1.2
+version=3.1.3
pkg=$name-$version
mkdir $pkg
cp *.el $pkg