X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/4fc35edd5fcdfe258c04cfed707753fdd8795a72..5155144bd4cece3bab200a0eb613ffcdef523202:/lisp/whitespace.el diff --git a/lisp/whitespace.el b/lisp/whitespace.el index b4cd67ff6b..af906bab38 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -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 ;; Maintainer: Vinicius Jose Latorre @@ -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)