branch: elpa/clojure-mode
commit 38c72d3284367459a8b116deb660c3163f6653ea
Author: Bozhidar Batsov <[email protected]>
Commit: Bozhidar Batsov <[email protected]>

    Rename the #_ toggle commands to "discard"
    
    Clojure and edn officially call `#_` the discard reader macro, and 
clojure-mode
    already uses that term for `clojure-discard-face`.  Rename the toggle 
commands
    to match: `clojure-toggle-discard', 
`clojure-toggle-discard-surrounding-form'
    and `clojure-toggle-discard-defun', keeping the old `clojure-toggle-ignore*'
    names as obsolete aliases.  Keybindings, menu, docstrings and the README are
    updated accordingly.
---
 README.md                      | 16 ++++++------
 clojure-mode.el                | 53 ++++++++++++++++++++++-----------------
 test/clojure-mode-util-test.el | 57 ++++++++++++++++++++++++------------------
 3 files changed, 71 insertions(+), 55 deletions(-)

diff --git a/README.md b/README.md
index 36c2b0609f..b4b73d59a9 100644
--- a/README.md
+++ b/README.md
@@ -485,8 +485,8 @@ Here's a summary of the keybindings available in 
`clojure-mode`:
 | `C-c C-r i` | `clojure-cycle-if` |
 | `C-c C-r w` | `clojure-cycle-when` |
 | `C-c C-r o` | `clojure-cycle-not` |
-| `C-c C-r -` | `clojure-toggle-ignore` |
-| `C-c C-r _` | `clojure-toggle-ignore-surrounding-form` |
+| `C-c C-r -` | `clojure-toggle-discard` |
+| `C-c C-r _` | `clojure-toggle-discard-surrounding-form` |
 | `C-c C-r P` | `clojure-promote-fn-literal` |
 | `C-c C-r a` | `clojure-add-arity` |
 | `C-c C-r (` | `clojure-convert-collection-to-list` |
@@ -561,17 +561,17 @@ the same as before.
 
 <img width="512" src="/doc/clojure-cycle-if.gif">
 
-### Toggle ignore forms
+### Toggle discard forms
 
-`clojure-toggle-ignore`: Toggle `#_` on the form at point, commenting it out 
for
-the reader. With a numeric prefix argument, toggle N `#_` forms at the same
-point (e.g. `#_#_` to ignore two forms).
+`clojure-toggle-discard`: Toggle `#_` on the form at point, discarding it at 
the
+reader. With a numeric prefix argument, toggle N `#_` forms at the same point
+(e.g. `#_#_` to discard two forms).
 
-`clojure-toggle-ignore-surrounding-form`: Toggle `#_` on the surrounding form.
+`clojure-toggle-discard-surrounding-form`: Toggle `#_` on the surrounding form.
 With a numeric prefix argument, go up N levels first. With `C-u`, act on the
 top-level form.
 
-`clojure-toggle-ignore-defun`: Toggle `#_` on the top-level form at point.
+`clojure-toggle-discard-defun`: Toggle `#_` on the top-level form at point.
 
 ### Promote function literal
 
