Mercurial > emacs
annotate lisp/whitespace.el @ 64759:56bc2b539f17
*** empty log message ***
author | Luc Teirlinck <teirllm@auburn.edu> |
---|---|
date | Sat, 06 Aug 2005 21:49:19 +0000 |
parents | 89982901a9ad |
children | 41bb365f41c4 187d6a1f84f7 |
rev | line source |
---|---|
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36945
diff
changeset
|
1 ;;; whitespace.el --- warn about and clean bogus whitespaces in the file |
25582 | 2 |
61394
31aa9a390538
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents:
57522
diff
changeset
|
3 ;; Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc. |
25582 | 4 |
29333
189f70e66cab
Update whitespace.el with a more tolerable timer scan time.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
27583
diff
changeset
|
5 ;; Author: Rajesh Vaidheeswarran <rv@gnu.org> |
25582 | 6 ;; Keywords: convenience |
7 | |
8 ;; This file is part of GNU Emacs. | |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
64091 | 22 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
23 ;; Boston, MA 02110-1301, USA. | |
25582 | 24 |
25 ;;; Commentary: | |
51542 | 26 ;; |
27 ;; URL: http://www.dsmit.com/lisp/ | |
28 ;; | |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
29 ;; The whitespace library is intended to find and help fix five different types |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
30 ;; of whitespace problems that commonly exist in source code. |
51542 | 31 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
32 ;; 1. Leading space (empty lines at the top of a file). |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
33 ;; 2. Trailing space (empty lines at the end of a file). |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
34 ;; 3. Indentation space (8 or more spaces at beginning of line, that should be |
52672
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
35 ;; replaced with TABS). |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
36 ;; 4. Spaces followed by a TAB. (Almost always, we never want that). |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
37 ;; 5. Spaces or TABS at the end of a line. |
51542 | 38 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
39 ;; Whitespace errors are reported in a buffer, and on the modeline. |
51542 | 40 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
41 ;; Modeline will show a W:<x>!<y> to denote a particular type of whitespace, |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
42 ;; where `x' and `y' can be one (or more) of: |
51542 | 43 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
44 ;; e - End-of-Line whitespace. |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
45 ;; i - Indentation whitespace. |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
46 ;; l - Leading whitespace. |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
47 ;; s - Space followed by Tab. |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
48 ;; t - Trailing whitespace. |
51542 | 49 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
50 ;; If any of the whitespace checks is turned off, the modeline will display a |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
51 ;; !<y>. |
51542 | 52 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
53 ;; (since (3) is the most controversial one, here is the rationale: Most |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
54 ;; terminal drivers and printer drivers have TAB configured or even |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
55 ;; hardcoded to be 8 spaces. (Some of them allow configuration, but almost |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
56 ;; always they default to 8.) |
51542 | 57 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
58 ;; Changing `tab-width' to other than 8 and editing will cause your code to |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
59 ;; look different from within Emacs, and say, if you cat it or more it, or |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
60 ;; even print it. |
51542 | 61 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
62 ;; Almost all the popular programming modes let you define an offset (like |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
63 ;; c-basic-offset or perl-indent-level) to configure the offset, so you |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
64 ;; should never have to set your `tab-width' to be other than 8 in all |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
65 ;; these modes. In fact, with an indent level of say, 4, 2 TABS will cause |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
66 ;; Emacs to replace your 8 spaces with one \t (try it). If vi users in |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
67 ;; your office complain, tell them to use vim, which distinguishes between |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
68 ;; tabstop and shiftwidth (vi equivalent of our offsets), and also ask them |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
69 ;; to set smarttab.) |
51542 | 70 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
71 ;; All the above have caused (and will cause) unwanted codeline integration and |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
72 ;; merge problems. |
51542 | 73 ;; |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
74 ;; whitespace.el will complain if it detects whitespaces on opening a file, and |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
75 ;; warn you on closing a file also (in case you had inserted any |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
76 ;; whitespaces during the process of your editing). |
51542 | 77 ;; |
25582 | 78 ;; Exported functions: |
51542 | 79 ;; |
25582 | 80 ;; `whitespace-buffer' - To check the current buffer for whitespace problems. |
81 ;; `whitespace-cleanup' - To cleanup all whitespaces in the current buffer. | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
82 ;; `whitespace-region' - To check between point and mark for whitespace |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
83 ;; problems. |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
84 ;; `whitespace-cleanup-region' - To cleanup all whitespaces between point |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
85 ;; and mark in the current buffer. |
25582 | 86 |
87 ;;; Code: | |
88 | |
61488
230af31ce843
whitespace.el - fix higlighting test and bump rev
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
61471
diff
changeset
|
89 (defvar whitespace-version "3.5" "Version of the whitespace library.") |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
90 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
91 (defvar whitespace-all-buffer-files nil |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
92 "An associated list of buffers and files checked for whitespace cleanliness. |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
93 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
94 This is to enable periodic checking of whitespace cleanliness in the files |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
95 visited by the buffers.") |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
96 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
97 (defvar whitespace-rescan-timer nil |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
98 "Timer object used to rescan the files in buffers that have been modified.") |
25582 | 99 |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
100 ;; Tell Emacs about this new kind of minor mode |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
101 (defvar whitespace-mode nil |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
102 "Non-nil when Whitespace mode (a minor mode) is enabled.") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
103 (make-variable-buffer-local 'whitespace-mode) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
104 (put 'whitespace-mode 'permanent-local nil) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
105 |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
106 (defvar whitespace-mode-line nil |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
107 "String to display in the mode line for Whitespace mode.") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
108 (make-variable-buffer-local 'whitespace-mode-line) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
109 (put 'whitespace-mode-line 'permanent-local nil) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
110 |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
111 (defvar whitespace-check-buffer-leading nil |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
112 "Test leading whitespace for file in current buffer if t.") |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
113 (make-variable-buffer-local 'whitespace-check-buffer-leading) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
114 (put 'whitespace-check-buffer-leading 'permanent-local nil) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
115 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
116 (defvar whitespace-check-buffer-trailing nil |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
117 "Test trailing whitespace for file in current buffer if t.") |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
118 (make-variable-buffer-local 'whitespace-check-buffer-trailing) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
119 (put 'whitespace-check-buffer-trailing 'permanent-local nil) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
120 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
121 (defvar whitespace-check-buffer-indent nil |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
122 "Test indentation whitespace for file in current buffer if t.") |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
123 (make-variable-buffer-local 'whitespace-check-buffer-indent) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
124 (put 'whitespace-check-buffer-indent 'permanent-local nil) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
125 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
126 (defvar whitespace-check-buffer-spacetab nil |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
127 "Test Space-followed-by-TABS whitespace for file in current buffer if t.") |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
128 (make-variable-buffer-local 'whitespace-check-buffer-spacetab) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
129 (put 'whitespace-check-buffer-spacetab 'permanent-local nil) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
130 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
131 (defvar whitespace-check-buffer-ateol nil |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
132 "Test end-of-line whitespace for file in current buffer if t.") |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
133 (make-variable-buffer-local 'whitespace-check-buffer-ateol) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
134 (put 'whitespace-check-buffer-ateol 'permanent-local nil) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
135 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
136 (defvar whitespace-highlighted-space nil |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
137 "The variable to store the extent to highlight.") |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
138 (make-variable-buffer-local 'whitespace-highlighted-space) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
139 (put 'whitespace-highlighted-space 'permanent-local nil) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
140 |
26253
3bb622df1c52
(whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents:
26245
diff
changeset
|
141 ;; For flavors of Emacs which don't define `defgroup' and `defcustom'. |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
142 (eval-when-compile |
26253
3bb622df1c52
(whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents:
26245
diff
changeset
|
143 (if (not (fboundp 'defgroup)) |
3bb622df1c52
(whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents:
26245
diff
changeset
|
144 (defmacro defgroup (sym memb doc &rest args) |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
145 "Null macro for `defgroup' in all versions of Emacs that don't define it." |
26253
3bb622df1c52
(whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents:
26245
diff
changeset
|
146 t)) |
3bb622df1c52
(whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents:
26245
diff
changeset
|
147 (if (not (fboundp 'defcustom)) |
3bb622df1c52
(whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents:
26245
diff
changeset
|
148 (defmacro defcustom (sym val doc &rest args) |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
149 "Macro to alias `defcustom' to `defvar' in all versions of Emacs that |
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
150 don't define it." |
26253
3bb622df1c52
(whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents:
26245
diff
changeset
|
151 `(defvar ,sym ,val ,doc)))) |
25582 | 152 |
64378
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
153 (defalias 'whitespace-make-overlay |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
154 (if (featurep 'xemacs) 'make-extent 'make-overlay)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
155 (defalias 'whitespace-overlay-put |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
156 (if (featurep 'xemacs) 'set-extent-property 'overlay-put)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
157 (defalias 'whitespace-delete-overlay |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
158 (if (featurep 'xemacs) 'delete-extent 'delete-overlay)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
159 (defalias 'whitespace-overlay-start |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
160 (if (featurep 'xemacs) 'extent-start 'overlay-start)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
161 (defalias 'whitespace-overlay-end |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
162 (if (featurep 'xemacs) 'extent-end 'overlay-end)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
163 (defalias 'whitespace-mode-line-update |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
164 (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update)) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
165 |
32501 | 166 (defgroup whitespace nil |
167 "Check for and fix five different types of whitespaces in source code." | |
168 :version "21.1" | |
51542 | 169 :link '(emacs-commentary-link "whitespace.el") |
64378
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
170 ;; Since XEmacs doesn't have a 'convenience group, use the next best group |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
171 ;; which is 'editing? |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
172 :group (if (featurep 'xemacs) 'editing 'convenience)) |
25582 | 173 |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
174 (defcustom whitespace-check-leading-whitespace t |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
175 "Flag to check leading whitespace. This is the global for the system. |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
176 It can be overriden by setting a buffer local variable |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
177 `whitespace-check-buffer-leading'." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
178 :type 'boolean |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
179 :group 'whitespace) |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
180 |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
181 (defcustom whitespace-check-trailing-whitespace t |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
182 "Flag to check trailing whitespace. This is the global for the system. |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
183 It can be overriden by setting a buffer local variable |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
184 `whitespace-check-buffer-trailing'." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
185 :type 'boolean |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
186 :group 'whitespace) |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
187 |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
188 (defcustom whitespace-check-spacetab-whitespace t |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
189 "Flag to check space followed by a TAB. This is the global for the system. |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
190 It can be overriden by setting a buffer local variable |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
191 `whitespace-check-buffer-spacetab'." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
192 :type 'boolean |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
193 :group 'whitespace) |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
194 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
195 (defcustom whitespace-spacetab-regexp "[ ]+\t" |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
196 "Regexp to match a space followed by a TAB." |
32501 | 197 :type 'regexp |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
198 :group 'whitespace) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
199 |
38882 | 200 (defcustom whitespace-check-indent-whitespace indent-tabs-mode |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
201 "Flag to check indentation whitespace. This is the global for the system. |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
202 It can be overriden by setting a buffer local variable |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
203 `whitespace-check-buffer-indent'." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
204 :type 'boolean |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
205 :group 'whitespace) |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
206 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
207 (defcustom whitespace-indent-regexp (concat "^\\(\t*\\) " " ") |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
208 "Regexp to match (any TABS followed by) 8/more whitespaces at start of line." |
32501 | 209 :type 'regexp |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
210 :group 'whitespace) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
211 |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
212 (defcustom whitespace-check-ateol-whitespace t |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
213 "Flag to check end-of-line whitespace. This is the global for the system. |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
214 It can be overriden by setting a buffer local variable |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
215 `whitespace-check-buffer-ateol'." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
216 :type 'boolean |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
217 :group 'whitespace) |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
218 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
219 ;; (defcustom whitespace-ateol-regexp "[ \t]$" |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
220 (defcustom whitespace-ateol-regexp "[ \t]+$" |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
221 "Regexp to match a TAB or a space at the EOL." |
32501 | 222 :type 'regexp |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
223 :group 'whitespace) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
224 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
225 (defcustom whitespace-errbuf "*Whitespace Errors*" |
32501 | 226 "The name of the buffer where whitespace related messages will be logged." |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
227 :type 'string |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
228 :group 'whitespace) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
229 |
52672
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
230 (defcustom whitespace-clean-msg "clean." |
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
231 "If non-nil, this message will be displayed after a whitespace check |
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
232 determines a file to be clean." |
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
233 :type 'string |
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
234 :group 'whitespace) |
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
235 |
38882 | 236 (defcustom whitespace-abort-on-error nil |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
237 "While writing a file, abort if the file is unclean. |
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
238 If `whitespace-auto-cleanup' is set, that takes precedence over |
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
239 this variable." |
38882 | 240 :type 'boolean |
241 :group 'whitespace) | |
242 | |
25582 | 243 (defcustom whitespace-auto-cleanup nil |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
244 "Cleanup a buffer automatically on finding it whitespace unclean." |
25582 | 245 :type 'boolean |
246 :group 'whitespace) | |
247 | |
248 (defcustom whitespace-silent nil | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
249 "All whitespace errors will be shown only in the modeline when t. |
25582 | 250 |
251 Note that setting this may cause all whitespaces introduced in a file to go | |
252 unnoticed when the buffer is killed, unless the user visits the `*Whitespace | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
253 Errors*' buffer before opening (or closing) another file." |
25582 | 254 :type 'boolean |
255 :group 'whitespace) | |
256 | |
257 (defcustom whitespace-modes '(ada-mode asm-mode autoconf-mode awk-mode | |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
258 c-mode c++-mode cc-mode |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
259 change-log-mode cperl-mode |
25582 | 260 electric-nroff-mode emacs-lisp-mode |
261 f90-mode fortran-mode html-mode | |
262 html3-mode java-mode jde-mode | |
263 ksh-mode latex-mode LaTeX-mode | |
264 lisp-mode m4-mode makefile-mode | |
265 modula-2-mode nroff-mode objc-mode | |
266 pascal-mode perl-mode prolog-mode | |
267 python-mode scheme-mode sgml-mode | |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
268 sh-mode shell-script-mode simula-mode |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
269 tcl-mode tex-mode texinfo-mode |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
270 vrml-mode xml-mode) |
25582 | 271 |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
272 "Major modes in which we turn on whitespace checking. |
25582 | 273 |
32501 | 274 These are mostly programming and documentation modes. But you may add other |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
275 modes that you want whitespaces checked in by adding something like the |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
276 following to your `.emacs': |
25582 | 277 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
278 \(setq whitespace-modes (cons 'my-mode (cons 'my-other-mode |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
279 whitespace-modes))\) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
280 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
281 Or, alternately, you can use the Emacs `customize' command to set this." |
32501 | 282 :type '(repeat symbol) |
25582 | 283 :group 'whitespace) |
284 | |
29333
189f70e66cab
Update whitespace.el with a more tolerable timer scan time.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
27583
diff
changeset
|
285 (defcustom whitespace-rescan-timer-time 600 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
286 "Period in seconds to rescan modified buffers for whitespace creep. |
25582 | 287 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
288 This is the period after which the timer will fire causing |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
289 `whitespace-rescan-files-in-buffers' to check for whitespace creep in |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
290 modified buffers. |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
291 |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
292 To disable timer scans, set this to zero." |
25582 | 293 :type 'integer |
294 :group 'whitespace) | |
295 | |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
296 (defcustom whitespace-display-in-modeline t |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
297 "Display whitespace errors on the modeline." |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
298 :type 'boolean |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
299 :group 'whitespace) |
25582 | 300 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
301 (defcustom whitespace-display-spaces-in-color t |
63200
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
302 "Display the bogus whitespaces by coloring them with the face |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
303 `whitespace-highlight'." |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
304 :type 'boolean |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
305 :group 'whitespace) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
306 |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
307 (defgroup whitespace-faces nil |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
308 "Faces used in whitespace." |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
309 :prefix "whitespace-" |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
310 :group 'whitespace |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
311 :group 'faces) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
312 |
63200
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
313 (defface whitespace-highlight '((((class color) (background light)) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
314 (:background "green1")) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
315 (((class color) (background dark)) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
316 (:background "sea green")) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
317 (((class grayscale mono) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
318 (background light)) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
319 (:background "black")) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
320 (((class grayscale mono) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
321 (background dark)) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
322 (:background "white"))) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
323 "Face used for highlighting the bogus whitespaces that exist in the buffer." |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
324 :group 'whitespace-faces) |
63200
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
325 ;; backward-compatibility alias |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
326 (put 'whitespace-highlight-face 'face-alias 'whitespace-highlight) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
327 |
25582 | 328 (if (not (assoc 'whitespace-mode minor-mode-alist)) |
329 (setq minor-mode-alist (cons '(whitespace-mode whitespace-mode-line) | |
330 minor-mode-alist))) | |
331 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
332 (set-default 'whitespace-check-buffer-leading |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
333 whitespace-check-leading-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
334 (set-default 'whitespace-check-buffer-trailing |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
335 whitespace-check-trailing-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
336 (set-default 'whitespace-check-buffer-indent |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
337 whitespace-check-indent-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
338 (set-default 'whitespace-check-buffer-spacetab |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
339 whitespace-check-spacetab-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
340 (set-default 'whitespace-check-buffer-ateol |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
341 whitespace-check-ateol-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
342 |
25582 | 343 (defun whitespace-check-whitespace-mode (&optional arg) |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
344 "Test and set the whitespace-mode in qualifying buffers." |
25582 | 345 (if (null whitespace-mode) |
346 (setq whitespace-mode | |
347 (if (or arg (member major-mode whitespace-modes)) | |
348 t | |
349 nil)))) | |
350 | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
351 ;;;###autoload |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
352 (defun whitespace-toggle-leading-check () |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
353 "Toggle the check for leading space in the local buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
354 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
355 (let ((current-val whitespace-check-buffer-leading)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
356 (setq whitespace-check-buffer-leading (not current-val)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
357 (message "Will%s check for leading space in buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
358 (if whitespace-check-buffer-leading "" " not")) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
359 (if whitespace-check-buffer-leading (whitespace-buffer-leading)))) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
360 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
361 ;;;###autoload |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
362 (defun whitespace-toggle-trailing-check () |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
363 "Toggle the check for trailing space in the local buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
364 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
365 (let ((current-val whitespace-check-buffer-trailing)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
366 (setq whitespace-check-buffer-trailing (not current-val)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
367 (message "Will%s check for trailing space in buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
368 (if whitespace-check-buffer-trailing "" " not")) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
369 (if whitespace-check-buffer-trailing (whitespace-buffer-trailing)))) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
370 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
371 ;;;###autoload |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
372 (defun whitespace-toggle-indent-check () |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
373 "Toggle the check for indentation space in the local buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
374 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
375 (let ((current-val whitespace-check-buffer-indent)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
376 (setq whitespace-check-buffer-indent (not current-val)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
377 (message "Will%s check for indentation space in buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
378 (if whitespace-check-buffer-indent "" " not")) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
379 (if whitespace-check-buffer-indent |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
380 (whitespace-buffer-search whitespace-indent-regexp)))) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
381 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
382 ;;;###autoload |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
383 (defun whitespace-toggle-spacetab-check () |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
384 "Toggle the check for space-followed-by-TABs in the local buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
385 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
386 (let ((current-val whitespace-check-buffer-spacetab)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
387 (setq whitespace-check-buffer-spacetab (not current-val)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
388 (message "Will%s check for space-followed-by-TABs in buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
389 (if whitespace-check-buffer-spacetab "" " not")) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
390 (if whitespace-check-buffer-spacetab |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
391 (whitespace-buffer-search whitespace-spacetab-regexp)))) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
392 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
393 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
394 ;;;###autoload |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
395 (defun whitespace-toggle-ateol-check () |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
396 "Toggle the check for end-of-line space in the local buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
397 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
398 (let ((current-val whitespace-check-buffer-ateol)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
399 (setq whitespace-check-buffer-ateol (not current-val)) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
400 (message "Will%s check for end-of-line space in buffer." |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
401 (if whitespace-check-buffer-ateol "" " not")) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
402 (if whitespace-check-buffer-ateol |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
403 (whitespace-buffer-search whitespace-ateol-regexp)))) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
404 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
405 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
406 ;;;###autoload |
25582 | 407 (defun whitespace-buffer (&optional quiet) |
32501 | 408 "Find five different types of white spaces in buffer. |
409 These are: | |
25582 | 410 1. Leading space \(empty lines at the top of a file\). |
411 2. Trailing space \(empty lines at the end of a file\). | |
412 3. Indentation space \(8 or more spaces, that should be replaced with TABS\). | |
413 4. Spaces followed by a TAB. \(Almost always, we never want that\). | |
414 5. Spaces or TABS at the end of a line. | |
415 | |
416 Check for whitespace only if this buffer really contains a non-empty file | |
417 and: | |
418 1. the major mode is one of the whitespace-modes, or | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
419 2. `whitespace-buffer' was explicitly called with a prefix argument." |
25582 | 420 (interactive) |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
421 (let ((whitespace-error nil)) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
422 (whitespace-check-whitespace-mode current-prefix-arg) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
423 (if (and buffer-file-name (> (buffer-size) 0) whitespace-mode) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
424 (progn |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
425 (whitespace-check-buffer-list (buffer-name) buffer-file-name) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
426 (whitespace-tickle-timer) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
427 (whitespace-unhighlight-the-space) |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
428 (if whitespace-auto-cleanup |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
429 (if buffer-read-only |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
430 (if (not quiet) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
431 (message "Can't cleanup: %s is read-only" (buffer-name))) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
432 (whitespace-cleanup)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
433 (let ((whitespace-leading (if whitespace-check-buffer-leading |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
434 (whitespace-buffer-leading) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
435 nil)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
436 (whitespace-trailing (if whitespace-check-buffer-trailing |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
437 (whitespace-buffer-trailing) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
438 nil)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
439 (whitespace-indent (if whitespace-check-buffer-indent |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
440 (whitespace-buffer-search |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
441 whitespace-indent-regexp) |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
442 nil)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
443 (whitespace-spacetab (if whitespace-check-buffer-spacetab |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
444 (whitespace-buffer-search |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
445 whitespace-spacetab-regexp) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
446 nil)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
447 (whitespace-ateol (if whitespace-check-buffer-ateol |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
448 (whitespace-buffer-search |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
449 whitespace-ateol-regexp) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
450 nil)) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
451 (whitespace-errmsg nil) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
452 (whitespace-filename buffer-file-name) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
453 (whitespace-this-modeline "")) |
25582 | 454 |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
455 ;; Now let's complain if we found any of the above. |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
456 (setq whitespace-error (or whitespace-leading whitespace-indent |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
457 whitespace-spacetab whitespace-ateol |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
458 whitespace-trailing)) |
25582 | 459 |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
460 (if whitespace-error |
25582 | 461 (progn |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
462 (setq whitespace-errmsg |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
463 (concat whitespace-filename " contains:\n" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
464 (if whitespace-leading |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
465 "Leading whitespace\n") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
466 (if whitespace-indent |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
467 (concat "Indentation whitespace" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
468 whitespace-indent "\n")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
469 (if whitespace-spacetab |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
470 (concat "Space followed by Tab" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
471 whitespace-spacetab "\n")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
472 (if whitespace-ateol |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
473 (concat "End-of-line whitespace" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
474 whitespace-ateol "\n")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
475 (if whitespace-trailing |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
476 "Trailing whitespace\n") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
477 "\ntype `M-x whitespace-cleanup' to " |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
478 "cleanup the file.")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
479 (setq whitespace-this-modeline |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
480 (concat (if whitespace-ateol "e") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
481 (if whitespace-indent "i") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
482 (if whitespace-leading "l") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
483 (if whitespace-spacetab "s") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
484 (if whitespace-trailing "t"))))) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
485 (whitespace-update-modeline whitespace-this-modeline) |
61395
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
486 (if (get-buffer whitespace-errbuf) |
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
487 (kill-buffer whitespace-errbuf)) |
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
488 (with-current-buffer (get-buffer-create whitespace-errbuf) |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
489 (if whitespace-errmsg |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
490 (progn |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
491 (insert whitespace-errmsg) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
492 (if (not (or quiet whitespace-silent)) |
61395
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
493 (display-buffer (current-buffer) t)) |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
494 (if (not quiet) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
495 (message "Whitespaces: [%s%s] in %s" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
496 whitespace-this-modeline |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
497 (let ((whitespace-unchecked |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
498 (whitespace-unchecked-whitespaces))) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
499 (if whitespace-unchecked |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
500 (concat "!" whitespace-unchecked) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
501 "")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
502 whitespace-filename))) |
52672
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
503 (if (and (not quiet) (not (equal whitespace-clean-msg ""))) |
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
504 (message "%s %s" whitespace-filename |
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
505 whitespace-clean-msg)))))))) |
61395
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
506 whitespace-error)) |
25582 | 507 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
508 ;;;###autoload |
25582 | 509 (defun whitespace-region (s e) |
32501 | 510 "Check the region for whitespace errors." |
25582 | 511 (interactive "r") |
512 (save-excursion | |
513 (save-restriction | |
514 (narrow-to-region s e) | |
515 (whitespace-buffer)))) | |
516 | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
517 ;;;###autoload |
25582 | 518 (defun whitespace-cleanup () |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
519 "Cleanup the five different kinds of whitespace problems. |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
520 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
521 Use \\[describe-function] whitespace-describe to read a summary of the |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
522 whitespace problems." |
25582 | 523 (interactive) |
524 ;; If this buffer really contains a file, then run, else quit. | |
525 (whitespace-check-whitespace-mode current-prefix-arg) | |
526 (if (and buffer-file-name whitespace-mode) | |
527 (let ((whitespace-any nil) | |
528 (whitespace-tabwith 8) | |
529 (whitespace-tabwith-saved tab-width)) | |
530 | |
531 ;; since all printable TABS should be 8, irrespective of how | |
532 ;; they are displayed. | |
533 (setq tab-width whitespace-tabwith) | |
534 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
535 (if (and whitespace-check-buffer-leading |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
536 (whitespace-buffer-leading)) |
25582 | 537 (progn |
538 (whitespace-buffer-leading-cleanup) | |
539 (setq whitespace-any t))) | |
540 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
541 (if (and whitespace-check-buffer-trailing |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
542 (whitespace-buffer-trailing)) |
25582 | 543 (progn |
544 (whitespace-buffer-trailing-cleanup) | |
545 (setq whitespace-any t))) | |
546 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
547 (if (and whitespace-check-buffer-indent |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
548 (whitespace-buffer-search whitespace-indent-regexp)) |
25582 | 549 (progn |
550 (whitespace-indent-cleanup) | |
551 (setq whitespace-any t))) | |
552 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
553 (if (and whitespace-check-buffer-spacetab |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
554 (whitespace-buffer-search whitespace-spacetab-regexp)) |
25582 | 555 (progn |
556 (whitespace-buffer-cleanup whitespace-spacetab-regexp "\t") | |
557 (setq whitespace-any t))) | |
558 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
559 (if (and whitespace-check-buffer-ateol |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
560 (whitespace-buffer-search whitespace-ateol-regexp)) |
25582 | 561 (progn |
562 (whitespace-buffer-cleanup whitespace-ateol-regexp "") | |
563 (setq whitespace-any t))) | |
564 | |
565 ;; Call this recursively till everything is taken care of | |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
566 (if whitespace-any |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
567 (whitespace-cleanup) |
25582 | 568 (progn |
51543
38c9480b767a
Respect user preference
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
51542
diff
changeset
|
569 (if (not whitespace-silent) |
38c9480b767a
Respect user preference
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
51542
diff
changeset
|
570 (message "%s clean" buffer-file-name)) |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
571 (whitespace-update-modeline))) |
25582 | 572 (setq tab-width whitespace-tabwith-saved)))) |
573 | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
574 ;;;###autoload |
25582 | 575 (defun whitespace-cleanup-region (s e) |
32501 | 576 "Whitespace cleanup on the region." |
25582 | 577 (interactive "r") |
578 (save-excursion | |
579 (save-restriction | |
580 (narrow-to-region s e) | |
581 (whitespace-cleanup)) | |
582 (whitespace-buffer t))) | |
583 | |
584 (defun whitespace-buffer-leading () | |
585 "Check to see if there are any empty lines at the top of the file." | |
586 (save-excursion | |
587 (let ((pmin nil) | |
588 (pmax nil)) | |
589 (goto-char (point-min)) | |
590 (beginning-of-line) | |
591 (setq pmin (point)) | |
592 (end-of-line) | |
593 (setq pmax (point)) | |
61492
875507693e78
whitespace.el - revert hasty fix, fix highlight area for leading and trailing space.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
61488
diff
changeset
|
594 (if (equal pmin pmax) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
595 (progn |
61492
875507693e78
whitespace.el - revert hasty fix, fix highlight area for leading and trailing space.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
61488
diff
changeset
|
596 (whitespace-highlight-the-space pmin (1+ pmax)) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
597 t) |
25582 | 598 nil)))) |
599 | |
600 (defun whitespace-buffer-leading-cleanup () | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
601 "Remove any empty lines at the top of the file." |
25582 | 602 (save-excursion |
64178
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
603 (goto-char (point-min)) |
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
604 (skip-chars-forward "\n") |
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
605 (delete-region (point-min) (point)))) |
25582 | 606 |
607 (defun whitespace-buffer-trailing () | |
608 "Check to see if are is more than one empty line at the bottom." | |
609 (save-excursion | |
610 (let ((pmin nil) | |
611 (pmax nil)) | |
612 (goto-char (point-max)) | |
613 (beginning-of-line) | |
614 (setq pmin (point)) | |
615 (end-of-line) | |
616 (setq pmax (point)) | |
617 (if (equal pmin pmax) | |
618 (progn | |
619 (goto-char (- (point) 1)) | |
620 (beginning-of-line) | |
621 (setq pmin (point)) | |
622 (end-of-line) | |
623 (setq pmax (point)) | |
61492
875507693e78
whitespace.el - revert hasty fix, fix highlight area for leading and trailing space.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
61488
diff
changeset
|
624 (if (equal pmin pmax) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
625 (progn |
61492
875507693e78
whitespace.el - revert hasty fix, fix highlight area for leading and trailing space.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
61488
diff
changeset
|
626 (whitespace-highlight-the-space (- pmin 1) pmax) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
627 t) |
25582 | 628 nil)) |
629 nil)))) | |
630 | |
631 (defun whitespace-buffer-trailing-cleanup () | |
632 "Delete all the empty lines at the bottom." | |
633 (save-excursion | |
64178
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
634 (goto-char (point-max)) |
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
635 (skip-chars-backward "\n") |
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
636 (if (not (bolp)) |
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
637 (forward-char 1)) |
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
638 (delete-region (point) (point-max)))) |
25582 | 639 |
640 (defun whitespace-buffer-search (regexp) | |
641 "Search for any given whitespace REGEXP." | |
642 (let ((whitespace-retval "")) | |
643 (save-excursion | |
644 (goto-char (point-min)) | |
645 (while (re-search-forward regexp nil t) | |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
646 (progn |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
647 (setq whitespace-retval (format "%s %s" whitespace-retval |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
648 (match-beginning 0))) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
649 (whitespace-highlight-the-space (match-beginning 0) (match-end 0)))) |
25582 | 650 (if (equal "" whitespace-retval) |
651 nil | |
652 whitespace-retval)))) | |
653 | |
654 (defun whitespace-buffer-cleanup (regexp newregexp) | |
655 "Search for any given whitespace REGEXP and replace it with the NEWREGEXP." | |
656 (save-excursion | |
657 (goto-char (point-min)) | |
658 (while (re-search-forward regexp nil t) | |
659 (replace-match newregexp)))) | |
660 | |
661 (defun whitespace-indent-cleanup () | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
662 "Search for 8/more spaces at the start of a line and replace it with tabs." |
25582 | 663 (save-excursion |
664 (goto-char (point-min)) | |
665 (while (re-search-forward whitespace-indent-regexp nil t) | |
666 (let ((column (current-column)) | |
667 (indent-tabs-mode t)) | |
668 (delete-region (match-beginning 0) (point)) | |
669 (indent-to column))))) | |
670 | |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
671 (defun whitespace-unchecked-whitespaces () |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
672 "Return the list of whitespaces whose testing has been suppressed." |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
673 (let ((unchecked-spaces |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
674 (concat (if (not whitespace-check-buffer-ateol) "e") |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
675 (if (not whitespace-check-buffer-indent) "i") |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
676 (if (not whitespace-check-buffer-leading) "l") |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
677 (if (not whitespace-check-buffer-spacetab) "s") |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
678 (if (not whitespace-check-buffer-trailing) "t")))) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
679 (if (not (equal unchecked-spaces "")) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
680 unchecked-spaces |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
681 nil))) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
682 |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
683 (defun whitespace-update-modeline (&optional whitespace-err) |
32501 | 684 "Update modeline with whitespace errors. |
685 Also with whitespaces whose testing has been turned off." | |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
686 (if whitespace-display-in-modeline |
26259
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
687 (progn |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
688 (setq whitespace-mode-line nil) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
689 ;; Whitespace errors |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
690 (if (and whitespace-err (not (equal whitespace-err ""))) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
691 (setq whitespace-mode-line whitespace-err)) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
692 ;; Whitespace suppressed errors |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
693 (let ((whitespace-unchecked (whitespace-unchecked-whitespaces))) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
694 (if whitespace-unchecked |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
695 (setq whitespace-mode-line |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
696 (concat whitespace-mode-line "!" whitespace-unchecked)))) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
697 ;; Add the whitespace modeline prefix |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
698 (setq whitespace-mode-line (if whitespace-mode-line |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
699 (concat " W:" whitespace-mode-line) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
700 nil)) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
701 (whitespace-mode-line-update)))) |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
702 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
703 (defun whitespace-highlight-the-space (b e) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
704 "Highlight the current line, unhighlighting a previously jumped to line." |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
705 (if whitespace-display-spaces-in-color |
61395
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
706 (let ((ol (whitespace-make-overlay b e))) |
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
707 (push ol whitespace-highlighted-space) |
63200
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
708 (whitespace-overlay-put ol 'face 'whitespace-highlight)))) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
709 ;; (add-hook 'pre-command-hook 'whitespace-unhighlight-the-space)) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
710 |
61471
c85ac0c1b8e9
(whitespace-highlight-the-space):
Richard M. Stallman <rms@gnu.org>
parents:
61395
diff
changeset
|
711 (defun whitespace-unhighlight-the-space() |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
712 "Unhighlight the currently highlight line." |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
713 (if (and whitespace-display-spaces-in-color whitespace-highlighted-space) |
61395
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
714 (progn |
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
715 (mapc 'whitespace-delete-overlay whitespace-highlighted-space) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
716 (setq whitespace-highlighted-space nil)) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
717 (remove-hook 'pre-command-hook 'whitespace-unhighlight-the-space))) |
25582 | 718 |
719 (defun whitespace-check-buffer-list (buf-name buf-file) | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
720 "Add a buffer and its file to the whitespace monitor list. |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
721 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
722 The buffer named BUF-NAME and its associated file BUF-FILE are now monitored |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
723 periodically for whitespace." |
25582 | 724 (if (and whitespace-mode (not (member (list buf-file buf-name) |
725 whitespace-all-buffer-files))) | |
726 (add-to-list 'whitespace-all-buffer-files (list buf-file buf-name)))) | |
727 | |
728 (defun whitespace-tickle-timer () | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
729 "Tickle timer to periodically to scan qualifying files for whitespace creep. |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
730 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
731 If timer is not set, then set it to scan the files in |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
732 `whitespace-all-buffer-files' periodically (defined by |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
733 `whitespace-rescan-timer-time') for whitespace creep." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
734 (if (and whitespace-rescan-timer-time (not whitespace-rescan-timer)) |
25582 | 735 (setq whitespace-rescan-timer |
32501 | 736 (add-timeout whitespace-rescan-timer-time |
737 'whitespace-rescan-files-in-buffers nil | |
738 whitespace-rescan-timer-time)))) | |
25582 | 739 |
740 (defun whitespace-rescan-files-in-buffers (&optional arg) | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
741 "Check monitored files for whitespace creep since last scan." |
25582 | 742 (let ((whitespace-all-my-files whitespace-all-buffer-files) |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
743 buffile bufname thiselt buf) |
25582 | 744 (if (not whitespace-all-my-files) |
745 (progn | |
32501 | 746 (disable-timeout whitespace-rescan-timer) |
25582 | 747 (setq whitespace-rescan-timer nil)) |
748 (while whitespace-all-my-files | |
749 (setq thiselt (car whitespace-all-my-files)) | |
750 (setq whitespace-all-my-files (cdr whitespace-all-my-files)) | |
751 (setq buffile (car thiselt)) | |
752 (setq bufname (cadr thiselt)) | |
753 (setq buf (get-buffer bufname)) | |
754 (if (buffer-live-p buf) | |
755 (save-excursion | |
756 ;;(message "buffer %s live" bufname) | |
757 (set-buffer bufname) | |
758 (if whitespace-mode | |
759 (progn | |
760 ;;(message "checking for whitespace in %s" bufname) | |
761 (if whitespace-auto-cleanup | |
762 (progn | |
763 ;;(message "cleaning up whitespace in %s" bufname) | |
764 (whitespace-cleanup)) | |
765 (progn | |
766 ;;(message "whitespace-buffer %s." (buffer-name)) | |
767 (whitespace-buffer t)))) | |
768 ;;(message "Removing %s from refresh list" bufname) | |
769 (whitespace-refresh-rescan-list buffile bufname))) | |
770 ;;(message "Removing %s from refresh list" bufname) | |
771 (whitespace-refresh-rescan-list buffile bufname)))))) | |
772 | |
773 (defun whitespace-refresh-rescan-list (buffile bufname) | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
774 "Refresh the list of files to be rescaned for whitespace creep." |
25582 | 775 (if whitespace-all-buffer-files |
32501 | 776 (setq whitespace-all-buffer-files |
777 (delete (list buffile bufname) whitespace-all-buffer-files)) | |
778 (when whitespace-rescan-timer | |
779 (disable-timeout whitespace-rescan-timer) | |
780 (setq whitespace-rescan-timer nil)))) | |
781 | |
782 ;;;###autoload | |
56763
e9a8ab6f16fc
(global-whitespace-mode): New alias for whitespace-global-mode.
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
783 (defalias 'global-whitespace-mode 'whitespace-global-mode) |
e9a8ab6f16fc
(global-whitespace-mode): New alias for whitespace-global-mode.
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
784 |
e9a8ab6f16fc
(global-whitespace-mode): New alias for whitespace-global-mode.
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
785 ;;;###autoload |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
786 (define-minor-mode whitespace-global-mode |
32501 | 787 "Toggle using Whitespace mode in new buffers. |
52672
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
788 With ARG, turn the mode on iff ARG is positive. |
32501 | 789 |
790 When this mode is active, `whitespace-buffer' is added to | |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
791 `find-file-hook' and `kill-buffer-hook'." |
50964
d5b5bbb27b2f
Add :link to commentary section
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
48631
diff
changeset
|
792 :global t |
d5b5bbb27b2f
Add :link to commentary section
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
48631
diff
changeset
|
793 :group 'whitespace |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
794 (if whitespace-global-mode |
25582 | 795 (progn |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
796 (add-hook 'find-file-hook 'whitespace-buffer) |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
797 (add-hook 'write-file-functions 'whitespace-write-file-hook nil t) |
32501 | 798 (add-hook 'kill-buffer-hook 'whitespace-buffer)) |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
799 (remove-hook 'find-file-hook 'whitespace-buffer) |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
800 (remove-hook 'write-file-functions 'whitespace-write-file-hook t) |
32501 | 801 (remove-hook 'kill-buffer-hook 'whitespace-buffer))) |
25582 | 802 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
803 ;;;###autoload |
38882 | 804 (defun whitespace-write-file-hook () |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
805 "Hook function to be called on the buffer when whitespace check is enabled. |
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
806 This is meant to be added buffer-locally to `write-file-functions'." |
38882 | 807 (interactive) |
808 (let ((werr nil)) | |
809 (if whitespace-auto-cleanup | |
810 (whitespace-cleanup) | |
811 (setq werr (whitespace-buffer))) | |
812 (if (and whitespace-abort-on-error werr) | |
813 (error (concat "Abort write due to whitespaces in " | |
814 buffer-file-name)))) | |
815 nil) | |
816 | |
32501 | 817 (defun whitespace-unload-hook () |
47420
b7a8fec8113c
(whitespace-global-mode): Use define-minor-mode. Use the new file hook names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42013
diff
changeset
|
818 (remove-hook 'find-file-hook 'whitespace-buffer) |
47454
cf95d79a66c4
(whitespace-unload-hook): Call `remove-hook' with three arguments, not four.
Juanma Barranquero <lekktu@gmail.com>
parents:
47420
diff
changeset
|
819 (remove-hook 'write-file-functions 'whitespace-write-file-hook t) |
32501 | 820 (remove-hook 'kill-buffer-hook 'whitespace-buffer)) |
821 | |
57522
3f7aa44cf697
(whitespace-unload-hook): Set the variable.
Richard M. Stallman <rms@gnu.org>
parents:
56763
diff
changeset
|
822 (add-hook 'whitespace-unload-hook 'whitespace-unload-hook) |
3f7aa44cf697
(whitespace-unload-hook): Set the variable.
Richard M. Stallman <rms@gnu.org>
parents:
56763
diff
changeset
|
823 |
25582 | 824 (provide 'whitespace) |
52401 | 825 |
61395
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
826 ;; arch-tag: 4ff44e87-b63c-402d-95a6-15e51e58bd0c |
25582 | 827 ;;; whitespace.el ends here |