annotate lisp/whitespace.el @ 44036:d2d6d5e7b5f3

(bootstrap-lisp-1, bootstrap-lisp, bootstrap-src) (bootstrap-clean-before, bootstrap-clean-after): Return to the top-level directory after sub-make.
author Eli Zaretskii <eliz@gnu.org>
date Wed, 20 Mar 2002 17:37:50 +0000
parents 0ad4d3e3bfe6
children b7a8fec8113c
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
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
8 ;; $Id: whitespace.el,v 1.18 2001/08/20 20:56:08 rv 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:
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
27
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
28 ;; Whitespace.el URL: http://www.dsmit.com/lisp/
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
29
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
30 ;; Exported functions:
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
31
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
32 ;; `whitespace-buffer' - To check the current buffer for whitespace problems.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
33 ;; `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
34 ;; `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
35 ;; problems.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
36 ;; `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
37 ;; and mark in the current buffer.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
38 ;; `whitespace-describe' - A simple introduction to the library.
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
39
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
40 ;;; Code:
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
41
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
42 (defvar whitespace-version "3.2" "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
43
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
44 (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
45 "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
46
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
47 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
48 visited by the buffers.")
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
49
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
50 (defvar whitespace-rescan-timer nil
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
51 "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
52
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
53 ;; 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
54 (defvar whitespace-mode nil
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
55 "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
56 (make-variable-buffer-local 'whitespace-mode)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
57 (put 'whitespace-mode 'permanent-local nil)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
58
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
59 (defvar whitespace-mode-line nil
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
60 "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
61 (make-variable-buffer-local 'whitespace-mode-line)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
62 (put 'whitespace-mode-line 'permanent-local nil)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
63
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
64 (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
65 "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
66 (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
67 (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
68
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
69 (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
70 "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
71 (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
72 (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
73
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
74 (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
75 "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
76 (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
77 (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
78
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
79 (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
80 "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
81 (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
82 (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
83
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
84 (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
85 "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
86 (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
87 (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
88
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
89 (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
90 "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
91 (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
92 (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
93
26253
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
94 ;; 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
95 (eval-when-compile
26253
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
96 (if (not (fboundp 'defgroup))
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
97 (defmacro defgroup (sym memb doc &rest args)
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
98 "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
99 defgroup"
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
100 t))
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
101 (if (not (fboundp 'defcustom))
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
102 (defmacro defcustom (sym val doc &rest args)
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
103 "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
104 don't define defcustom"
3bb622df1c52 (whitespace-version): Update to 2.8
Gerd Moellmann <gerd@gnu.org>
parents: 26245
diff changeset
105 `(defvar ,sym ,val ,doc))))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
106
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
107 (if (fboundp 'make-overlay)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
108 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
109 (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
110 (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
111 (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
112 (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
113 (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
114 (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
115 (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
116 (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
117 (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
118 (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
119 (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
120 (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
121
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
122 (if (featurep 'xemacs)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
123 (defgroup whitespace nil
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
124 "Check for and fix five different types of whitespaces in source code."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
125 ;; Since XEmacs doesn't have a 'convenience group, use the next best group
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
126 ;; which is 'editing?
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
127 :group 'editing)
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
128 (defgroup whitespace nil
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
129 "Check for and fix five different types of whitespaces in source code."
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
130 :version "21.1"
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
131 :group 'convenience))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
132
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
133 (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
134 "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
135 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
136 `whitespace-check-buffer-leading'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
137 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
138 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
139
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
140 (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
141 "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
142 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
143 `whitespace-check-buffer-trailing'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
144 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
145 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
146
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
147 (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
148 "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
149 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
150 `whitespace-check-buffer-spacetab'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
151 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
152 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
153
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
154 (defcustom whitespace-spacetab-regexp "[ ]+\t"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
155 "Regexp to match a space followed by a TAB."
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
156 :type 'regexp
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
157 :group 'whitespace)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
158
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
159 (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
160 "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
161 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
162 `whitespace-check-buffer-indent'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
163 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
164 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
165
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
166 (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
167 "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
168 :type 'regexp
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
169 :group 'whitespace)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
170
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
171 (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
172 "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
173 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
174 `whitespace-check-buffer-ateol'"
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
175 :type 'boolean
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
176 :group 'whitespace)
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
177
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
178 ;; (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
179 (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
180 "Regexp to match a TAB or a space at the EOL."
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
181 :type 'regexp
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
182 :group 'whitespace)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
183
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
184 (defcustom whitespace-errbuf "*Whitespace Errors*"
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
185 "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
186 :type 'string
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
187 :group 'whitespace)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
188
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
189 (defcustom whitespace-abort-on-error nil
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
190 "While writing a file, abort if the file is unclean. If
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
191 `whitespace-auto-cleanup' is set, that takes precedence over this
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
192 variable."
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
193 :type 'boolean
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
194 :group 'whitespace)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
195
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
196 (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
197 "Cleanup a buffer automatically on finding it whitespace unclean."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
198 :type 'boolean
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
199 :group 'whitespace)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
200
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
201 (defcustom whitespace-silent nil
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
202 "All whitespace errors will be shown only in the modeline when t.
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
203
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
204 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
205 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
206 Errors*' buffer before opening (or closing) another file."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
207 :type 'boolean
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
208 :group 'whitespace)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
209
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
210 (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
211 c-mode c++-mode cc-mode
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
212 change-log-mode cperl-mode
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
213 electric-nroff-mode emacs-lisp-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
214 f90-mode fortran-mode html-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
215 html3-mode java-mode jde-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
216 ksh-mode latex-mode LaTeX-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
217 lisp-mode m4-mode makefile-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
218 modula-2-mode nroff-mode objc-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
219 pascal-mode perl-mode prolog-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
220 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
221 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
222 tcl-mode tex-mode texinfo-mode
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
223 vrml-mode xml-mode)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
224
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
225 "Major Modes in which we turn on whitespace checking.
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
226
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
227 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
228 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
229 following to your `.emacs':
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
230
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
231 \(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
232 whitespace-modes))\)
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 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
235 :type '(repeat symbol)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
236 :group 'whitespace)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
237
29333
189f70e66cab Update whitespace.el with a more tolerable timer scan time.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 27583
diff changeset
238 (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
239 "Period in seconds to rescan modified buffers for whitespace creep.
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
240
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
241 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
242 `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
243 modified buffers.
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
244
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
245 To disable timer scans, set this to zero."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
246 :type 'integer
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
247 :group 'whitespace)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
248
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
249 (defcustom whitespace-display-in-modeline t
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
250 "Display whitespace errors on the modeline."
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
251 :type 'boolean
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
252 :group 'whitespace)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
253
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
254 (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
255 "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
256 `whitespace-highlight-face'."
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
257 :type 'boolean
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
258 :group 'whitespace)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
259
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
260 (defgroup whitespace-faces nil
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
261 "Faces used in whitespace."
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
262 :prefix "whitespace-"
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
263 :group 'whitespace
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
264 :group 'faces)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
265
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
266 (defface whitespace-highlight-face '((((class color) (background light))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
267 (:background "green"))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
268 (((class color) (background dark))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
269 (:background "sea green"))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
270 (((class grayscale monochrome)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
271 (background light))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
272 (:background "black"))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
273 (((class grayscale monochrome)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
274 (background dark))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
275 (:background "white")))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
276 "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
277 :group 'whitespace-faces)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
278
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
279 (if (not (assoc 'whitespace-mode minor-mode-alist))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
280 (setq minor-mode-alist (cons '(whitespace-mode whitespace-mode-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
281 minor-mode-alist)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
282
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
283 (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
284 whitespace-check-leading-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
285 (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
286 whitespace-check-trailing-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
287 (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
288 whitespace-check-indent-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
289 (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
290 whitespace-check-spacetab-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
291 (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
292 whitespace-check-ateol-whitespace)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
293
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
294 (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
295 "Test and set the whitespace-mode in qualifying buffers."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
296 (if (null whitespace-mode)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
297 (setq whitespace-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
298 (if (or arg (member major-mode whitespace-modes))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
299 t
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
300 nil))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
301
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
302 ;;;###autoload
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
303 (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
304 "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
305 (interactive)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
306 (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
307 (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
308 (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
309 (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
310 (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
311
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
312 ;;;###autoload
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
313 (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
314 "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
315 (interactive)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
316 (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
317 (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
318 (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
319 (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
320 (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
321
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
322 ;;;###autoload
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
323 (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
324 "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
325 (interactive)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
326 (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
327 (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
328 (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
329 (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
330 (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
331 (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
332
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
333 ;;;###autoload
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
334 (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
335 "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
336 (interactive)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
337 (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
338 (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
339 (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
340 (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
341 (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
342 (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
343
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
344
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
345 ;;;###autoload
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
346 (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
347 "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
348 (interactive)
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
349 (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
350 (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
351 (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
352 (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
353 (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
354 (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
355
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
356
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
357 ;;;###autoload
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
358 (defun whitespace-buffer (&optional quiet)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
359 "Find five different types of white spaces in buffer.
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
360 These are:
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
361 1. Leading space \(empty lines at the top of a file\).
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
362 2. Trailing space \(empty lines at the end of a file\).
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
363 3. Indentation space \(8 or more spaces, that should be replaced with TABS\).
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
364 4. Spaces followed by a TAB. \(Almost always, we never want that\).
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
365 5. Spaces or TABS at the end of a line.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
366
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
367 Check for whitespace only if this buffer really contains a non-empty file
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
368 and:
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
369 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
370 2. `whitespace-buffer' was explicitly called with a prefix argument."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
371 (interactive)
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
372 (let ((whitespace-error nil))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
373 (whitespace-check-whitespace-mode current-prefix-arg)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
374 (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
375 (progn
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
376 (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
377 (whitespace-tickle-timer)
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
378 (whitespace-unhighlight-the-space)
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
379 (if whitespace-auto-cleanup
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
380 (if buffer-read-only
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
381 (if (not quiet)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
382 (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
383 (whitespace-cleanup))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
384 (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
385 (whitespace-buffer-leading)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
386 nil))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
387 (whitespace-trailing (if whitespace-check-buffer-trailing
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
388 (whitespace-buffer-trailing)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
389 nil))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
390 (whitespace-indent (if whitespace-check-buffer-indent
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
391 (whitespace-buffer-search
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
392 whitespace-indent-regexp)
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
393 nil))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
394 (whitespace-spacetab (if whitespace-check-buffer-spacetab
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
395 (whitespace-buffer-search
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
396 whitespace-spacetab-regexp)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
397 nil))
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
398 (whitespace-ateol (if whitespace-check-buffer-ateol
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
399 (whitespace-buffer-search
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
400 whitespace-ateol-regexp)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
401 nil))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
402 (whitespace-errmsg nil)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
403 (whitespace-filename buffer-file-name)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
404 (whitespace-this-modeline ""))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
405
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
406 ;; 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
407 (setq whitespace-error (or whitespace-leading whitespace-indent
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
408 whitespace-spacetab whitespace-ateol
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
409 whitespace-trailing))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
410
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
411 (if whitespace-error
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
412 (progn
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
413 (setq whitespace-errmsg
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
414 (concat whitespace-filename " contains:\n"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
415 (if whitespace-leading
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
416 "Leading whitespace\n")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
417 (if whitespace-indent
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
418 (concat "Indentation whitespace"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
419 whitespace-indent "\n"))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
420 (if whitespace-spacetab
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
421 (concat "Space followed by Tab"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
422 whitespace-spacetab "\n"))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
423 (if whitespace-ateol
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
424 (concat "End-of-line whitespace"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
425 whitespace-ateol "\n"))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
426 (if whitespace-trailing
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
427 "Trailing whitespace\n")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
428 "\ntype `M-x whitespace-cleanup' to "
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
429 "cleanup the file."))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
430 (setq whitespace-this-modeline
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
431 (concat (if whitespace-ateol "e")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
432 (if whitespace-indent "i")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
433 (if whitespace-leading "l")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
434 (if whitespace-spacetab "s")
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
435 (if whitespace-trailing "t")))))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
436 (whitespace-update-modeline whitespace-this-modeline)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
437 (save-excursion
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
438 (get-buffer-create whitespace-errbuf)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
439 (kill-buffer whitespace-errbuf)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
440 (get-buffer-create whitespace-errbuf)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
441 (set-buffer whitespace-errbuf)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
442 (if whitespace-errmsg
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
443 (progn
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
444 (insert whitespace-errmsg)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
445 (if (not (or quiet whitespace-silent))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
446 (display-buffer whitespace-errbuf t))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
447 (if (not quiet)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
448 (message "Whitespaces: [%s%s] in %s"
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
449 whitespace-this-modeline
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
450 (let ((whitespace-unchecked
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
451 (whitespace-unchecked-whitespaces)))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
452 (if whitespace-unchecked
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
453 (concat "!" whitespace-unchecked)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
454 ""))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
455 whitespace-filename)))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
456 (if (not quiet)
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
457 (message "%s clean" whitespace-filename))))))))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
458 (if whitespace-error
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
459 t
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
460 nil)))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
461
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
462 ;;;###autoload
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
463 (defun whitespace-region (s e)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
464 "Check the region for whitespace errors."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
465 (interactive "r")
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
466 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
467 (save-restriction
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
468 (narrow-to-region s e)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
469 (whitespace-buffer))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
470
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
471 ;;;###autoload
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
472 (defun whitespace-cleanup ()
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
473 "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
474
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
475 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
476 whitespace problems."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
477 (interactive)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
478 ;; If this buffer really contains a file, then run, else quit.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
479 (whitespace-check-whitespace-mode current-prefix-arg)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
480 (if (and buffer-file-name whitespace-mode)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
481 (let ((whitespace-any nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
482 (whitespace-tabwith 8)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
483 (whitespace-tabwith-saved tab-width))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
484
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
485 ;; since all printable TABS should be 8, irrespective of how
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
486 ;; they are displayed.
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
487 (setq tab-width whitespace-tabwith)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
488
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
489 (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
490 (whitespace-buffer-leading))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
491 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
492 (whitespace-buffer-leading-cleanup)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
493 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
494
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
495 (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
496 (whitespace-buffer-trailing))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
497 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
498 (whitespace-buffer-trailing-cleanup)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
499 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
500
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
501 (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
502 (whitespace-buffer-search whitespace-indent-regexp))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
503 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
504 (whitespace-indent-cleanup)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
505 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
506
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
507 (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
508 (whitespace-buffer-search whitespace-spacetab-regexp))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
509 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
510 (whitespace-buffer-cleanup whitespace-spacetab-regexp "\t")
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
511 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
512
36944
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
513 (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
514 (whitespace-buffer-search whitespace-ateol-regexp))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
515 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
516 (whitespace-buffer-cleanup whitespace-ateol-regexp "")
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
517 (setq whitespace-any t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
518
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
519 ;; 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
520 (if whitespace-any
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
521 (whitespace-cleanup)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
522 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
523 (message "%s clean" buffer-file-name)
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
524 (whitespace-update-modeline)))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
525 (setq tab-width whitespace-tabwith-saved))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
526
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
527 ;;;###autoload
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
528 (defun whitespace-cleanup-region (s e)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
529 "Whitespace cleanup on the region."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
530 (interactive "r")
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
531 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
532 (save-restriction
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
533 (narrow-to-region s e)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
534 (whitespace-cleanup))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
535 (whitespace-buffer t)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
536
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
537 (defun whitespace-buffer-leading ()
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
538 "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
539 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
540 (let ((pmin nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
541 (pmax nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
542 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
543 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
544 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
545 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
546 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
547 (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
548 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
549 (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
550 t)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
551 nil))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
552
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
553 (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
554 "Remove any empty lines at the top of the file."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
555 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
556 (let ((pmin nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
557 (pmax nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
558 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
559 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
560 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
561 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
562 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
563 (if (equal pmin pmax)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
564 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
565 (kill-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
566 (whitespace-buffer-leading-cleanup))))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
567
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
568 (defun whitespace-buffer-trailing ()
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
569 "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
570 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
571 (let ((pmin nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
572 (pmax nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
573 (goto-char (point-max))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
574 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
575 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
576 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
577 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
578 (if (equal pmin pmax)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
579 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
580 (goto-char (- (point) 1))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
581 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
582 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
583 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
584 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
585 (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
586 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
587 (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
588 t)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
589 nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
590 nil))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
591
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
592 (defun whitespace-buffer-trailing-cleanup ()
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
593 "Delete all the empty lines at the bottom."
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
594 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
595 (let ((pmin nil)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
596 (pmax nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
597 (goto-char (point-max))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
598 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
599 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
600 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
601 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
602 (if (equal pmin pmax)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
603 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
604 (goto-char (1- pmin))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
605 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
606 (setq pmin (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
607 (end-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
608 (setq pmax (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
609 (if (equal pmin pmax)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
610 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
611 (goto-char (1- (point-max)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
612 (beginning-of-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
613 (kill-line)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
614 (whitespace-buffer-trailing-cleanup))))))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
615
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
616 (defun whitespace-buffer-search (regexp)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
617 "Search for any given whitespace REGEXP."
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
618 (let ((whitespace-retval ""))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
619 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
620 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
621 (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
622 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
623 (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
624 (match-beginning 0)))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
625 (whitespace-highlight-the-space (match-beginning 0) (match-end 0))))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
626 (if (equal "" whitespace-retval)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
627 nil
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
628 whitespace-retval))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
629
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
630 (defun whitespace-buffer-cleanup (regexp newregexp)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
631 "Search for any given whitespace REGEXP and replace it with the NEWREGEXP."
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
632 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
633 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
634 (while (re-search-forward regexp nil t)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
635 (replace-match newregexp))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
636
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
637 (defun whitespace-indent-cleanup ()
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
638 "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
639 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
640 (goto-char (point-min))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
641 (while (re-search-forward whitespace-indent-regexp nil t)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
642 (let ((column (current-column))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
643 (indent-tabs-mode t))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
644 (delete-region (match-beginning 0) (point))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
645 (indent-to column)))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
646
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
647 (defun whitespace-unchecked-whitespaces ()
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
648 "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
649 (let ((unchecked-spaces
4d294c5bb2ac whitespace.el version 3.0 with buffer local toggle capability.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 35050
diff changeset
650 (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
651 (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
652 (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
653 (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
654 (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
655 (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
656 unchecked-spaces
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
657 nil)))
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
658
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
659 (defun whitespace-update-modeline (&optional whitespace-err)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
660 "Update modeline with whitespace errors.
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
661 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
662 (if whitespace-display-in-modeline
26259
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
663 (progn
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
664 (setq whitespace-mode-line nil)
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
665 ;; Whitespace errors
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
666 (if (and whitespace-err (not (equal whitespace-err "")))
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
667 (setq whitespace-mode-line whitespace-err))
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
668 ;; Whitespace suppressed errors
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
669 (let ((whitespace-unchecked (whitespace-unchecked-whitespaces)))
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
670 (if whitespace-unchecked
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
671 (setq whitespace-mode-line
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
672 (concat whitespace-mode-line "!" whitespace-unchecked))))
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
673 ;; Add the whitespace modeline prefix
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
674 (setq whitespace-mode-line (if whitespace-mode-line
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
675 (concat " W:" whitespace-mode-line)
912b004387d9 (whitespace-update-modeline): Bugfix to ensure
Gerd Moellmann <gerd@gnu.org>
parents: 26253
diff changeset
676 nil))
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
677 (whitespace-mode-line-update))))
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
678
42013
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
679 (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
680 "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
681 (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
682 (progn
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
683 (whitespace-unhighlight-the-space)
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
684 (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
685 (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
686 (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
687 'whitespace-highlight-face))))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
688 ;; (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
689
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
690 (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
691 "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
692 (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
693 (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
694 (while whitespace-highlighted-space
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
695 (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
696 (setq whitespace-highlighted-space
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
697 (cdr whitespace-highlighted-space))
0ad4d3e3bfe6 Whitespace.el v3.2 for colorized display of bogus whitespaces.
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38882
diff changeset
698 (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
699 (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
700 (remove-hook 'pre-command-hook 'whitespace-unhighlight-the-space)))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
701
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
702 (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
703 "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
704
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
705 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
706 periodically for whitespace."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
707 (if (and whitespace-mode (not (member (list buf-file buf-name)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
708 whitespace-all-buffer-files)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
709 (add-to-list 'whitespace-all-buffer-files (list buf-file buf-name))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
710
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
711 (defun whitespace-tickle-timer ()
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
712 "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
713
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
714 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
715 `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
716 `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
717 (if (and whitespace-rescan-timer-time (not whitespace-rescan-timer))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
718 (setq whitespace-rescan-timer
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
719 (add-timeout whitespace-rescan-timer-time
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
720 'whitespace-rescan-files-in-buffers nil
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
721 whitespace-rescan-timer-time))))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
722
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
723 (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
724 "Check monitored files for whitespace creep since last scan."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
725 (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
726 buffile bufname thiselt buf)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
727 (if (not whitespace-all-my-files)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
728 (progn
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
729 (disable-timeout whitespace-rescan-timer)
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
730 (setq whitespace-rescan-timer nil))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
731 (while whitespace-all-my-files
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
732 (setq thiselt (car whitespace-all-my-files))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
733 (setq whitespace-all-my-files (cdr whitespace-all-my-files))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
734 (setq buffile (car thiselt))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
735 (setq bufname (cadr thiselt))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
736 (setq buf (get-buffer bufname))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
737 (if (buffer-live-p buf)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
738 (save-excursion
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
739 ;;(message "buffer %s live" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
740 (set-buffer bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
741 (if whitespace-mode
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
742 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
743 ;;(message "checking for whitespace in %s" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
744 (if whitespace-auto-cleanup
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
745 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
746 ;;(message "cleaning up whitespace in %s" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
747 (whitespace-cleanup))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
748 (progn
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
749 ;;(message "whitespace-buffer %s." (buffer-name))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
750 (whitespace-buffer t))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
751 ;;(message "Removing %s from refresh list" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
752 (whitespace-refresh-rescan-list buffile bufname)))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
753 ;;(message "Removing %s from refresh list" bufname)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
754 (whitespace-refresh-rescan-list buffile bufname))))))
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
755
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
756 (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
757 "Refresh the list of files to be rescaned for whitespace creep."
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
758 (if whitespace-all-buffer-files
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
759 (setq whitespace-all-buffer-files
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
760 (delete (list buffile bufname) whitespace-all-buffer-files))
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
761 (when whitespace-rescan-timer
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
762 (disable-timeout whitespace-rescan-timer)
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
763 (setq whitespace-rescan-timer nil))))
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
764
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
765 ;;;###autoload
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
766 (defcustom whitespace-global-mode nil
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
767 "Toggle global Whitespace mode.
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
768
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
769 Setting this variable directly does not take effect;
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
770 use either \\[customize] or the function `whitespace-global-mode'
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
771 \(which see)."
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
772 :set (lambda (sym val)
35050
eeb50448541d (whitespace-global-mode): Fix typo.
Dave Love <fx@gnu.org>
parents: 34304
diff changeset
773 (whitespace-global-mode (or val 0)))
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
774 :initialize 'custom-initialize-default
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
775 :type 'boolean
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
776 :group 'whitespace
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
777 :require 'whitespace)
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
778
38874
a1db1537c80f (whitespace-global-mode): Add autoload cookie.
Gerd Moellmann <gerd@gnu.org>
parents: 38436
diff changeset
779 ;;;###autoload
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
780 (defun whitespace-global-mode (&optional arg)
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
781 "Toggle using Whitespace mode in new buffers.
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
782 With ARG, turn the mode on if and only iff ARG is positive.
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
783
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
784 When this mode is active, `whitespace-buffer' is added to
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
785 `find-file-hooks' and `kill-buffer-hook'."
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
786 (interactive "P")
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
787 (setq arg (if arg
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
788 (> (prefix-numeric-value arg) 0)
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
789 (not whitespace-global-mode)))
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
790 (if arg
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
791 (progn
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
792 (add-hook 'find-file-hooks 'whitespace-buffer)
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
793 (add-hook 'local-write-file-hooks 'whitespace-write-file-hook)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
794 (add-hook 'kill-buffer-hook 'whitespace-buffer))
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
795 (remove-hook 'find-file-hooks 'whitespace-buffer)
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
796 (remove-hook 'local-write-file-hooks 'whitespace-write-file-hook)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
797 (remove-hook 'kill-buffer-hook 'whitespace-buffer)))
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
798
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
799 ;;;###autoload
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
800 (defun whitespace-write-file-hook ()
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
801 "The local-write-file-hook to be called on the buffer when
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
802 whitespace check is enabled."
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
803 (interactive)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
804 (let ((werr nil))
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
805 (if whitespace-auto-cleanup
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
806 (whitespace-cleanup)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
807 (setq werr (whitespace-buffer)))
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
808 (if (and whitespace-abort-on-error werr)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
809 (error (concat "Abort write due to whitespaces in "
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
810 buffer-file-name))))
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
811 nil)
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
812
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
813 ;;;###autoload
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
814 (defun whitespace-describe ()
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
815 "A summary of whitespaces and what this library can do about them.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
816
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
817 The whitespace library is intended to find and help fix five different types
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
818 of whitespace problems that commonly exist in source code.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
819
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
820 1. Leading space (empty lines at the top of a file).
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
821 2. Trailing space (empty lines at the end of a file).
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
822 3. Indentation space (8 or more spaces at beginning of line, that should be
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
823 replaced with TABS).
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
824 4. Spaces followed by a TAB. (Almost always, we never want that).
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
825 5. Spaces or TABS at the end of a line.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
826
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
827 Whitespace errors are reported in a buffer, and on the modeline.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
828
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
829 Modeline will show a W:<x>!<y> to denote a particular type of whitespace,
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
830 where `x' and `y' can be one (or more) of:
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
831
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
832 e - End-of-Line whitespace.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
833 i - Indentation whitespace.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
834 l - Leading whitespace.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
835 s - Space followed by Tab.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
836 t - Trailing whitespace.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
837
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
838 If any of the whitespace checks is turned off, the modeline will display a
26245
2dbd5efce8ee (whitespace-version): Update to 2.6
Gerd Moellmann <gerd@gnu.org>
parents: 25732
diff changeset
839 !<y>.
25724
6664d8f25ea5 (whitespace-version): Update version to 2.4
Richard M. Stallman <rms@gnu.org>
parents: 25625
diff changeset
840
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
841 (since (3) is the most controversial one, here is the rationale: Most
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
842 terminal drivers and printer drivers have TAB configured or even
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
843 hardcoded to be 8 spaces. (Some of them allow configuration, but almost
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
844 always they default to 8.)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
845
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
846 Changing `tab-width' to other than 8 and editing will cause your code to
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
847 look different from within Emacs, and say, if you cat it or more it, or
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
848 even print it.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
849
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
850 Almost all the popular programming modes let you define an offset (like
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
851 c-basic-offset or perl-indent-level) to configure the offset, so you
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
852 should never have to set your `tab-width' to be other than 8 in all these
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
853 modes. In fact, with an indent level of say, 4, 2 TABS will cause Emacs
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
854 to replace your 8 spaces with one \t (try it). If vi users in your
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
855 office complain, tell them to use vim, which distinguishes between
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
856 tabstop and shiftwidth (vi equivalent of our offsets), and also ask them
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
857 to set smarttab.)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
858
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
859 All the above have caused (and will cause) unwanted codeline integration and
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
860 merge problems.
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
861
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
862 whitespace.el will complain if it detects whitespaces on opening a file, and
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
863 warn you on closing a file also (in case you had inserted any
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
864 whitespaces during the process of your editing)."
25625
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
865 (interactive)
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
866 (message "Use C-h f whitespace-describe to read about whitespace.el v%s."
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
867 whitespace-version))
c0e27d3ce645 Finish making it fit Emacs conventions. Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 25582
diff changeset
868
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
869 (defun whitespace-unload-hook ()
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
870 (remove-hook 'find-file-hooks 'whitespace-buffer)
38882
ceec599316a4 whitespace 3.1
Rajesh Vaidheeswarran <rv@gnu.org>
parents: 38874
diff changeset
871 (remove-hook 'local-write-file-hooks 'whitespace-write-file-hook)
32501
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
872 (remove-hook 'kill-buffer-hook 'whitespace-buffer))
616755d12f93 Doc fixes.
Dave Love <fx@gnu.org>
parents: 29499
diff changeset
873
25582
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
874 (provide 'whitespace)
e8428725fec3 Initial revision
Dave Love <fx@gnu.org>
parents:
diff changeset
875 ;;; whitespace.el ends here