diff --git a/clojure-mode.el b/clojure-mode.el
index fc76dc35b6..6cb40a2be6 100644
--- a/clojure-mode.el
+++ b/clojure-mode.el
@@ -334,10 +334,10 @@ containing that specific file."
     (define-key map (kbd "s b") #'clojure-let-backward-slurp-sexp)
     (define-key map (kbd "C-a") #'clojure-add-arity)
     (define-key map (kbd "a") #'clojure-add-arity)
-    (define-key map (kbd "-") #'clojure-toggle-ignore)
-    (define-key map (kbd "C--") #'clojure-toggle-ignore)
-    (define-key map (kbd "_") #'clojure-toggle-ignore-surrounding-form)
-    (define-key map (kbd "C-_") #'clojure-toggle-ignore-surrounding-form)
+    (define-key map (kbd "-") #'clojure-toggle-discard)
+    (define-key map (kbd "C--") #'clojure-toggle-discard)
+    (define-key map (kbd "_") #'clojure-toggle-discard-surrounding-form)
+    (define-key map (kbd "C-_") #'clojure-toggle-discard-surrounding-form)
     (define-key map (kbd "P") #'clojure-promote-fn-literal)
     (define-key map (kbd "C-P") #'clojure-promote-fn-literal)
     map)
@@ -360,8 +360,8 @@ containing that specific file."
         ["Cycle if, if-not" clojure-cycle-if]
         ["Cycle when, when-not" clojure-cycle-when]
         ["Cycle not" clojure-cycle-not]
-        ["Toggle #_ ignore form" clojure-toggle-ignore]
-        ["Toggle #_ ignore of surrounding form" 
clojure-toggle-ignore-surrounding-form]
+        ["Toggle #_ discard form" clojure-toggle-discard]
+        ["Toggle #_ discard of surrounding form" 
clojure-toggle-discard-surrounding-form]
         ["Add function arity" clojure-add-arity]
         ["Promote #() fn literal" clojure-promote-fn-literal]
         ("ns forms"
@@ -3586,10 +3586,10 @@ Assumes cursor is at beginning of function."
       (indent-region beg end-marker))))
 
 
-;;; Toggle Ignore forms
+;;; Toggle Discard forms
 
-(defun clojure--toggle-ignore-next-sexp (&optional n)
-  "Insert or delete N `#_' ignore macros at the current point.
+(defun clojure--toggle-discard-next-sexp (&optional n)
+  "Insert or delete N `#_' discard reader macros at the current point.
 Point must be directly before a sexp or the #_ characters.
 When acting on a top level form, insert #_ on a new line
 preceding the form to prevent indentation changes."
@@ -3603,8 +3603,8 @@ preceding the form to prevent indentation changes."
       (when (zerop (car (syntax-ppss)))
         (insert-before-markers "\n")))))
 
-(defun clojure-toggle-ignore (&optional n)
-  "Toggle the #_ ignore reader form for the sexp at point.
+(defun clojure-toggle-discard (&optional n)
+  "Toggle the #_ discard reader form for the sexp at point.
 With numeric argument, toggle N number of #_ forms at the same point.
 
   e.g. with N = 2:
@@ -3614,27 +3614,34 @@ With numeric argument, toggle N number of #_ forms at 
the same point.
     (ignore-errors
       (goto-char (or (nth 8 (syntax-ppss)) ;; beginning of string
                      (beginning-of-thing 'sexp))))
-    (clojure--toggle-ignore-next-sexp n)))
+    (clojure--toggle-discard-next-sexp n)))
 
-(defun clojure-toggle-ignore-surrounding-form (&optional arg)
-  "Toggle the #_ ignore reader form for the surrounding form at point.
+(defun clojure-toggle-discard-surrounding-form (&optional arg)
+  "Toggle the #_ discard reader form for the surrounding form at point.
 With optional ARG, move up by ARG surrounding forms first.
 With universal argument \\[universal-argument], act on the \"top-level\" form."
   (interactive "P")
   (save-excursion
     (if (consp arg)
-        (clojure-toggle-ignore-defun)
+        (clojure-toggle-discard-defun)
       (condition-case nil
           (backward-up-list arg t t)
         (scan-error nil)))
-    (clojure--toggle-ignore-next-sexp)))
+    (clojure--toggle-discard-next-sexp)))
 
-(defun clojure-toggle-ignore-defun ()
-  "Toggle the #_ ignore reader form for the \"top-level\" form at point."
+(defun clojure-toggle-discard-defun ()
+  "Toggle the #_ discard reader form for the \"top-level\" form at point."
   (interactive)
   (save-excursion
     (beginning-of-defun-raw)
-    (clojure--toggle-ignore-next-sexp)))
+    (clojure--toggle-discard-next-sexp)))
+
+(define-obsolete-function-alias 'clojure-toggle-ignore
+  'clojure-toggle-discard "5.24.0")
+(define-obsolete-function-alias 'clojure-toggle-ignore-surrounding-form
+  'clojure-toggle-discard-surrounding-form "5.24.0")
+(define-obsolete-function-alias 'clojure-toggle-ignore-defun
+  'clojure-toggle-discard-defun "5.24.0")
 
 
 ;;; ClojureScript
@@ -3697,10 +3704,10 @@ With universal argument \\[universal-argument], act on 
the \"top-level\" form."
     (define-key prefix (kbd "[") #'clojure-convert-collection-to-vector)
     (define-key prefix (kbd "C-#") #'clojure-convert-collection-to-set)
     (define-key prefix (kbd "#") #'clojure-convert-collection-to-set)
-    (define-key prefix (kbd "-") #'clojure-toggle-ignore)
-    (define-key prefix (kbd "C--") #'clojure-toggle-ignore)
-    (define-key prefix (kbd "_") #'clojure-toggle-ignore-surrounding-form)
-    (define-key prefix (kbd "C-_") #'clojure-toggle-ignore-surrounding-form)
+    (define-key prefix (kbd "-") #'clojure-toggle-discard)
+    (define-key prefix (kbd "C--") #'clojure-toggle-discard)
+    (define-key prefix (kbd "_") #'clojure-toggle-discard-surrounding-form)
+    (define-key prefix (kbd "C-_") #'clojure-toggle-discard-surrounding-form)
     (define-key map clojure-refactor-map-prefix prefix)
     map)
   "Keymap for EDN mode.
diff --git a/test/clojure-mode-util-test.el b/test/clojure-mode-util-test.el
index 6a5f24ce48..c0ae8c4464 100644
--- a/test/clojure-mode-util-test.el
+++ b/test/clojure-mode-util-test.el
@@ -300,90 +300,99 @@
              [methodTwo [] String]]
    :init init))"))))
 
-(describe "clojure-toggle-ignore"
+(describe "clojure-toggle-discard"
   (when-refactoring-with-point-it "should add #_ to literals"
     "[1 |2 3]" "[1 #_|2 3]"
-    (clojure-toggle-ignore))
+    (clojure-toggle-discard))
   (when-refactoring-with-point-it "should work with point in middle of symbol"
     "[foo b|ar baz]" "[foo #_b|ar baz]"
-    (clojure-toggle-ignore))
+    (clojure-toggle-discard))
   (when-refactoring-with-point-it "should remove #_ after cursor"
     "[1 |#_2 3]" "[1 |2 3]"
-    (clojure-toggle-ignore))
+    (clojure-toggle-discard))
   (when-refactoring-with-point-it "should remove #_ before cursor"
     "[#_:fo|o :bar :baz]" "[:fo|o :bar :baz]"
-    (clojure-toggle-ignore))
+    (clojure-toggle-discard))
   (when-refactoring-with-point-it "should insert multiple #_"
     "{:foo| 1 :bar 2 :baz 3}"
     "{#_#_#_#_:foo| 1 :bar 2 :baz 3}"
-    (clojure-toggle-ignore 4))
+    (clojure-toggle-discard 4))
   (when-refactoring-with-point-it "should remove multiple #_"
     "{#_#_#_#_:foo| 1 :bar 2 :baz 3}"
     "{#_#_:foo| 1 :bar 2 :baz 3}"
-    (clojure-toggle-ignore 2))
+    (clojure-toggle-discard 2))
   (when-refactoring-with-point-it "should handle spaces and newlines"
     "[foo #_  \n #_ \r\n b|ar baz]" "[foo b|ar baz]"
-    (clojure-toggle-ignore 2))
+    (clojure-toggle-discard 2))
   (when-refactoring-with-point-it "should toggle entire string"
     "[:div \"lorem ips|um text\"]"
     "[:div #_\"lorem ips|um text\"]"
-    (clojure-toggle-ignore))
+    (clojure-toggle-discard))
   (when-refactoring-with-point-it "should toggle regexps"
     "[|#\".*\"]"
     "[#_|#\".*\"]"
-    (clojure-toggle-ignore))
+    (clojure-toggle-discard))
   (when-refactoring-with-point-it "should toggle collections"
     "[foo |[bar baz]]"
     "[foo #_|[bar baz]]"
-    (clojure-toggle-ignore))
+    (clojure-toggle-discard))
   (when-refactoring-with-point-it "should toggle hash sets"
     "[foo #|{bar baz}]"
     "[foo #_#|{bar baz}]"
-    (clojure-toggle-ignore))
+    (clojure-toggle-discard))
   (when-refactoring-with-point-it "should work on last-sexp"
     "[foo '(bar baz)| quux]"
     "[foo #_'(bar baz)| quux]"
-    (clojure-toggle-ignore))
+    (clojure-toggle-discard))
   (when-refactoring-with-point-it "should insert newline before top-level form"
     "|[foo bar baz]"
     "#_
 |[foo bar baz]"
-    (clojure-toggle-ignore)))
+    (clojure-toggle-discard)))
 
-(describe "clojure-toggle-ignore-surrounding-form"
+(describe "clojure-toggle-discard-surrounding-form"
   (when-refactoring-with-point-it "should toggle lists"
     "(li|st [vector {map #{set}}])"
     "#_\n(li|st [vector {map #{set}}])"
-    (clojure-toggle-ignore-surrounding-form))
+    (clojure-toggle-discard-surrounding-form))
   (when-refactoring-with-point-it "should toggle vectors"
     "(list #_[vector| {map #{set}}])"
     "(list [vector| {map #{set}}])"
-    (clojure-toggle-ignore-surrounding-form))
+    (clojure-toggle-discard-surrounding-form))
   (when-refactoring-with-point-it "should toggle maps"
     "(list [vector #_  \n {map #{set}|}])"
     "(list [vector {map #{set}|}])"
-    (clojure-toggle-ignore-surrounding-form))
+    (clojure-toggle-discard-surrounding-form))
   (when-refactoring-with-point-it "should toggle sets"
     "(list [vector {map #{set|}}])"
     "(list [vector {map #_#{set|}}])"
-    (clojure-toggle-ignore-surrounding-form))
+    (clojure-toggle-discard-surrounding-form))
   (when-refactoring-with-point-it "should work with numeric arg"
     "(four (three (two (on|e)))"
     "(four (three #_(two (on|e)))"
-    (clojure-toggle-ignore-surrounding-form 2))
+    (clojure-toggle-discard-surrounding-form 2))
   (when-refactoring-with-point-it "should remove #_ with numeric arg"
     "(four #_(three (two (on|e)))"
     "(four (three (two (on|e)))"
-    (clojure-toggle-ignore-surrounding-form 3)))
+    (clojure-toggle-discard-surrounding-form 3)))
 
-(describe "clojure-toggle-ignore-defun"
-  (when-refactoring-with-point-it "should ignore defun with newline"
+(describe "clojure-toggle-discard-defun"
+  (when-refactoring-with-point-it "should discard defun with newline"
     "(defn foo [x]
  {:nested (in|c x)})"
     "#_
 (defn foo [x]
  {:nested (in|c x)})"
-    (clojure-toggle-ignore-defun)))
+    (clojure-toggle-discard-defun)))
+
+(describe "clojure-toggle-ignore obsolete aliases"
+  (it "keeps the old command names working"
+    (expect (indirect-function 'clojure-toggle-ignore)
+            :to-equal (indirect-function 'clojure-toggle-discard))
+    (expect (indirect-function 'clojure-toggle-ignore-surrounding-form)
+            :to-equal (indirect-function 
'clojure-toggle-discard-surrounding-form))
+    (expect (indirect-function 'clojure-toggle-ignore-defun)
+            :to-equal (indirect-function 'clojure-toggle-discard-defun))))
 
 (describe "clojure-find-def"
   (it "should recognize def and defn"

Reply via email to