]> code.delx.au - gnu-emacs/blobdiff - lisp/whitespace.el
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
[gnu-emacs] / lisp / whitespace.el
index b4cd67ff6b91c2abed1b0d01330b551a08e0f535..af906bab38fda4d35cc838f2a7568e0a590d411e 100644 (file)
@@ -1,6 +1,6 @@
 ;;; whitespace.el --- minor mode to visualize TAB, (HARD) SPACE, NEWLINE
 
-;; Copyright (C) 2000-2015 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
 ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
@@ -528,41 +528,44 @@ these values is:
    2. space-before-tab::tab
    3. space-before-tab::space
 
-So, for example, if indentation and indentation::space are
-included in `whitespace-style' list, the indentation value is
-evaluated instead of indentation::space value.
+For example, if `indentation' and `indentation::space' are
+included in `whitespace-style', the `indentation' value is used
+instead of the `indentation::space' value.
 
-One reason for not visualize spaces via faces (if `face' is not
-included in `whitespace-style') is to use exclusively for
-cleaning up a buffer.  See `whitespace-cleanup' and
-`whitespace-cleanup-region' for documentation.
+One reason to not use faces to visualize spaces (i.e., not
+include `face' in `whitespace-style') is to use `whitespace-mode'
+only for cleaning up a buffer.  See `whitespace-cleanup' and
+`whitespace-cleanup-region'.
 
 See also `whitespace-display-mappings' for documentation."
-  :type '(repeat :tag "Kind of Blank"
-                (choice :tag "Kind of Blank Face"
-                        (const :tag "(Face) Face visualization"
-                               face)
-                        (const :tag "(Face) Trailing TABs, SPACEs and HARD SPACEs"
-                               trailing)
-                        (const :tag "(Face) SPACEs and HARD SPACEs"
-                               spaces)
-                        (const :tag "(Face) TABs" tabs)
-                        (const :tag "(Face) Lines" lines)
-                        (const :tag "(Face) SPACEs before TAB"
-                               space-before-tab)
-                        (const :tag "(Face) NEWLINEs" newline)
-                        (const :tag "(Face) Indentation SPACEs"
-                               indentation)
-                        (const :tag "(Face) Too much line indentation"
-                               big-indent)
-                        (const :tag "(Face) Empty Lines At BOB And/Or EOB"
-                               empty)
-                        (const :tag "(Face) SPACEs after TAB"
-                               space-after-tab)
-                        (const :tag "(Mark) SPACEs and HARD SPACEs"
-                               space-mark)
-                        (const :tag "(Mark) TABs" tab-mark)
-                        (const :tag "(Mark) NEWLINEs" newline-mark)))
+  :type '(set :tag "Kind of Blank"
+              (const :tag "(Face) Face visualization" face)
+              (const :tag "(Face) Trailing TABs, SPACEs and HARD SPACEs"
+                     trailing)
+              (const :tag "(Face) TABs" tabs)
+              (const :tag "(Face) SPACEs and HARD SPACEs" spaces)
+              (const :tag "(Face) Lines" lines)
+              (const :tag "(Face) Lines, only overlong part" lines-tail)
+              (const :tag "(Face) NEWLINEs" newline)
+              (const :tag "(Face) Empty Lines At BOB And/Or EOB" empty)
+              (const :tag "(Face) Indentation SPACEs" indentation::tab)
+              (const :tag "(Face) Indentation TABs"
+                     indentation::space)
+              (const :tag "(Face) Indentation TABs or SPACEs" indentation)
+              (const :tag "(Face) Too much line indentation" big-indent)
+              (const :tag "(Face) SPACEs after TAB: SPACEs"
+                     space-after-tab::tab)
+              (const :tag "(Face) SPACEs after TAB: TABs"
+                     space-after-tab::space)
+              (const :tag "(Face) SPACEs after TAB" space-after-tab)
+              (const :tag "(Face) SPACEs before TAB: SPACEs"
+                     space-before-tab::tab)
+              (const :tag "(Face) SPACEs before TAB: TABs"
+                     space-before-tab::space)
+              (const :tag "(Face) SPACEs before TAB" space-before-tab)
+              (const :tag "(Mark) SPACEs and HARD SPACEs" space-mark)
+              (const :tag "(Mark) TABs" tab-mark)
+              (const :tag "(Mark) NEWLINEs" newline-mark))
   :group 'whitespace)
 
 (defvar whitespace-space 'whitespace-space
@@ -881,28 +884,29 @@ Used when `whitespace-style' includes `lines' or `lines-tail'."
   :type '(choice :tag "Line Length Limit"
                 (integer :tag "Line Length")
                 (const :tag "Use fill-column" nil))
