Mercurial > emacs
annotate lisp/whitespace.el @ 87919:5e627a8698d8
* replace.el (occur-mode-find-occurrence-hook): New hook that can
be used to reveal or highlight the location of a match.
(occur-mode-goto-occurrence)
(occur-mode-goto-occurrence-other-window)
(occur-mode-display-occurrence): Run
`occur-mode-find-occurrence-hook'.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Wed, 23 Jan 2008 10:49:31 +0000 |
parents | 5d58981e6690 |
children |
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 |
74442 | 3 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, |
79721 | 4 ;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
25582 | 5 |
29333
189f70e66cab
Update whitespace.el with a more tolerable timer scan time.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
27583
diff
changeset
|
6 ;; Author: Rajesh Vaidheeswarran <rv@gnu.org> |
25582 | 7 ;; Keywords: convenience |
8 | |
9 ;; This file is part of GNU Emacs. | |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; it under the terms of the GNU General Public License as published by | |
78236
9355f9b7bbff
Switch license to GPLv3 or later.
Glenn Morris <rgm@gnu.org>
parents:
76692
diff
changeset
|
13 ;; the Free Software Foundation; either version 3, or (at your option) |
25582 | 14 ;; any later version. |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
64091 | 23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 ;; Boston, MA 02110-1301, USA. | |
25582 | 25 |
26 ;;; Commentary: | |
51542 | 27 ;; |
28 ;; URL: http://www.dsmit.com/lisp/ | |
29 ;; | |
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
|
30 ;; 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
|
31 ;; of whitespace problems that commonly exist in source code. |
51542 | 32 ;; |
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
|
33 ;; 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
|
34 ;; 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
|
35 ;; 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
|
36 ;; 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
|
37 ;; 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
|
38 ;; 5. Spaces or TABS at the end of a line. |
51542 | 39 ;; |
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
|
40 ;; Whitespace errors are reported in a buffer, and on the modeline. |
51542 | 41 ;; |
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
|
42 ;; 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
|
43 ;; where `x' and `y' can be one (or more) of: |
51542 | 44 ;; |
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
|
45 ;; 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
|
46 ;; 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
|
47 ;; 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
|
48 ;; 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
|
49 ;; t - Trailing whitespace. |
51542 | 50 ;; |
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
|
51 ;; 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
|
52 ;; !<y>. |
51542 | 53 ;; |
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
|
54 ;; (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
|
55 ;; 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
|
56 ;; 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
|
57 ;; always they default to 8.) |
51542 | 58 ;; |
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
|
59 ;; 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
|
60 ;; 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
|
61 ;; even print it. |
51542 | 62 ;; |
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
|
63 ;; 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
|
64 ;; 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
|
65 ;; 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
|
66 ;; 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
|
67 ;; 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
|
68 ;; 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
|
69 ;; 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
|
70 ;; to set smarttab.) |
51542 | 71 ;; |
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
|
72 ;; 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
|
73 ;; merge problems. |
51542 | 74 ;; |
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
|
75 ;; 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
|
76 ;; 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
|
77 ;; whitespaces during the process of your editing). |
51542 | 78 ;; |
25582 | 79 ;; Exported functions: |
51542 | 80 ;; |
25582 | 81 ;; `whitespace-buffer' - To check the current buffer for whitespace problems. |
82 ;; `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
|
83 ;; `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
|
84 ;; problems. |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
85 ;; `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
|
86 ;; and mark in the current buffer. |
25582 | 87 |
88 ;;; Code: | |
89 | |
61488
230af31ce843
whitespace.el - fix higlighting test and bump rev
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
61471
diff
changeset
|
90 (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
|
91 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
92 (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
|
93 "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
|
94 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
95 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
|
96 visited by the buffers.") |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
97 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
98 (defvar whitespace-rescan-timer nil |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
99 "Timer object used to rescan the files in buffers that have been modified.") |
25582 | 100 |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
101 ;; 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
|
102 (defvar whitespace-mode nil |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
103 "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
|
104 (make-variable-buffer-local 'whitespace-mode) |
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 |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
110 (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
|
111 "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
|
112 (make-variable-buffer-local 'whitespace-check-buffer-leading) |
79661
c273395cbfd3
* whitespace.el (whitespace-check-buffer-leading)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
79296
diff
changeset
|
113 ;;;###autoload(put 'whitespace-check-buffer-leading 'safe-local-variable 'booleanp) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
114 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
115 (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
|
116 "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
|
117 (make-variable-buffer-local 'whitespace-check-buffer-trailing) |
79661
c273395cbfd3
* whitespace.el (whitespace-check-buffer-leading)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
79296
diff
changeset
|
118 ;;;###autoload(put 'whitespace-check-buffer-trailing 'safe-local-variable 'booleanp) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
119 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
120 (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
|
121 "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
|
122 (make-variable-buffer-local 'whitespace-check-buffer-indent) |
79661
c273395cbfd3
* whitespace.el (whitespace-check-buffer-leading)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
79296
diff
changeset
|
123 ;;;###autoload(put 'whitespace-check-buffer-indent 'safe-local-variable 'booleanp) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
124 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
125 (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
|
126 "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
|
127 (make-variable-buffer-local 'whitespace-check-buffer-spacetab) |
79661
c273395cbfd3
* whitespace.el (whitespace-check-buffer-leading)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
79296
diff
changeset
|
128 ;;;###autoload(put 'whitespace-check-buffer-spacetab 'safe-local-variable 'booleanp) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
129 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
130 (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
|
131 "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
|
132 (make-variable-buffer-local 'whitespace-check-buffer-ateol) |
79661
c273395cbfd3
* whitespace.el (whitespace-check-buffer-leading)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
79296
diff
changeset
|
133 ;;;###autoload(put 'whitespace-check-buffer-ateol 'safe-local-variable 'booleanp) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
134 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
135 (defvar whitespace-highlighted-space nil |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
136 "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
|
137 (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
|
138 |
64378
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
139 (defalias 'whitespace-make-overlay |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
140 (if (featurep 'xemacs) 'make-extent 'make-overlay)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
141 (defalias 'whitespace-overlay-put |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
142 (if (featurep 'xemacs) 'set-extent-property 'overlay-put)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
143 (defalias 'whitespace-delete-overlay |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
144 (if (featurep 'xemacs) 'delete-extent 'delete-overlay)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
145 (defalias 'whitespace-overlay-start |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
146 (if (featurep 'xemacs) 'extent-start 'overlay-start)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
147 (defalias 'whitespace-overlay-end |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
148 (if (featurep 'xemacs) 'extent-end 'overlay-end)) |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
149 (defalias 'whitespace-mode-line-update |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
150 (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
|
151 |
32501 | 152 (defgroup whitespace nil |
153 "Check for and fix five different types of whitespaces in source code." | |
154 :version "21.1" | |
51542 | 155 :link '(emacs-commentary-link "whitespace.el") |
64378
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
156 ;; 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
|
157 ;; which is 'editing? |
89982901a9ad
(whitespace-make-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64286
diff
changeset
|
158 :group (if (featurep 'xemacs) 'editing 'convenience)) |
25582 | 159 |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
160 (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
|
161 "Flag to check leading whitespace. This is the global for the system. |
79856
ee51adf0aeff
(whitespace-check-leading-whitespace, whitespace-check-trailing-whitespace,
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
162 It can be overridden 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
|
163 `whitespace-check-buffer-leading'." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
164 :type 'boolean |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
165 :group 'whitespace) |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
166 |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
167 (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
|
168 "Flag to check trailing whitespace. This is the global for the system. |
79856
ee51adf0aeff
(whitespace-check-leading-whitespace, whitespace-check-trailing-whitespace,
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
169 It can be overridden 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
|
170 `whitespace-check-buffer-trailing'." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
171 :type 'boolean |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
172 :group 'whitespace) |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
173 |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
174 (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
|
175 "Flag to check space followed by a TAB. This is the global for the system. |
79856
ee51adf0aeff
(whitespace-check-leading-whitespace, whitespace-check-trailing-whitespace,
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
176 It can be overridden 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-spacetab'." |
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 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
181 (defcustom whitespace-spacetab-regexp "[ ]+\t" |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
182 "Regexp to match one or more spaces followed by a TAB." |
32501 | 183 :type 'regexp |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
184 :group 'whitespace) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
185 |
38882 | 186 (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
|
187 "Flag to check indentation whitespace. This is the global for the system. |
79856
ee51adf0aeff
(whitespace-check-leading-whitespace, whitespace-check-trailing-whitespace,
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
188 It can be overridden 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
|
189 `whitespace-check-buffer-indent'." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
190 :type 'boolean |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
191 :group 'whitespace) |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
192 |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
193 (defcustom whitespace-indent-regexp "^\t*\\( \\)+" |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
194 "Regexp to match multiples of eight spaces near line beginnings. |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
195 The default value ignores leading TABs." |
32501 | 196 :type 'regexp |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
197 :group 'whitespace) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
198 |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
199 (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
|
200 "Flag to check end-of-line whitespace. This is the global for the system. |
79856
ee51adf0aeff
(whitespace-check-leading-whitespace, whitespace-check-trailing-whitespace,
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
201 It can be overridden 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
|
202 `whitespace-check-buffer-ateol'." |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
203 :type 'boolean |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
204 :group 'whitespace) |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
205 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
206 (defcustom whitespace-ateol-regexp "[ \t]+$" |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
207 "Regexp to match one or more TABs or spaces at line ends." |
32501 | 208 :type 'regexp |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
209 :group 'whitespace) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
210 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
211 (defcustom whitespace-errbuf "*Whitespace Errors*" |
32501 | 212 "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
|
213 :type 'string |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
214 :group 'whitespace) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
215 |
52672
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
216 (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
|
217 "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
|
218 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
|
219 :type 'string |
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
220 :group 'whitespace) |
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
221 |
38882 | 222 (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
|
223 "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
|
224 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
|
225 this variable." |
38882 | 226 :type 'boolean |
227 :group 'whitespace) | |
228 | |
25582 | 229 (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
|
230 "Cleanup a buffer automatically on finding it whitespace unclean." |
25582 | 231 :type 'boolean |
232 :group 'whitespace) | |
233 | |
234 (defcustom whitespace-silent nil | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
235 "All whitespace errors will be shown only in the modeline when t. |
25582 | 236 |
237 Note that setting this may cause all whitespaces introduced in a file to go | |
238 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
|
239 Errors*' buffer before opening (or closing) another file." |
25582 | 240 :type 'boolean |
241 :group 'whitespace) | |
242 | |
243 (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
|
244 c-mode c++-mode cc-mode |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
245 change-log-mode cperl-mode |
25582 | 246 electric-nroff-mode emacs-lisp-mode |
247 f90-mode fortran-mode html-mode | |
248 html3-mode java-mode jde-mode | |
249 ksh-mode latex-mode LaTeX-mode | |
250 lisp-mode m4-mode makefile-mode | |
251 modula-2-mode nroff-mode objc-mode | |
252 pascal-mode perl-mode prolog-mode | |
253 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
|
254 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
|
255 tcl-mode tex-mode texinfo-mode |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
256 vrml-mode xml-mode) |
25582 | 257 |
64286
f44bd79f483b
(whitespace-check-buffer-leading, whitespace-check-buffer-trailing,
Juanma Barranquero <lekktu@gmail.com>
parents:
64178
diff
changeset
|
258 "Major modes in which we turn on whitespace checking. |
25582 | 259 |
32501 | 260 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
|
261 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
|
262 following to your `.emacs': |
25582 | 263 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
264 \(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
|
265 whitespace-modes))\) |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
266 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
267 Or, alternately, you can use the Emacs `customize' command to set this." |
32501 | 268 :type '(repeat symbol) |
25582 | 269 :group 'whitespace) |
270 | |
29333
189f70e66cab
Update whitespace.el with a more tolerable timer scan time.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
27583
diff
changeset
|
271 (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
|
272 "Period in seconds to rescan modified buffers for whitespace creep. |
25582 | 273 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
274 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
|
275 `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
|
276 modified buffers. |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
277 |
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
278 To disable timer scans, set this to zero." |
25582 | 279 :type 'integer |
280 :group 'whitespace) | |
281 | |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
282 (defcustom whitespace-display-in-modeline t |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
283 "Display whitespace errors on the modeline." |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
284 :type 'boolean |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
285 :group 'whitespace) |
25582 | 286 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
287 (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
|
288 "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
|
289 `whitespace-highlight'." |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
290 :type 'boolean |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
291 :group 'whitespace) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
292 |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
293 (defgroup whitespace-faces nil |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
294 "Faces used in whitespace." |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
295 :prefix "whitespace-" |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
296 :group 'whitespace |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
297 :group 'faces) |
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
298 |
63200
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
299 (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
|
300 (:background "green1")) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
301 (((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
|
302 (: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
|
303 (((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
|
304 (background light)) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
305 (:background "black")) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
306 (((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
|
307 (background dark)) |
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
308 (:background "white"))) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
309 "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
|
310 :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
|
311 ;; 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
|
312 (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
|
313 |
25582 | 314 (if (not (assoc 'whitespace-mode minor-mode-alist)) |
315 (setq minor-mode-alist (cons '(whitespace-mode whitespace-mode-line) | |
316 minor-mode-alist))) | |
317 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
318 (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
|
319 whitespace-check-leading-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
320 (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
|
321 whitespace-check-trailing-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
322 (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
|
323 whitespace-check-indent-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
324 (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
|
325 whitespace-check-spacetab-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
326 (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
|
327 whitespace-check-ateol-whitespace) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
328 |
25582 | 329 (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
|
330 "Test and set the whitespace-mode in qualifying buffers." |
25582 | 331 (if (null whitespace-mode) |
332 (setq whitespace-mode | |
333 (if (or arg (member major-mode whitespace-modes)) | |
334 t | |
335 nil)))) | |
336 | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
337 ;;;###autoload |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
338 (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
|
339 "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
|
340 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
341 (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
|
342 (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
|
343 (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
|
344 (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
|
345 (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
|
346 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
347 ;;;###autoload |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
348 (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
|
349 "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
|
350 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
351 (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
|
352 (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
|
353 (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
|
354 (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
|
355 (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
|
356 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
357 ;;;###autoload |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
358 (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
|
359 "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
|
360 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
361 (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
|
362 (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
|
363 (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
|
364 (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
|
365 (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
|
366 (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
|
367 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
368 ;;;###autoload |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
369 (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
|
370 "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
|
371 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
372 (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
|
373 (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
|
374 (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
|
375 (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
|
376 (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
|
377 (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
|
378 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
379 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
380 ;;;###autoload |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
381 (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
|
382 "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
|
383 (interactive) |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
384 (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
|
385 (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
|
386 (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
|
387 (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
|
388 (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
|
389 (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
|
390 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
391 |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
392 ;;;###autoload |
25582 | 393 (defun whitespace-buffer (&optional quiet) |
32501 | 394 "Find five different types of white spaces in buffer. |
395 These are: | |
25582 | 396 1. Leading space \(empty lines at the top of a file\). |
397 2. Trailing space \(empty lines at the end of a file\). | |
398 3. Indentation space \(8 or more spaces, that should be replaced with TABS\). | |
399 4. Spaces followed by a TAB. \(Almost always, we never want that\). | |
400 5. Spaces or TABS at the end of a line. | |
401 | |
402 Check for whitespace only if this buffer really contains a non-empty file | |
403 and: | |
404 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
|
405 2. `whitespace-buffer' was explicitly called with a prefix argument." |
25582 | 406 (interactive) |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
407 (let ((whitespace-error nil)) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
408 (whitespace-check-whitespace-mode current-prefix-arg) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
409 (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
|
410 (progn |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
411 (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
|
412 (whitespace-tickle-timer) |
73812
75af8d959739
(whitespace-buffer): Call remove-overlays after overlay-recenter for
Chong Yidong <cyd@stupidchicken.com>
parents:
73666
diff
changeset
|
413 (overlay-recenter (point-max)) |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
414 (remove-overlays nil nil 'face 'whitespace-highlight) |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
415 (if whitespace-auto-cleanup |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
416 (if buffer-read-only |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
417 (if (not quiet) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
418 (message "Can't cleanup: %s is read-only" (buffer-name))) |
70927
1d492927a08d
whitespace.el - make whitesspace-cleanup use the current active regoin, if there is one.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
68651
diff
changeset
|
419 (whitespace-cleanup-internal)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
420 (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
|
421 (whitespace-buffer-leading) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
422 nil)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
423 (whitespace-trailing (if whitespace-check-buffer-trailing |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
424 (whitespace-buffer-trailing) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
425 nil)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
426 (whitespace-indent (if whitespace-check-buffer-indent |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
427 (whitespace-buffer-search |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
428 whitespace-indent-regexp) |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
429 nil)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
430 (whitespace-spacetab (if whitespace-check-buffer-spacetab |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
431 (whitespace-buffer-search |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
432 whitespace-spacetab-regexp) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
433 nil)) |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
434 (whitespace-ateol (if whitespace-check-buffer-ateol |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
435 (whitespace-buffer-search |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
436 whitespace-ateol-regexp) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
437 nil)) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
438 (whitespace-errmsg nil) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
439 (whitespace-filename buffer-file-name) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
440 (whitespace-this-modeline "")) |
25582 | 441 |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
442 ;; 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
|
443 (setq whitespace-error (or whitespace-leading whitespace-indent |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
444 whitespace-spacetab whitespace-ateol |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
445 whitespace-trailing)) |
25582 | 446 |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
447 (if whitespace-error |
25582 | 448 (progn |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
449 (setq whitespace-errmsg |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
450 (concat whitespace-filename " contains:\n" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
451 (if whitespace-leading |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
452 "Leading whitespace\n") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
453 (if whitespace-indent |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
454 (concat "Indentation whitespace" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
455 whitespace-indent "\n")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
456 (if whitespace-spacetab |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
457 (concat "Space followed by Tab" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
458 whitespace-spacetab "\n")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
459 (if whitespace-ateol |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
460 (concat "End-of-line whitespace" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
461 whitespace-ateol "\n")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
462 (if whitespace-trailing |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
463 "Trailing whitespace\n") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
464 "\ntype `M-x whitespace-cleanup' to " |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
465 "cleanup the file.")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
466 (setq whitespace-this-modeline |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
467 (concat (if whitespace-ateol "e") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
468 (if whitespace-indent "i") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
469 (if whitespace-leading "l") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
470 (if whitespace-spacetab "s") |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
471 (if whitespace-trailing "t"))))) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
472 (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
|
473 (if (get-buffer whitespace-errbuf) |
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
474 (kill-buffer whitespace-errbuf)) |
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
475 (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
|
476 (if whitespace-errmsg |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
477 (progn |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
478 (insert whitespace-errmsg) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
479 (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
|
480 (display-buffer (current-buffer) t)) |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
481 (if (not quiet) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
482 (message "Whitespaces: [%s%s] in %s" |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
483 whitespace-this-modeline |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
484 (let ((whitespace-unchecked |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
485 (whitespace-unchecked-whitespaces))) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
486 (if whitespace-unchecked |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
487 (concat "!" whitespace-unchecked) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
488 "")) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
489 whitespace-filename))) |
52672
d4d213cfb340
whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
52401
diff
changeset
|
490 (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
|
491 (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
|
492 whitespace-clean-msg)))))))) |
61395
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
493 whitespace-error)) |
25582 | 494 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
495 ;;;###autoload |
25582 | 496 (defun whitespace-region (s e) |
32501 | 497 "Check the region for whitespace errors." |
25582 | 498 (interactive "r") |
499 (save-excursion | |
500 (save-restriction | |
501 (narrow-to-region s e) | |
502 (whitespace-buffer)))) | |
503 | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
504 ;;;###autoload |
25582 | 505 (defun whitespace-cleanup () |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
506 "Cleanup the five different kinds of whitespace problems. |
72472
1f82c3397a43
(whitespace-cleanup): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72442
diff
changeset
|
507 It normally applies to the whole buffer, but in Transient Mark mode |
1f82c3397a43
(whitespace-cleanup): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72442
diff
changeset
|
508 when the mark is active it applies to the region. |
66327
63c0efccff42
(whitespace-cleanup): Doc fix.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64762
diff
changeset
|
509 See `whitespace-buffer' docstring for a summary of the problems." |
25582 | 510 (interactive) |
70927
1d492927a08d
whitespace.el - make whitesspace-cleanup use the current active regoin, if there is one.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
68651
diff
changeset
|
511 (if (and transient-mark-mode mark-active) |
1d492927a08d
whitespace.el - make whitesspace-cleanup use the current active regoin, if there is one.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
68651
diff
changeset
|
512 (whitespace-cleanup-region (region-beginning) (region-end)) |
1d492927a08d
whitespace.el - make whitesspace-cleanup use the current active regoin, if there is one.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
68651
diff
changeset
|
513 (whitespace-cleanup-internal))) |
1d492927a08d
whitespace.el - make whitesspace-cleanup use the current active regoin, if there is one.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
68651
diff
changeset
|
514 |
72442
384cd9b2e977
(whitespace-cleanup-internal): New optional arg REGION-ONLY. If it's non-nil,
Eli Zaretskii <eliz@gnu.org>
parents:
70927
diff
changeset
|
515 (defun whitespace-cleanup-internal (&optional region-only) |
25582 | 516 ;; If this buffer really contains a file, then run, else quit. |
517 (whitespace-check-whitespace-mode current-prefix-arg) | |
518 (if (and buffer-file-name whitespace-mode) | |
519 (let ((whitespace-any nil) | |
520 (whitespace-tabwith 8) | |
521 (whitespace-tabwith-saved tab-width)) | |
522 | |
523 ;; since all printable TABS should be 8, irrespective of how | |
524 ;; they are displayed. | |
525 (setq tab-width whitespace-tabwith) | |
526 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
527 (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
|
528 (whitespace-buffer-leading)) |
25582 | 529 (progn |
530 (whitespace-buffer-leading-cleanup) | |
531 (setq whitespace-any t))) | |
532 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
533 (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
|
534 (whitespace-buffer-trailing)) |
25582 | 535 (progn |
536 (whitespace-buffer-trailing-cleanup) | |
537 (setq whitespace-any t))) | |
538 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
539 (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
|
540 (whitespace-buffer-search whitespace-indent-regexp)) |
25582 | 541 (progn |
542 (whitespace-indent-cleanup) | |
543 (setq whitespace-any t))) | |
544 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
545 (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
|
546 (whitespace-buffer-search whitespace-spacetab-regexp)) |
25582 | 547 (progn |
548 (whitespace-buffer-cleanup whitespace-spacetab-regexp "\t") | |
549 (setq whitespace-any t))) | |
550 | |
36944
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
551 (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
|
552 (whitespace-buffer-search whitespace-ateol-regexp)) |
25582 | 553 (progn |
554 (whitespace-buffer-cleanup whitespace-ateol-regexp "") | |
555 (setq whitespace-any t))) | |
556 | |
557 ;; 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
|
558 (if whitespace-any |
74396
ee60f0fe10d6
(whitespace-cleanup-internal): Use current
Dan Nicolaescu <dann@ics.uci.edu>
parents:
73812
diff
changeset
|
559 (whitespace-cleanup-internal region-only) |
72442
384cd9b2e977
(whitespace-cleanup-internal): New optional arg REGION-ONLY. If it's non-nil,
Eli Zaretskii <eliz@gnu.org>
parents:
70927
diff
changeset
|
560 ;; if we are done, talk to the user |
25582 | 561 (progn |
72442
384cd9b2e977
(whitespace-cleanup-internal): New optional arg REGION-ONLY. If it's non-nil,
Eli Zaretskii <eliz@gnu.org>
parents:
70927
diff
changeset
|
562 (unless whitespace-silent |
384cd9b2e977
(whitespace-cleanup-internal): New optional arg REGION-ONLY. If it's non-nil,
Eli Zaretskii <eliz@gnu.org>
parents:
70927
diff
changeset
|
563 (if region-only |
384cd9b2e977
(whitespace-cleanup-internal): New optional arg REGION-ONLY. If it's non-nil,
Eli Zaretskii <eliz@gnu.org>
parents:
70927
diff
changeset
|
564 (message "The region is now clean") |
384cd9b2e977
(whitespace-cleanup-internal): New optional arg REGION-ONLY. If it's non-nil,
Eli Zaretskii <eliz@gnu.org>
parents:
70927
diff
changeset
|
565 (message "%s is now clean" buffer-file-name))) |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
566 (whitespace-update-modeline))) |
25582 | 567 (setq tab-width whitespace-tabwith-saved)))) |
568 | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
569 ;;;###autoload |
25582 | 570 (defun whitespace-cleanup-region (s e) |
32501 | 571 "Whitespace cleanup on the region." |
25582 | 572 (interactive "r") |
573 (save-excursion | |
574 (save-restriction | |
575 (narrow-to-region s e) | |
72442
384cd9b2e977
(whitespace-cleanup-internal): New optional arg REGION-ONLY. If it's non-nil,
Eli Zaretskii <eliz@gnu.org>
parents:
70927
diff
changeset
|
576 (whitespace-cleanup-internal t)) |
25582 | 577 (whitespace-buffer t))) |
578 | |
579 (defun whitespace-buffer-leading () | |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
580 "Return t if the current buffer has leading newline characters. |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
581 If highlighting is enabled, highlight these characters." |
25582 | 582 (save-excursion |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
583 (goto-char (point-min)) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
584 (skip-chars-forward "\n") |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
585 (unless (bobp) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
586 (whitespace-highlight-the-space (point-min) (point)) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
587 t))) |
25582 | 588 |
589 (defun whitespace-buffer-leading-cleanup () | |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
590 "Remove any leading newline characters from current buffer." |
25582 | 591 (save-excursion |
64178
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
592 (goto-char (point-min)) |
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
593 (skip-chars-forward "\n") |
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
594 (delete-region (point-min) (point)))) |
25582 | 595 |
596 (defun whitespace-buffer-trailing () | |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
597 "Return t if the current buffer has extra trailing newline characters. |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
598 If highlighting is enabled, highlight these characters." |
25582 | 599 (save-excursion |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
600 (goto-char (point-max)) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
601 (skip-chars-backward "\n") |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
602 (forward-line) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
603 (unless (eobp) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
604 (whitespace-highlight-the-space (point) (point-max)) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
605 t))) |
25582 | 606 |
607 (defun whitespace-buffer-trailing-cleanup () | |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
608 "Remove extra trailing newline characters from current buffer." |
25582 | 609 (save-excursion |
64178
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
610 (goto-char (point-max)) |
0b1f11faf0b2
(whitespace-buffer-leading-cleanup): Simplify w/ skip-chars-forward.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
611 (skip-chars-backward "\n") |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
612 (unless (eobp) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
613 (forward-line) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
614 (delete-region (point) (point-max))))) |
25582 | 615 |
616 (defun whitespace-buffer-search (regexp) | |
617 "Search for any given whitespace REGEXP." | |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
618 (with-local-quit |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
619 (let (whitespace-retval) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
620 (save-excursion |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
621 (goto-char (point-min)) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
622 (while (re-search-forward regexp nil t) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
623 (whitespace-highlight-the-space (match-beginning 0) (match-end 0)) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
624 (push (match-beginning 0) whitespace-retval))) |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
625 (when whitespace-retval |
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
626 (format " %s" (nreverse whitespace-retval)))))) |
25582 | 627 |
628 (defun whitespace-buffer-cleanup (regexp newregexp) | |
629 "Search for any given whitespace REGEXP and replace it with the NEWREGEXP." | |
630 (save-excursion | |
631 (goto-char (point-min)) | |
632 (while (re-search-forward regexp nil t) | |
633 (replace-match newregexp)))) | |
634 | |
635 (defun whitespace-indent-cleanup () | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
636 "Search for 8/more spaces at the start of a line and replace it with tabs." |
25582 | 637 (save-excursion |
638 (goto-char (point-min)) | |
639 (while (re-search-forward whitespace-indent-regexp nil t) | |
640 (let ((column (current-column)) | |
641 (indent-tabs-mode t)) | |
642 (delete-region (match-beginning 0) (point)) | |
643 (indent-to column))))) | |
644 | |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
645 (defun whitespace-unchecked-whitespaces () |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
646 "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
|
647 (let ((unchecked-spaces |
4d294c5bb2ac
whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
35050
diff
changeset
|
648 (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
|
649 (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
|
650 (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
|
651 (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
|
652 (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
|
653 (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
|
654 unchecked-spaces |
26245
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
655 nil))) |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
656 |
2dbd5efce8ee
(whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents:
25732
diff
changeset
|
657 (defun whitespace-update-modeline (&optional whitespace-err) |
32501 | 658 "Update modeline with whitespace errors. |
659 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
|
660 (if whitespace-display-in-modeline |
26259
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
661 (progn |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
662 (setq whitespace-mode-line nil) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
663 ;; Whitespace errors |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
664 (if (and whitespace-err (not (equal whitespace-err ""))) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
665 (setq whitespace-mode-line whitespace-err)) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
666 ;; Whitespace suppressed errors |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
667 (let ((whitespace-unchecked (whitespace-unchecked-whitespaces))) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
668 (if whitespace-unchecked |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
669 (setq whitespace-mode-line |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
670 (concat whitespace-mode-line "!" whitespace-unchecked)))) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
671 ;; Add the whitespace modeline prefix |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
672 (setq whitespace-mode-line (if whitespace-mode-line |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
673 (concat " W:" whitespace-mode-line) |
912b004387d9
(whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents:
26253
diff
changeset
|
674 nil)) |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
675 (whitespace-mode-line-update)))) |
25724
6664d8f25ea5
(whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents:
25625
diff
changeset
|
676 |
42013
0ad4d3e3bfe6
Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
38882
diff
changeset
|
677 (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
|
678 "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
|
679 (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
|
680 (let ((ol (whitespace-make-overlay b e))) |
63200
eef21c221eff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Miles Bader <miles@gnu.org>
parents:
61492
diff
changeset
|
681 (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
|
682 |
61471
c85ac0c1b8e9
(whitespace-highlight-the-space):
Richard M. Stallman <rms@gnu.org>
parents:
61395
diff
changeset
|
683 (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
|
684 "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
|
685 (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
|
686 (progn |
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
687 (mapc 'whitespace-delete-overlay whitespace-highlighted-space) |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
688 (setq whitespace-highlighted-space nil)))) |
25582 | 689 |
690 (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
|
691 "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
|
692 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
693 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
|
694 periodically for whitespace." |
25582 | 695 (if (and whitespace-mode (not (member (list buf-file buf-name) |
696 whitespace-all-buffer-files))) | |
697 (add-to-list 'whitespace-all-buffer-files (list buf-file buf-name)))) | |
698 | |
699 (defun whitespace-tickle-timer () | |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
700 "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
|
701 |
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
702 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
|
703 `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
|
704 `whitespace-rescan-timer-time') for whitespace creep." |
84837
aff02a4292a0
(whitespace-tickle-timer): Don't install the timer if
Michaël Cadilhac <michael.cadilhac@lrde.org>
parents:
78492
diff
changeset
|
705 (if (and whitespace-rescan-timer-time |
aff02a4292a0
(whitespace-tickle-timer): Don't install the timer if
Michaël Cadilhac <michael.cadilhac@lrde.org>
parents:
78492
diff
changeset
|
706 (/= whitespace-rescan-timer-time 0) |
aff02a4292a0
(whitespace-tickle-timer): Don't install the timer if
Michaël Cadilhac <michael.cadilhac@lrde.org>
parents:
78492
diff
changeset
|
707 (not whitespace-rescan-timer)) |
25582 | 708 (setq whitespace-rescan-timer |
32501 | 709 (add-timeout whitespace-rescan-timer-time |
710 'whitespace-rescan-files-in-buffers nil | |
711 whitespace-rescan-timer-time)))) | |
25582 | 712 |
713 (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
|
714 "Check monitored files for whitespace creep since last scan." |
25582 | 715 (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
|
716 buffile bufname thiselt buf) |
25582 | 717 (if (not whitespace-all-my-files) |
718 (progn | |
32501 | 719 (disable-timeout whitespace-rescan-timer) |
25582 | 720 (setq whitespace-rescan-timer nil)) |
721 (while whitespace-all-my-files | |
722 (setq thiselt (car whitespace-all-my-files)) | |
723 (setq whitespace-all-my-files (cdr whitespace-all-my-files)) | |
724 (setq buffile (car thiselt)) | |
725 (setq bufname (cadr thiselt)) | |
726 (setq buf (get-buffer bufname)) | |
727 (if (buffer-live-p buf) | |
728 (save-excursion | |
729 ;;(message "buffer %s live" bufname) | |
730 (set-buffer bufname) | |
731 (if whitespace-mode | |
732 (progn | |
733 ;;(message "checking for whitespace in %s" bufname) | |
734 (if whitespace-auto-cleanup | |
735 (progn | |
736 ;;(message "cleaning up whitespace in %s" bufname) | |
70927
1d492927a08d
whitespace.el - make whitesspace-cleanup use the current active regoin, if there is one.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
68651
diff
changeset
|
737 (whitespace-cleanup-internal)) |
25582 | 738 (progn |
739 ;;(message "whitespace-buffer %s." (buffer-name)) | |
740 (whitespace-buffer t)))) | |
741 ;;(message "Removing %s from refresh list" bufname) | |
742 (whitespace-refresh-rescan-list buffile bufname))) | |
743 ;;(message "Removing %s from refresh list" bufname) | |
744 (whitespace-refresh-rescan-list buffile bufname)))))) | |
745 | |
746 (defun whitespace-refresh-rescan-list (buffile bufname) | |
73666
b0f398ac4cbd
(whitespace-indent-regexp): Make this match any multiples of eight spaces near
Eli Zaretskii <eliz@gnu.org>
parents:
72472
diff
changeset
|
747 "Refresh the list of files to be rescanned for whitespace creep." |
25582 | 748 (if whitespace-all-buffer-files |
32501 | 749 (setq whitespace-all-buffer-files |
750 (delete (list buffile bufname) whitespace-all-buffer-files)) | |
751 (when whitespace-rescan-timer | |
752 (disable-timeout whitespace-rescan-timer) | |
753 (setq whitespace-rescan-timer nil)))) | |
754 | |
755 ;;;###autoload | |
56763
e9a8ab6f16fc
(global-whitespace-mode): New alias for whitespace-global-mode.
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
756 (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
|
757 |
e9a8ab6f16fc
(global-whitespace-mode): New alias for whitespace-global-mode.
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
758 ;;;###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
|
759 (define-minor-mode whitespace-global-mode |
32501 | 760 "Toggle using Whitespace mode in new buffers. |
78492
7c8949dbfa0d
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78236
diff
changeset
|
761 With ARG, turn the mode on if ARG is positive, otherwise turn it off. |
32501 | 762 |
763 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
|
764 `find-file-hook' and `kill-buffer-hook'." |
50964
d5b5bbb27b2f
Add :link to commentary section
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
48631
diff
changeset
|
765 :global t |
d5b5bbb27b2f
Add :link to commentary section
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
48631
diff
changeset
|
766 :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
|
767 (if whitespace-global-mode |
25582 | 768 (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
|
769 (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
|
770 (add-hook 'write-file-functions 'whitespace-write-file-hook nil t) |
32501 | 771 (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
|
772 (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
|
773 (remove-hook 'write-file-functions 'whitespace-write-file-hook t) |
32501 | 774 (remove-hook 'kill-buffer-hook 'whitespace-buffer))) |
25582 | 775 |
25625
c0e27d3ce645
Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents:
25582
diff
changeset
|
776 ;;;###autoload |
38882 | 777 (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
|
778 "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
|
779 This is meant to be added buffer-locally to `write-file-functions'." |
38882 | 780 (let ((werr nil)) |
781 (if whitespace-auto-cleanup | |
70927
1d492927a08d
whitespace.el - make whitesspace-cleanup use the current active regoin, if there is one.
Rajesh Vaidheeswarran <rv@gnu.org>
parents:
68651
diff
changeset
|
782 (whitespace-cleanup-internal) |
38882 | 783 (setq werr (whitespace-buffer))) |
784 (if (and whitespace-abort-on-error werr) | |
87139
f358a2fd5895
Fix buggy calls to `error'.
Deepak Goel <deego@gnufans.org>
parents:
85973
diff
changeset
|
785 (error "Abort write due to whitespaces in %s" |
f358a2fd5895
Fix buggy calls to `error'.
Deepak Goel <deego@gnufans.org>
parents:
85973
diff
changeset
|
786 buffer-file-name))) |
38882 | 787 nil) |
788 | |
79292
256e724f6460
(whitespace-write-file-hook): Remove interactive spec.
Juanma Barranquero <lekktu@gmail.com>
parents:
78492
diff
changeset
|
789 (defun whitespace-unload-function () |
256e724f6460
(whitespace-write-file-hook): Remove interactive spec.
Juanma Barranquero <lekktu@gmail.com>
parents:
78492
diff
changeset
|
790 "Unload the whitespace library." |
79296
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
791 (if (unintern "whitespace-unload-hook") |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
792 ;; if whitespace-unload-hook is defined, let's get rid of it |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
793 ;; and recursively call `unload-feature' |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
794 (progn (unload-feature 'whitespace) t) |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
795 ;; this only happens in the recursive call |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
796 (whitespace-global-mode -1) |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
797 (save-current-buffer |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
798 (dolist (buf (buffer-list)) |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
799 (set-buffer buf) |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
800 (remove-hook 'write-file-functions 'whitespace-write-file-hook t))) |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
801 ;; continue standard unloading |
82de3a8b0f8d
(whitespace-unload-function): New-style unload function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79292
diff
changeset
|
802 nil)) |
79292
256e724f6460
(whitespace-write-file-hook): Remove interactive spec.
Juanma Barranquero <lekktu@gmail.com>
parents:
78492
diff
changeset
|
803 |
32501 | 804 (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
|
805 (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
|
806 (remove-hook 'write-file-functions 'whitespace-write-file-hook t) |
32501 | 807 (remove-hook 'kill-buffer-hook 'whitespace-buffer)) |
808 | |
57522
3f7aa44cf697
(whitespace-unload-hook): Set the variable.
Richard M. Stallman <rms@gnu.org>
parents:
56763
diff
changeset
|
809 (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
|
810 |
25582 | 811 (provide 'whitespace) |
52401 | 812 |
61395
21f8452c722e
(whitespace-highlight-the-space): Put the same overlay
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61394
diff
changeset
|
813 ;; arch-tag: 4ff44e87-b63c-402d-95a6-15e51e58bd0c |
25582 | 814 ;;; whitespace.el ends here |