annotate lisp/whitespace.el @ 54124:17dfaa4af669

(Documentation Tips): Fix typo.
author Luc Teirlinck <teirllm@auburn.edu>
date Sun, 22 Feb 2004 16:20:09 +0000
parents d4d213cfb340
children f0eb34e60705 e8824c4f5f7e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
2
34304
dd613770eb0f Fix copyright years.
Dave Love <fx@gnu.org>
parents: 32501
diff changeset
3 ;; Copyright (C) 1999, 2000 Free Software Foundation, Inc.
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
4
29333
189f70e66cab Update whitespace.el with a more tolerable timer scan time.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 27583
diff changeset
5 ;; Author: Rajesh Vaidheeswarran <rv@gnu.org>
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
6 ;; Keywords: convenience
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
7
52672
d4d213cfb340 whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 52401
diff changeset
8 ;; $Id: whitespace.el,v 1.26 2003/09/01 15:45:18 miles Exp $
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
10
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
11 ;; GNU Emacs is free software; you can redistribute it and/or modify
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
14 ;; any later version.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
15
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
20
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
24 ;; Boston, MA 02111-1307, USA.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
25
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
26 ;;; Commentary:
51542
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
27 ;;
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
28 ;; URL: http://www.dsmit.com/lisp/
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
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
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
78 ;;
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
79 ;; Exported functions:
51542
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
80 ;;
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
81 ;; `whitespace-buffer' - To check the current buffer for whitespace problems.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
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
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
87
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
88 ;;; Code:
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
89
52672
d4d213cfb340 whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 52401
diff changeset
90 (defvar whitespace-version "3.4" "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
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
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 (put 'whitespace-mode 'permanent-local nil)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
106
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
107 (defvar whitespace-mode-line nil
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
108 "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
109 (make-variable-buffer-local 'whitespace-mode-line)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
110 (put 'whitespace-mode-line 'permanent-local nil)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
111
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
112 (defvar whitespace-check-buffer-leading nil
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
113 "Test leading whitespace for file in current buffer if t")
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
114 (make-variable-buffer-local 'whitespace-check-buffer-leading)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
115 (put 'whitespace-check-buffer-leading 'permanent-local nil)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
116
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
117 (defvar whitespace-check-buffer-trailing nil
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
118 "Test trailing whitespace for file in current buffer if t")
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
119 (make-variable-buffer-local 'whitespace-check-buffer-trailing)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
120 (put 'whitespace-check-buffer-trailing 'permanent-local nil)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
121
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
122 (defvar whitespace-check-buffer-indent nil
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
123 "Test indentation whitespace for file in current buffer if t")
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
124 (make-variable-buffer-local 'whitespace-check-buffer-indent)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
125 (put 'whitespace-check-buffer-indent 'permanent-local nil)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
126
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
127 (defvar whitespace-check-buffer-spacetab nil
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
128 "Test Space-followed-by-TABS whitespace for file in current buffer if t")
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
129 (make-variable-buffer-local 'whitespace-check-buffer-spacetab)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
130 (put 'whitespace-check-buffer-spacetab 'permanent-local nil)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
131
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
132 (defvar whitespace-check-buffer-ateol nil
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
133 "Test end-of-line whitespace for file in current buffer if t")
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
134 (make-variable-buffer-local 'whitespace-check-buffer-ateol)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
135 (put 'whitespace-check-buffer-ateol 'permanent-local nil)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
136
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
137 (defvar whitespace-highlighted-space nil
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
138 "The variable to store the extent to highlight")
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
139 (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
140 (put 'whitespace-highlighted-space 'permanent-local nil)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
141
26253
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
142 ;; For flavors of Emacs which don't define `defgroup' and `defcustom'.
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
143 (eval-when-compile
26253
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
144 (if (not (fboundp 'defgroup))
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
145 (defmacro defgroup (sym memb doc &rest args)
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
146 "Null macro for defgroup in all versions of Emacs that don't define
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
147 defgroup"
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
148 t))
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
149 (if (not (fboundp 'defcustom))
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
150 (defmacro defcustom (sym val doc &rest args)
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
151 "Macro to alias defcustom to defvar in all versions of Emacs that
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
152 don't define defcustom"
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
153 `(defvar ,sym ,val ,doc))))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
154
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
155 (if (fboundp 'make-overlay)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
156 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
157 (defalias 'whitespace-make-overlay 'make-overlay)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
158 (defalias 'whitespace-overlay-put 'overlay-put)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
159 (defalias 'whitespace-delete-overlay 'delete-overlay)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
160 (defalias 'whitespace-overlay-start 'overlay-start)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
161 (defalias 'whitespace-overlay-end 'overlay-end)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
162 (defalias 'whitespace-mode-line-update 'force-mode-line-update))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
163 (defalias 'whitespace-make-overlay 'make-extent)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
164 (defalias 'whitespace-overlay-put 'set-extent-property)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
165 (defalias 'whitespace-delete-overlay 'delete-extent)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
166 (defalias 'whitespace-overlay-start 'extent-start)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
167 (defalias 'whitespace-overlay-end 'extent-end)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
168 (defalias 'whitespace-mode-line-update 'redraw-modeline))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
169
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
170 (if (featurep 'xemacs)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
171 (defgroup whitespace nil
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
172 "Check for and fix five different types of whitespaces in source code."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
173 ;; Since XEmacs doesn't have a 'convenience group, use the next best group
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
174 ;; which is 'editing?
51542
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
175 :link '(emacs-commentary-link "whitespace.el")
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
176 :group 'editing)
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
177 (defgroup whitespace nil
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
178 "Check for and fix five different types of whitespaces in source code."
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
179 :version "21.1"
51542
ad8c09d9513c Update whitespace.el
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 50964
diff changeset
180 :link '(emacs-commentary-link "whitespace.el")
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
181 :group 'convenience))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
182
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
183 (defcustom whitespace-check-leading-whitespace t
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
184 "Flag to check leading whitespace. This is the global for the system.
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
185 It can be overriden by setting a buffer local variable
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
186 `whitespace-check-buffer-leading'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
187 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
188 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
189
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
190 (defcustom whitespace-check-trailing-whitespace t
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
191 "Flag to check trailing whitespace. This is the global for the system.
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
192 It can be overriden by setting a buffer local variable
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
193 `whitespace-check-buffer-trailing'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
194 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
195 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
196
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
197 (defcustom whitespace-check-spacetab-whitespace t
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
198 "Flag to check space followed by a TAB. This is the global for the system.
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
199 It can be overriden by setting a buffer local variable
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
200 `whitespace-check-buffer-spacetab'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
201 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
202 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
203
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
204 (defcustom whitespace-spacetab-regexp "[ ]+\t"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
205 "Regexp to match a space followed by a TAB."
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
206 :type 'regexp
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
207 :group 'whitespace)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
208
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
209 (defcustom whitespace-check-indent-whitespace indent-tabs-mode
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
210 "Flag to check indentation whitespace. This is the global for the system.
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
211 It can be overriden by setting a buffer local variable
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
212 `whitespace-check-buffer-indent'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
213 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
214 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
215
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
216 (defcustom whitespace-indent-regexp (concat "^\\(\t*\\) " " ")
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
217 "Regexp to match (any TABS followed by) 8/more whitespaces at start of line."
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
218 :type 'regexp
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
219 :group 'whitespace)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
220
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
221 (defcustom whitespace-check-ateol-whitespace t
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
222 "Flag to check end-of-line whitespace. This is the global for the system.
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
223 It can be overriden by setting a buffer local variable
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
224 `whitespace-check-buffer-ateol'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
225 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
226 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
227
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
228 ;; (defcustom whitespace-ateol-regexp "[ \t]$"
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
229 (defcustom whitespace-ateol-regexp "[ \t]+$"
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
230 "Regexp to match a TAB or a space at the EOL."
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
231 :type 'regexp
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
232 :group 'whitespace)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
233
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
234 (defcustom whitespace-errbuf "*Whitespace Errors*"
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
235 "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
236 :type 'string
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
237 :group 'whitespace)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
238
52672
d4d213cfb340 whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 52401
diff changeset
239 (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
240 "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
241 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
242 :type 'string
d4d213cfb340 whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 52401
diff changeset
243 :group 'whitespace)
d4d213cfb340 whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 52401
diff changeset
244
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
245 (defcustom whitespace-abort-on-error nil
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
246 "While writing a file, abort if the file is unclean. If
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
247 `whitespace-auto-cleanup' is set, that takes precedence over this
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
248 variable."
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
249 :type 'boolean
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
250 :group 'whitespace)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
251
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
252 (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
253 "Cleanup a buffer automatically on finding it whitespace unclean."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
254 :type 'boolean
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
255 :group 'whitespace)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
256
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
257 (defcustom whitespace-silent nil
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
258 "All whitespace errors will be shown only in the modeline when t.
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
259
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
260 Note that setting this may cause all whitespaces introduced in a file to go
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
261 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
262 Errors*' buffer before opening (or closing) another file."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
263 :type 'boolean
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
264 :group 'whitespace)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
265
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
266 (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
267 c-mode c++-mode cc-mode
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
268 change-log-mode cperl-mode
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
269 electric-nroff-mode emacs-lisp-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
270 f90-mode fortran-mode html-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
271 html3-mode java-mode jde-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
272 ksh-mode latex-mode LaTeX-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
273 lisp-mode m4-mode makefile-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
274 modula-2-mode nroff-mode objc-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
275 pascal-mode perl-mode prolog-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
276 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
277 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
278 tcl-mode tex-mode texinfo-mode
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
279 vrml-mode xml-mode)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
280
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
281 "Major Modes in which we turn on whitespace checking.
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
282
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
283 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
284 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
285 following to your `.emacs':
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
286
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
287 \(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
288 whitespace-modes))\)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
289
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
290 Or, alternately, you can use the Emacs `customize' command to set this."
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
291 :type '(repeat symbol)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
292 :group 'whitespace)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
293
29333
189f70e66cab Update whitespace.el with a more tolerable timer scan time.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 27583
diff changeset
294 (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
295 "Period in seconds to rescan modified buffers for whitespace creep.
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
296
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
297 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
298 `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
299 modified buffers.
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
300
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
301 To disable timer scans, set this to zero."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
302 :type 'integer
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
303 :group 'whitespace)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
304
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
305 (defcustom whitespace-display-in-modeline t
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
306 "Display whitespace errors on the modeline."
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
307 :type 'boolean
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
308 :group 'whitespace)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
309
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
310 (defcustom whitespace-display-spaces-in-color t
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
311 "Display the bogus whitespaces by coloring them with
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
312 `whitespace-highlight-face'."
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
313 :type 'boolean
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
314 :group 'whitespace)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
315
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
316 (defgroup whitespace-faces nil
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
317 "Faces used in whitespace."
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
318 :prefix "whitespace-"
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
319 :group 'whitespace
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
320 :group 'faces)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
321
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
322 (defface whitespace-highlight-face '((((class color) (background light))
48631
37ddf84a7528 (whitespace-highlight-face): Fix face spec.
Andreas Schwab <schwab@suse.de>
parents: 47454
diff changeset
323 (:background "green"))
37ddf84a7528 (whitespace-highlight-face): Fix face spec.
Andreas Schwab <schwab@suse.de>
parents: 47454
diff changeset
324 (((class color) (background dark))
37ddf84a7528 (whitespace-highlight-face): Fix face spec.
Andreas Schwab <schwab@suse.de>
parents: 47454
diff changeset
325 (:background "sea green"))
37ddf84a7528 (whitespace-highlight-face): Fix face spec.
Andreas Schwab <schwab@suse.de>
parents: 47454
diff changeset
326 (((class grayscale mono)
37ddf84a7528 (whitespace-highlight-face): Fix face spec.
Andreas Schwab <schwab@suse.de>
parents: 47454
diff changeset
327 (background light))
37ddf84a7528 (whitespace-highlight-face): Fix face spec.
Andreas Schwab <schwab@suse.de>
parents: 47454
diff changeset
328 (:background "black"))
37ddf84a7528 (whitespace-highlight-face): Fix face spec.
Andreas Schwab <schwab@suse.de>
parents: 47454
diff changeset
329 (((class grayscale mono)
37ddf84a7528 (whitespace-highlight-face): Fix face spec.
Andreas Schwab <schwab@suse.de>
parents: 47454
diff changeset
330 (background dark))
37ddf84a7528 (whitespace-highlight-face): Fix face spec.
Andreas Schwab <schwab@suse.de>
parents: 47454
diff changeset
331 (:background "white")))
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
332 "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
333 :group 'whitespace-faces)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
334
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
335 (if (not (assoc 'whitespace-mode minor-mode-alist))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
336 (setq minor-mode-alist (cons '(whitespace-mode whitespace-mode-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
337 minor-mode-alist)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
338
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
339 (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
340 whitespace-check-leading-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
341 (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
342 whitespace-check-trailing-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
343 (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
344 whitespace-check-indent-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
345 (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
346 whitespace-check-spacetab-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
347 (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
348 whitespace-check-ateol-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
349
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
350 (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
351 "Test and set the whitespace-mode in qualifying buffers."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
352 (if (null whitespace-mode)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
353 (setq whitespace-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
354 (if (or arg (member major-mode whitespace-modes))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
355 t
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
356 nil))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
357
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
358 ;;;###autoload
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
359 (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
360 "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
361 (interactive)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
362 (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
363 (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
364 (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
365 (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
366 (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
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-trailing-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 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
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-trailing))
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-trailing (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 trailing space 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-trailing "" " 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-trailing (whitespace-buffer-trailing))))
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
377
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
378 ;;;###autoload
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
379 (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
380 "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
381 (interactive)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
382 (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
383 (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
384 (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
385 (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
386 (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
387 (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
388
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
389 ;;;###autoload
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
390 (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
391 "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
392 (interactive)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
393 (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
394 (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
395 (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
396 (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
397 (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
398 (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
399
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
400
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
401 ;;;###autoload
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
402 (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
403 "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
404 (interactive)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
405 (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
406 (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
407 (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
408 (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
409 (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
410 (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
411
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
412
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
413 ;;;###autoload
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
414 (defun whitespace-buffer (&optional quiet)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
415 "Find five different types of white spaces in buffer.
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
416 These are:
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
417 1. Leading space \(empty lines at the top of a file\).
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
418 2. Trailing space \(empty lines at the end of a file\).
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
419 3. Indentation space \(8 or more spaces, that should be replaced with TABS\).
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
420 4. Spaces followed by a TAB. \(Almost always, we never want that\).
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
421 5. Spaces or TABS at the end of a line.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
422
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
423 Check for whitespace only if this buffer really contains a non-empty file
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
424 and:
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
425 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
426 2. `whitespace-buffer' was explicitly called with a prefix argument."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
427 (interactive)
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
428 (let ((whitespace-error nil))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
429 (whitespace-check-whitespace-mode current-prefix-arg)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
430 (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
431 (progn
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
432 (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
433 (whitespace-tickle-timer)
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
434 (whitespace-unhighlight-the-space)
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
435 (if whitespace-auto-cleanup
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
436 (if buffer-read-only
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
437 (if (not quiet)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
438 (message "Can't cleanup: %s is read-only" (buffer-name)))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
439 (whitespace-cleanup))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
440 (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
441 (whitespace-buffer-leading)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
442 nil))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
443 (whitespace-trailing (if whitespace-check-buffer-trailing
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
444 (whitespace-buffer-trailing)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
445 nil))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
446 (whitespace-indent (if whitespace-check-buffer-indent
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
447 (whitespace-buffer-search
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
448 whitespace-indent-regexp)
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
449 nil))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
450 (whitespace-spacetab (if whitespace-check-buffer-spacetab
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
451 (whitespace-buffer-search
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
452 whitespace-spacetab-regexp)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
453 nil))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
454 (whitespace-ateol (if whitespace-check-buffer-ateol
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
455 (whitespace-buffer-search
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
456 whitespace-ateol-regexp)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
457 nil))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
458 (whitespace-errmsg nil)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
459 (whitespace-filename buffer-file-name)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
460 (whitespace-this-modeline ""))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
461
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
462 ;; 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
463 (setq whitespace-error (or whitespace-leading whitespace-indent
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
464 whitespace-spacetab whitespace-ateol
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
465 whitespace-trailing))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
466
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
467 (if whitespace-error
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
468 (progn
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
469 (setq whitespace-errmsg
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
470 (concat whitespace-filename " contains:\n"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
471 (if whitespace-leading
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
472 "Leading whitespace\n")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
473 (if whitespace-indent
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
474 (concat "Indentation whitespace"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
475 whitespace-indent "\n"))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
476 (if whitespace-spacetab
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
477 (concat "Space followed by Tab"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
478 whitespace-spacetab "\n"))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
479 (if whitespace-ateol
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
480 (concat "End-of-line whitespace"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
481 whitespace-ateol "\n"))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
482 (if whitespace-trailing
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
483 "Trailing whitespace\n")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
484 "\ntype `M-x whitespace-cleanup' to "
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
485 "cleanup the file."))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
486 (setq whitespace-this-modeline
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
487 (concat (if whitespace-ateol "e")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
488 (if whitespace-indent "i")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
489 (if whitespace-leading "l")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
490 (if whitespace-spacetab "s")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
491 (if whitespace-trailing "t")))))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
492 (whitespace-update-modeline whitespace-this-modeline)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
493 (save-excursion
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
494 (get-buffer-create whitespace-errbuf)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
495 (kill-buffer whitespace-errbuf)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
496 (get-buffer-create whitespace-errbuf)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
497 (set-buffer whitespace-errbuf)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
498 (if whitespace-errmsg
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
499 (progn
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
500 (insert whitespace-errmsg)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
501 (if (not (or quiet whitespace-silent))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
502 (display-buffer whitespace-errbuf t))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
503 (if (not quiet)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
504 (message "Whitespaces: [%s%s] in %s"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
505 whitespace-this-modeline
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
506 (let ((whitespace-unchecked
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
507 (whitespace-unchecked-whitespaces)))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
508 (if whitespace-unchecked
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
509 (concat "!" whitespace-unchecked)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
510 ""))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
511 whitespace-filename)))
52672
d4d213cfb340 whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 52401
diff changeset
512 (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
513 (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
514 whitespace-clean-msg))))))))
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
515 (if whitespace-error
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
516 t
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
517 nil)))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
518
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
519 ;;;###autoload
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
520 (defun whitespace-region (s e)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
521 "Check the region for whitespace errors."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
522 (interactive "r")
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
523 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
524 (save-restriction
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
525 (narrow-to-region s e)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
526 (whitespace-buffer))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
527
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
528 ;;;###autoload
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
529 (defun whitespace-cleanup ()
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
530 "Cleanup the five different kinds of whitespace problems.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
531
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
532 Use \\[describe-function] whitespace-describe to read a summary of the
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
533 whitespace problems."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
534 (interactive)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
535 ;; If this buffer really contains a file, then run, else quit.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
536 (whitespace-check-whitespace-mode current-prefix-arg)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
537 (if (and buffer-file-name whitespace-mode)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
538 (let ((whitespace-any nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
539 (whitespace-tabwith 8)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
540 (whitespace-tabwith-saved tab-width))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
541
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
542 ;; since all printable TABS should be 8, irrespective of how
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
543 ;; they are displayed.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
544 (setq tab-width whitespace-tabwith)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
545
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
546 (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
547 (whitespace-buffer-leading))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
548 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
549 (whitespace-buffer-leading-cleanup)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
550 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
551
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
552 (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
553 (whitespace-buffer-trailing))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
554 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
555 (whitespace-buffer-trailing-cleanup)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
556 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
557
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
558 (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
559 (whitespace-buffer-search whitespace-indent-regexp))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
560 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
561 (whitespace-indent-cleanup)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
562 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
563
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
564 (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
565 (whitespace-buffer-search whitespace-spacetab-regexp))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
566 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
567 (whitespace-buffer-cleanup whitespace-spacetab-regexp "\t")
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
568 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
569
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
570 (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
571 (whitespace-buffer-search whitespace-ateol-regexp))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
572 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
573 (whitespace-buffer-cleanup whitespace-ateol-regexp "")
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
574 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
575
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
576 ;; 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
577 (if whitespace-any
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
578 (whitespace-cleanup)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
579 (progn
51543
38c9480b767a Respect user preference
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 51542
diff changeset
580 (if (not whitespace-silent)
38c9480b767a Respect user preference
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 51542
diff changeset
581 (message "%s clean" buffer-file-name))
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
582 (whitespace-update-modeline)))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
583 (setq tab-width whitespace-tabwith-saved))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
584
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
585 ;;;###autoload
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
586 (defun whitespace-cleanup-region (s e)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
587 "Whitespace cleanup on the region."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
588 (interactive "r")
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
589 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
590 (save-restriction
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
591 (narrow-to-region s e)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
592 (whitespace-cleanup))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
593 (whitespace-buffer t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
594
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
595 (defun whitespace-buffer-leading ()
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
596 "Check to see if there are any empty lines at the top of the file."
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
597 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
598 (let ((pmin nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
599 (pmax nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
600 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
601 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
602 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
603 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
604 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
605 (if (equal pmin pmax)
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
606 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
607 (whitespace-highlight-the-space pmin pmax)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
608 t)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
609 nil))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
610
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
611 (defun whitespace-buffer-leading-cleanup ()
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
612 "Remove any empty lines at the top of the file."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
613 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
614 (let ((pmin nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
615 (pmax nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
616 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
617 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
618 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
619 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
620 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
621 (if (equal pmin pmax)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
622 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
623 (kill-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
624 (whitespace-buffer-leading-cleanup))))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
625
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
626 (defun whitespace-buffer-trailing ()
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
627 "Check to see if are is more than one empty line at the bottom."
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
628 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
629 (let ((pmin nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
630 (pmax nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
631 (goto-char (point-max))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
632 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
633 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
634 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
635 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
636 (if (equal pmin pmax)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
637 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
638 (goto-char (- (point) 1))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
639 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
640 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
641 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
642 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
643 (if (equal pmin pmax)
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
644 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
645 (whitespace-highlight-the-space pmin pmax)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
646 t)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
647 nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
648 nil))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
649
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
650 (defun whitespace-buffer-trailing-cleanup ()
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
651 "Delete all the empty lines at the bottom."
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
652 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
653 (let ((pmin nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
654 (pmax nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
655 (goto-char (point-max))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
656 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
657 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
658 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
659 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
660 (if (equal pmin pmax)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
661 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
662 (goto-char (1- pmin))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
663 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
664 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
665 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
666 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
667 (if (equal pmin pmax)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
668 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
669 (goto-char (1- (point-max)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
670 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
671 (kill-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
672 (whitespace-buffer-trailing-cleanup))))))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
673
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
674 (defun whitespace-buffer-search (regexp)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
675 "Search for any given whitespace REGEXP."
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
676 (let ((whitespace-retval ""))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
677 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
678 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
679 (while (re-search-forward regexp nil t)
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
680 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
681 (setq whitespace-retval (format "%s %s" whitespace-retval
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
682 (match-beginning 0)))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
683 (whitespace-highlight-the-space (match-beginning 0) (match-end 0))))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
684 (if (equal "" whitespace-retval)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
685 nil
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
686 whitespace-retval))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
687
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
688 (defun whitespace-buffer-cleanup (regexp newregexp)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
689 "Search for any given whitespace REGEXP and replace it with the NEWREGEXP."
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
690 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
691 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
692 (while (re-search-forward regexp nil t)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
693 (replace-match newregexp))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
694
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
695 (defun whitespace-indent-cleanup ()
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
696 "Search for 8/more spaces at the start of a line and replace it with tabs."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
697 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
698 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
699 (while (re-search-forward whitespace-indent-regexp nil t)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
700 (let ((column (current-column))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
701 (indent-tabs-mode t))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
702 (delete-region (match-beginning 0) (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
703 (indent-to column)))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
704
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
705 (defun whitespace-unchecked-whitespaces ()
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
706 "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
707 (let ((unchecked-spaces
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
708 (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
709 (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
710 (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
711 (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
712 (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
713 (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
714 unchecked-spaces
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
715 nil)))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
716
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
717 (defun whitespace-update-modeline (&optional whitespace-err)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
718 "Update modeline with whitespace errors.
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
719 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
720 (if whitespace-display-in-modeline
26259
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
721 (progn
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
722 (setq whitespace-mode-line nil)
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
723 ;; Whitespace errors
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
724 (if (and whitespace-err (not (equal whitespace-err "")))
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
725 (setq whitespace-mode-line whitespace-err))
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
726 ;; Whitespace suppressed errors
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
727 (let ((whitespace-unchecked (whitespace-unchecked-whitespaces)))
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
728 (if whitespace-unchecked
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
729 (setq whitespace-mode-line
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
730 (concat whitespace-mode-line "!" whitespace-unchecked))))
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
731 ;; Add the whitespace modeline prefix
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
732 (setq whitespace-mode-line (if whitespace-mode-line
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
733 (concat " W:" whitespace-mode-line)
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
734 nil))
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
735 (whitespace-mode-line-update))))
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
736
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
737 (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
738 "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
739 (if whitespace-display-spaces-in-color
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
740 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
741 (whitespace-unhighlight-the-space)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
742 (add-to-list 'whitespace-highlighted-space
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
743 (whitespace-make-overlay b e))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
744 (whitespace-overlay-put (whitespace-make-overlay b e) 'face
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
745 'whitespace-highlight-face))))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
746 ;; (add-hook 'pre-command-hook 'whitespace-unhighlight-the-space))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
747
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
748 (defun whitespace-unhighlight-the-space ()
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
749 "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
750 (if (and whitespace-display-spaces-in-color whitespace-highlighted-space)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
751 (let ((whitespace-this-space nil))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
752 (while whitespace-highlighted-space
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
753 (setq whitespace-this-space (car whitespace-highlighted-space))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
754 (setq whitespace-highlighted-space
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
755 (cdr whitespace-highlighted-space))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
756 (whitespace-delete-overlay whitespace-this-space))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
757 (setq whitespace-highlighted-space nil))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
758 (remove-hook 'pre-command-hook 'whitespace-unhighlight-the-space)))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
759
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
760 (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
761 "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
762
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
763 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
764 periodically for whitespace."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
765 (if (and whitespace-mode (not (member (list buf-file buf-name)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
766 whitespace-all-buffer-files)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
767 (add-to-list 'whitespace-all-buffer-files (list buf-file buf-name))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
768
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
769 (defun whitespace-tickle-timer ()
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
770 "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
771
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
772 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
773 `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
774 `whitespace-rescan-timer-time') for whitespace creep."
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
775 (if (and whitespace-rescan-timer-time (not whitespace-rescan-timer))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
776 (setq whitespace-rescan-timer
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
777 (add-timeout whitespace-rescan-timer-time
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
778 'whitespace-rescan-files-in-buffers nil
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
779 whitespace-rescan-timer-time))))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
780
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
781 (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
782 "Check monitored files for whitespace creep since last scan."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
783 (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
784 buffile bufname thiselt buf)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
785 (if (not whitespace-all-my-files)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
786 (progn
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
787 (disable-timeout whitespace-rescan-timer)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
788 (setq whitespace-rescan-timer nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
789 (while whitespace-all-my-files
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
790 (setq thiselt (car whitespace-all-my-files))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
791 (setq whitespace-all-my-files (cdr whitespace-all-my-files))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
792 (setq buffile (car thiselt))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
793 (setq bufname (cadr thiselt))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
794 (setq buf (get-buffer bufname))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
795 (if (buffer-live-p buf)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
796 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
797 ;;(message "buffer %s live" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
798 (set-buffer bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
799 (if whitespace-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
800 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
801 ;;(message "checking for whitespace in %s" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
802 (if whitespace-auto-cleanup
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
803 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
804 ;;(message "cleaning up whitespace in %s" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
805 (whitespace-cleanup))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
806 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
807 ;;(message "whitespace-buffer %s." (buffer-name))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
808 (whitespace-buffer t))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
809 ;;(message "Removing %s from refresh list" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
810 (whitespace-refresh-rescan-list buffile bufname)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
811 ;;(message "Removing %s from refresh list" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
812 (whitespace-refresh-rescan-list buffile bufname))))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
813
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
814 (defun whitespace-refresh-rescan-list (buffile bufname)
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
815 "Refresh the list of files to be rescaned for whitespace creep."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
816 (if whitespace-all-buffer-files
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
817 (setq whitespace-all-buffer-files
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
818 (delete (list buffile bufname) whitespace-all-buffer-files))
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
819 (when whitespace-rescan-timer
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
820 (disable-timeout whitespace-rescan-timer)
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
821 (setq whitespace-rescan-timer nil))))
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
822
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
823 ;;;###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
824 (define-minor-mode whitespace-global-mode
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
825 "Toggle using Whitespace mode in new buffers.
52672
d4d213cfb340 whitespace.el now takes user customizable variable to display cleanliness of
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 52401
diff changeset
826 With ARG, turn the mode on iff ARG is positive.
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
827
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
828 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
829 `find-file-hook' and `kill-buffer-hook'."
50964
d5b5bbb27b2f Add :link to commentary section
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 48631
diff changeset
830 :global t
d5b5bbb27b2f Add :link to commentary section
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 48631
diff changeset
831 :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
832 (if whitespace-global-mode
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
833 (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
834 (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
835 (add-hook 'write-file-functions 'whitespace-write-file-hook nil t)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
836 (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
837 (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
838 (remove-hook 'write-file-functions 'whitespace-write-file-hook t)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
839 (remove-hook 'kill-buffer-hook 'whitespace-buffer)))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
840
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
841 ;;;###autoload
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
842 (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
843 "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
844 This is meant to be added buffer-locally to `write-file-functions'."
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
845 (interactive)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
846 (let ((werr nil))
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
847 (if whitespace-auto-cleanup
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
848 (whitespace-cleanup)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
849 (setq werr (whitespace-buffer)))
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
850 (if (and whitespace-abort-on-error werr)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
851 (error (concat "Abort write due to whitespaces in "
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
852 buffer-file-name))))
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
853 nil)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
854
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
855 (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
856 (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
857 (remove-hook 'write-file-functions 'whitespace-write-file-hook t)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
858 (remove-hook 'kill-buffer-hook 'whitespace-buffer))
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
859
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
860 (provide 'whitespace)
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51543
diff changeset
861
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51543
diff changeset
862 ;;; arch-tag: 4ff44e87-b63c-402d-95a6-15e51e58bd0c
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
863 ;;; whitespace.el ends here