+  :safe  'integerp
   :group 'whitespace)
 
 
 ;; Hacked from `visible-whitespace-mappings' in visws.el
 (defcustom whitespace-display-mappings
   '(
-    (space-mark   ?\     [?\u00B7]     [?.])           ; space - centered dot
-    (space-mark   ?\xA0  [?\u00A4]     [?_])           ; hard space - currency
+    (space-mark   ?\     [?·]     [?.])               ; space - middle dot
+    (space-mark   ?\xA0  [?¤]     [?_])               ; hard space - currency sign
     ;; NEWLINE is displayed using the face `whitespace-newline'
     (newline-mark ?\n    [?$ ?\n])                     ; eol - dollar sign
-    ;; (newline-mark ?\n    [?\u21B5 ?\n] [?$ ?\n])    ; eol - downwards arrow
-    ;; (newline-mark ?\n    [?\u00B6 ?\n] [?$ ?\n])    ; eol - pilcrow
-    ;; (newline-mark ?\n    [?\u00AF ?\n]  [?$ ?\n])   ; eol - overscore
-    ;; (newline-mark ?\n    [?\u00AC ?\n]  [?$ ?\n])   ; eol - negation
-    ;; (newline-mark ?\n    [?\u00B0 ?\n]  [?$ ?\n])   ; eol - degrees
+    ;; (newline-mark ?\n    [?↵ ?\n] [?$ ?\n])       ; eol - downwards arrow
+    ;; (newline-mark ?\n    [?¶ ?\n] [?$ ?\n])        ; eol - pilcrow
+    ;; (newline-mark ?\n    [?¯ ?\n]  [?$ ?\n])       ; eol - overscore
+    ;; (newline-mark ?\n    [?¬ ?\n]  [?$ ?\n])       ; eol - negation
+    ;; (newline-mark ?\n    [?° ?\n]  [?$ ?\n])       ; eol - degrees
     ;;
     ;; WARNING: the mapping below has a problem.
     ;; When a TAB occupies exactly one column, it will display the
     ;; character ?\xBB at that column followed by a TAB which goes to
     ;; the next TAB column.
     ;; If this is a problem for you, please, comment the line below.
-    (tab-mark     ?\t    [?\u00BB ?\t] [?\\ ?\t])      ; tab - left quote mark
+    (tab-mark     ?\t    [?» ?\t] [?\\ ?\t])  ; tab - right guillemet
     )
   "Specify an alist of mappings for displaying characters.
 
@@ -1862,9 +1866,11 @@ cleaning up these problems."
              (whitespace-insert-value ws-tab-width)
              (when has-bogus
                (goto-char (point-max))
-               (insert " Type `M-x whitespace-cleanup'"
+               (insert (substitute-command-keys
+                         " Type `\\[whitespace-cleanup]'")
                        " to cleanup the buffer.\n\n"
-                       " Type `M-x whitespace-cleanup-region'"
+                       (substitute-command-keys
+                         " Type `\\[whitespace-cleanup-region]'")
                        " to cleanup a region.\n\n"))
              (whitespace-display-window (current-buffer)))))
        has-bogus))))
@@ -1925,13 +1931,13 @@ cleaning up these problems."
 
 
 (defun whitespace-mark-x (nchars condition)
-  "Insert the mark ('X' or ' ') after NCHARS depending on CONDITION."
+  "Insert the mark (`X' or ` ') after NCHARS depending on CONDITION."
   (forward-char nchars)
   (insert (if condition "X" " ")))
 
 
 (defun whitespace-insert-option-mark (the-list the-value)
-  "Insert the option mark ('X' or ' ') in toggle options buffer."
+  "Insert the option mark (`X' or ` ') in toggle options buffer."
   (goto-char (point-min))
   (forward-line 2)
   (dolist (sym  the-list)