emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/evil-nerd-commenter d664ad5af7 203/235: clean code


From: ELPA Syncer
Subject: [nongnu] elpa/evil-nerd-commenter d664ad5af7 203/235: clean code
Date: Thu, 6 Jan 2022 02:59:48 -0500 (EST)

branch: elpa/evil-nerd-commenter
commit d664ad5af7d4077516589bcf13c2e528c38de3bc
Author: Chen Bin <chenbin.sh@gmail.com>
Commit: Chen Bin <chenbin.sh@gmail.com>

    clean code
---
 README.org                      |  5 ++++-
 evil-nerd-commenter-operator.el | 19 +++---------------
 evil-nerd-commenter-sdk.el      | 44 +++++++++++++++++++----------------------
 3 files changed, 27 insertions(+), 41 deletions(-)

diff --git a/README.org b/README.org
index d0ae347571..e5a7578a45 100644
--- a/README.org
+++ b/README.org
@@ -1,7 +1,10 @@
 * evil-nerd-commenter
 
 
[[https://travis-ci.org/redguardtoo/evil-nerd-commenter][https://travis-ci.org/redguardtoo/evil-nerd-commenter.svg?branch=master]]
-[[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]]
+
+[[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]]
 
 This program can be used *WITHOUT* 
[[http://www.emacswiki.org/Evil][evil-mode]]!
 
diff --git a/evil-nerd-commenter-operator.el b/evil-nerd-commenter-operator.el
index b0a49c8d6c..44ea65a7fe 100644
--- a/evil-nerd-commenter-operator.el
+++ b/evil-nerd-commenter-operator.el
@@ -76,35 +76,22 @@
     (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)
+  (if (evilnc-is-pure-comment beg)
       (save-excursion
         (let* ((newbeg beg)
                (newend end))
 
           ;; extend the beginning
           (goto-char newbeg)
-          (while (and (>= (1- newbeg) (line-beginning-position)) 
(evilnc--in-comment-p (1- newbeg)))
+          (while (and (>= (1- newbeg) (line-beginning-position)) 
(evilnc-is-pure-comment (1- newbeg)))
             (setq newbeg (1- newbeg)))
 
           ;; extend the end
           (goto-char newend)
-          (while (and (<= newend (line-end-position)) (evilnc--in-comment-p 
newend))
+          (while (and (<= newend (line-end-position)) (evilnc-is-pure-comment 
newend))
             (setq newend (1+ newend)))
 
           (list newbeg newend)))
diff --git a/evil-nerd-commenter-sdk.el b/evil-nerd-commenter-sdk.el
index d8bde19bd2..09d8550caa 100644
--- a/evil-nerd-commenter-sdk.el
+++ b/evil-nerd-commenter-sdk.el
@@ -41,16 +41,18 @@
                  (eq (get-text-property pos 'block-token) 'comment)
                  (eq (get-text-property pos 'part-token) 'comment)))))
 
+(defun evilnc-fonts-at-point (pos)
+  "Get font faces at POS."
+  (let* ((fontfaces (if (> pos 0) (get-text-property pos 'face))))
+    (if (listp fontfaces) fontfaces (list fontfaces))))
+
 (defun evilnc-is-pure-comment (pos)
   "Check character at POS is pure comment."
-  (let* ((fontfaces (if (> pos 0) (get-text-property pos 'face))))
-    (if (not (listp fontfaces))
-        (setf fontfaces (list fontfaces)))
-    (or (and (string= major-mode "web-mode")
-             (evilnc-web-mode-is-comment pos))
-        (evilnc--check-fonts fontfaces
-                             '(font-lock-comment-face
-                               font-lock-comment-delimiter-face)))))
+  (or (and (eq major-mode 'web-mode)
+           (evilnc-web-mode-is-comment pos))
+      (evilnc--check-fonts (evilnc-fonts-at-point pos)
+                           '(font-lock-comment-face
+                             font-lock-comment-delimiter-face))))
 
 (defun evilnc-is-whitespace (pos)
   "Character at POS is white space."
@@ -64,18 +66,15 @@
   "Check whether the code at POS is comment by comparing font face.
 Please note the white spaces out of comment is treated as comment,
 or else we can't select multiple lines comment."
-  (let* ((fontfaces (if (> pos 0) (get-text-property pos 'face))))
-    (if (not (listp fontfaces))
-        (setf fontfaces (list fontfaces)))
-    (cond
-     ((or (< pos (point-min)) (> pos (point-max)))
-      nil)
-     ((not fontfaces)
-      ;; character under cursor is SPACE or TAB
-      ;; and out of comment
-      (evilnc-is-whitespace pos))
-     (t
-      (evilnc-is-pure-comment pos)))))
+  (cond
+   ((or (< pos (point-min)) (> pos (point-max)))
+    nil)
+   ((not (evilnc-fonts-at-point pos))
+    ;; character under cursor is SPACE or TAB
+    ;; and out of comment
+    (evilnc-is-whitespace pos))
+   (t
+    (evilnc-is-pure-comment pos))))
 
 (defun evilnc-get-char (pos)
   "Get character at POS."
@@ -85,13 +84,10 @@ or else we can't select multiple lines comment."
 
 (defun evilnc-is-comment-delimiter (pos)
   "Is character at POS a comment delimiter?"
-  (let* ((fontfaces (if (> pos 0) (get-text-property pos 'face))))
-    (if (not (listp fontfaces))
-        (setf fontfaces (list fontfaces)))
+  (let* ((fontfaces (evilnc-fonts-at-point pos)))
     (and fontfaces
          (evilnc--check-fonts fontfaces
                               '(font-lock-comment-delimiter-face)))))
 
 (provide 'evil-nerd-commenter-sdk)
 ;;; evil-nerd-commenter-sdk.el ends here
-



reply via email to

[Prev in Thread] Current Thread [Next in Thread]