mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-17 11:20:39 -08:00
Doc fixes.
(top-level): Don't add hooks here. (whitespace-running-emacs): Deleted. (timer): Don't require. (whitespace): Add back :version conditional on xemacs test. (whitespace-spacetab-regexp, whitespace-indent-regexp) (whitespace-ateol-regexp, whitespace-modes): Fix custom type. (whitespace-force-mode-line-update, whitespace-refresh-rescan-list) (whitespace-tickle-timer, whitespace-rescan-files-in-buffers): Avoid specific xemacs test. (whitespace-global-mode): New option. (whitespace-global-mode): New command. (whitespace-unload-hook): New function.
This commit is contained in:
parent
d1268e529b
commit
fc3337909b
1 changed files with 72 additions and 52 deletions
|
|
@ -38,17 +38,7 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
;; add a hook to find-file-hooks and kill-buffer-hook
|
|
||||||
(add-hook 'find-file-hooks 'whitespace-buffer)
|
|
||||||
(add-hook 'kill-buffer-hook 'whitespace-buffer)
|
|
||||||
|
|
||||||
(defvar whitespace-version "2.8" "Version of the whitespace library.")
|
(defvar whitespace-version "2.8" "Version of the whitespace library.")
|
||||||
;; Find out what type of Emacs we are running in.
|
|
||||||
(defvar whitespace-running-emacs (if (string-match "XEmacs\\|Lucid"
|
|
||||||
emacs-version) nil t)
|
|
||||||
"If this is Emacs, not XEmacs, this is t.")
|
|
||||||
|
|
||||||
(if whitespace-running-emacs (require 'timer))
|
|
||||||
|
|
||||||
(defvar whitespace-all-buffer-files nil
|
(defvar whitespace-all-buffer-files nil
|
||||||
"An associated list of buffers and files checked for whitespace cleanliness.
|
"An associated list of buffers and files checked for whitespace cleanliness.
|
||||||
|
|
@ -83,12 +73,16 @@ defgroup"
|
||||||
don't define defcustom"
|
don't define defcustom"
|
||||||
`(defvar ,sym ,val ,doc))))
|
`(defvar ,sym ,val ,doc))))
|
||||||
|
|
||||||
|
(if (featurep 'xemacs)
|
||||||
(defgroup whitespace nil
|
(defgroup whitespace nil
|
||||||
"Check for and fix five different types of whitespaces in source code."
|
"Check for and fix five different types of whitespaces in source code."
|
||||||
;; Since XEmacs doesn't have a 'convenience group, use the next best group
|
;; Since XEmacs doesn't have a 'convenience group, use the next best group
|
||||||
;; which is 'editing?
|
;; which is 'editing?
|
||||||
;; :version "21.1"
|
:group 'editing)
|
||||||
:group (if whitespace-running-emacs 'convenience 'editing))
|
(defgroup whitespace nil
|
||||||
|
"Check for and fix five different types of whitespaces in source code."
|
||||||
|
:version "21.1"
|
||||||
|
:group 'convenience))
|
||||||
|
|
||||||
(defcustom whitespace-check-leading-whitespace t
|
(defcustom whitespace-check-leading-whitespace t
|
||||||
"Flag to check leading whitespace."
|
"Flag to check leading whitespace."
|
||||||
|
|
@ -107,7 +101,7 @@ don't define defcustom"
|
||||||
|
|
||||||
(defcustom whitespace-spacetab-regexp " \t"
|
(defcustom whitespace-spacetab-regexp " \t"
|
||||||
"Regexp to match a space followed by a TAB."
|
"Regexp to match a space followed by a TAB."
|
||||||
:type 'string
|
:type 'regexp
|
||||||
:group 'whitespace)
|
:group 'whitespace)
|
||||||
|
|
||||||
(defcustom whitespace-check-indent-whitespace t
|
(defcustom whitespace-check-indent-whitespace t
|
||||||
|
|
@ -117,7 +111,7 @@ don't define defcustom"
|
||||||
|
|
||||||
(defcustom whitespace-indent-regexp (concat "^\\(\t*\\) " " ")
|
(defcustom whitespace-indent-regexp (concat "^\\(\t*\\) " " ")
|
||||||
"Regexp to match (any TABS followed by) 8/more whitespaces at start of line."
|
"Regexp to match (any TABS followed by) 8/more whitespaces at start of line."
|
||||||
:type 'string
|
:type 'regexp
|
||||||
:group 'whitespace)
|
:group 'whitespace)
|
||||||
|
|
||||||
(defcustom whitespace-check-ateol-whitespace t
|
(defcustom whitespace-check-ateol-whitespace t
|
||||||
|
|
@ -127,11 +121,11 @@ don't define defcustom"
|
||||||
|
|
||||||
(defcustom whitespace-ateol-regexp "[ \t]$"
|
(defcustom whitespace-ateol-regexp "[ \t]$"
|
||||||
"Regexp to match a TAB or a space at the EOL."
|
"Regexp to match a TAB or a space at the EOL."
|
||||||
:type 'string
|
:type 'regexp
|
||||||
:group 'whitespace)
|
:group 'whitespace)
|
||||||
|
|
||||||
(defcustom whitespace-errbuf "*Whitespace Errors*"
|
(defcustom whitespace-errbuf "*Whitespace Errors*"
|
||||||
"The buffer where whitespace related messages will be logged."
|
"The name of the buffer where whitespace related messages will be logged."
|
||||||
:type 'string
|
:type 'string
|
||||||
:group 'whitespace)
|
:group 'whitespace)
|
||||||
|
|
||||||
|
|
@ -174,6 +168,7 @@ following to your `.emacs':
|
||||||
whitespace-modes))\)
|
whitespace-modes))\)
|
||||||
|
|
||||||
Or, alternately, you can use the Emacs `customize' command to set this."
|
Or, alternately, you can use the Emacs `customize' command to set this."
|
||||||
|
:type '(repeat symbol)
|
||||||
:group 'whitespace)
|
:group 'whitespace)
|
||||||
|
|
||||||
(defcustom whitespace-rescan-timer-time 600
|
(defcustom whitespace-rescan-timer-time 600
|
||||||
|
|
@ -206,8 +201,8 @@ To disable timer scans, set this to zero."
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun whitespace-buffer (&optional quiet)
|
(defun whitespace-buffer (&optional quiet)
|
||||||
"Find five different types of white spaces in buffer:
|
"Find five different types of white spaces in buffer.
|
||||||
|
These are:
|
||||||
1. Leading space \(empty lines at the top of a file\).
|
1. Leading space \(empty lines at the top of a file\).
|
||||||
2. Trailing space \(empty lines at the end of a file\).
|
2. Trailing space \(empty lines at the end of a file\).
|
||||||
3. Indentation space \(8 or more spaces, that should be replaced with TABS\).
|
3. Indentation space \(8 or more spaces, that should be replaced with TABS\).
|
||||||
|
|
@ -310,7 +305,7 @@ and:
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun whitespace-region (s e)
|
(defun whitespace-region (s e)
|
||||||
"Check a region specified by point and mark for whitespace errors."
|
"Check the region for whitespace errors."
|
||||||
(interactive "r")
|
(interactive "r")
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(save-restriction
|
(save-restriction
|
||||||
|
|
@ -375,7 +370,7 @@ whitespace problems."
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun whitespace-cleanup-region (s e)
|
(defun whitespace-cleanup-region (s e)
|
||||||
"Whitespace cleanup on a region specified by point and mark."
|
"Whitespace cleanup on the region."
|
||||||
(interactive "r")
|
(interactive "r")
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(save-restriction
|
(save-restriction
|
||||||
|
|
@ -500,8 +495,8 @@ whitespace problems."
|
||||||
nil)))
|
nil)))
|
||||||
|
|
||||||
(defun whitespace-update-modeline (&optional whitespace-err)
|
(defun whitespace-update-modeline (&optional whitespace-err)
|
||||||
"Update modeline with whitespace errors and whitespaces whose testing has
|
"Update modeline with whitespace errors.
|
||||||
been turned off."
|
Also with whitespaces whose testing has been turned off."
|
||||||
(if whitespace-display-in-modeline
|
(if whitespace-display-in-modeline
|
||||||
(progn
|
(progn
|
||||||
(setq whitespace-mode-line nil)
|
(setq whitespace-mode-line nil)
|
||||||
|
|
@ -522,9 +517,9 @@ been turned off."
|
||||||
;; Force mode line updation for different Emacs versions
|
;; Force mode line updation for different Emacs versions
|
||||||
(defun whitespace-force-mode-line-update ()
|
(defun whitespace-force-mode-line-update ()
|
||||||
"Force the mode line update for different flavors of Emacs."
|
"Force the mode line update for different flavors of Emacs."
|
||||||
(if whitespace-running-emacs
|
(if (fboundp 'redraw-modeline)
|
||||||
(force-mode-line-update) ; Emacs
|
(redraw-modeline) ; XEmacs
|
||||||
(redraw-modeline))) ; XEmacs
|
(force-mode-line-update))) ; Emacs
|
||||||
|
|
||||||
(defun whitespace-check-buffer-list (buf-name buf-file)
|
(defun whitespace-check-buffer-list (buf-name buf-file)
|
||||||
"Add a buffer and its file to the whitespace monitor list.
|
"Add a buffer and its file to the whitespace monitor list.
|
||||||
|
|
@ -543,12 +538,9 @@ If timer is not set, then set it to scan the files in
|
||||||
`whitespace-rescan-timer-time') for whitespace creep."
|
`whitespace-rescan-timer-time') for whitespace creep."
|
||||||
(if (and whitespace-rescan-timer-time (not whitespace-rescan-timer))
|
(if (and whitespace-rescan-timer-time (not whitespace-rescan-timer))
|
||||||
(setq whitespace-rescan-timer
|
(setq whitespace-rescan-timer
|
||||||
(if whitespace-running-emacs
|
|
||||||
(run-at-time nil whitespace-rescan-timer-time
|
|
||||||
'whitespace-rescan-files-in-buffers)
|
|
||||||
(add-timeout whitespace-rescan-timer-time
|
(add-timeout whitespace-rescan-timer-time
|
||||||
'whitespace-rescan-files-in-buffers nil
|
'whitespace-rescan-files-in-buffers nil
|
||||||
whitespace-rescan-timer-time)))))
|
whitespace-rescan-timer-time))))
|
||||||
|
|
||||||
(defun whitespace-rescan-files-in-buffers (&optional arg)
|
(defun whitespace-rescan-files-in-buffers (&optional arg)
|
||||||
"Check monitored files for whitespace creep since last scan."
|
"Check monitored files for whitespace creep since last scan."
|
||||||
|
|
@ -556,9 +548,7 @@ If timer is not set, then set it to scan the files in
|
||||||
buffile bufname thiselt buf)
|
buffile bufname thiselt buf)
|
||||||
(if (not whitespace-all-my-files)
|
(if (not whitespace-all-my-files)
|
||||||
(progn
|
(progn
|
||||||
(if whitespace-running-emacs
|
(disable-timeout whitespace-rescan-timer)
|
||||||
(cancel-timer whitespace-rescan-timer)
|
|
||||||
(disable-timeout whitespace-rescan-timer))
|
|
||||||
(setq whitespace-rescan-timer nil))
|
(setq whitespace-rescan-timer nil))
|
||||||
(while whitespace-all-my-files
|
(while whitespace-all-my-files
|
||||||
(setq thiselt (car whitespace-all-my-files))
|
(setq thiselt (car whitespace-all-my-files))
|
||||||
|
|
@ -588,16 +578,42 @@ If timer is not set, then set it to scan the files in
|
||||||
(defun whitespace-refresh-rescan-list (buffile bufname)
|
(defun whitespace-refresh-rescan-list (buffile bufname)
|
||||||
"Refresh the list of files to be rescaned for whitespace creep."
|
"Refresh the list of files to be rescaned for whitespace creep."
|
||||||
(if whitespace-all-buffer-files
|
(if whitespace-all-buffer-files
|
||||||
(progn
|
|
||||||
(setq whitespace-all-buffer-files
|
(setq whitespace-all-buffer-files
|
||||||
(delete (list buffile bufname) whitespace-all-buffer-files)))
|
(delete (list buffile bufname) whitespace-all-buffer-files))
|
||||||
|
(when whitespace-rescan-timer
|
||||||
|
(disable-timeout whitespace-rescan-timer)
|
||||||
|
(setq whitespace-rescan-timer nil))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defcustom whitespace-global-mode nil
|
||||||
|
"Toggle global Whitespace mode.
|
||||||
|
|
||||||
|
Setting this variable directly does not take effect;
|
||||||
|
use either \\[customize] or the function `whitespace-global-mode'
|
||||||
|
\(which see)."
|
||||||
|
:set (lambda (sym val)
|
||||||
|
(whitespace-global-mode (or value 0)))
|
||||||
|
:initialize 'custom-initialize-default
|
||||||
|
:type 'boolean
|
||||||
|
:group 'whitespace
|
||||||
|
:require 'whitespace)
|
||||||
|
|
||||||
|
(defun whitespace-global-mode (&optional arg)
|
||||||
|
"Toggle using Whitespace mode in new buffers.
|
||||||
|
With ARG, turn the mode on if and only iff ARG is positive.
|
||||||
|
|
||||||
|
When this mode is active, `whitespace-buffer' is added to
|
||||||
|
`find-file-hooks' and `kill-buffer-hook'."
|
||||||
|
(interactive "P")
|
||||||
|
(setq arg (if arg
|
||||||
|
(> (prefix-numeric-value arg) 0)
|
||||||
|
(not whitespace-global-mode)))
|
||||||
|
(if arg
|
||||||
(progn
|
(progn
|
||||||
(if (and whitespace-running-emacs (timerp whitespace-rescan-timer))
|
(add-hook 'find-file-hooks 'whitespace-buffer)
|
||||||
(cancel-timer whitespace-rescan-timer))
|
(add-hook 'kill-buffer-hook 'whitespace-buffer))
|
||||||
(if (and (not whitespace-running-emacs) whitespace-rescan-timer)
|
(remove-hook 'find-file-hooks 'whitespace-buffer)
|
||||||
(disable-timeout whitespace-rescan-timer))
|
(remove-hook 'kill-buffer-hook 'whitespace-buffer)))
|
||||||
(if whitespace-rescan-timer
|
|
||||||
(setq whitespace-rescan-timer nil)))))
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun whitespace-describe ()
|
(defun whitespace-describe ()
|
||||||
|
|
@ -632,13 +648,13 @@ If any of the whitespace checks is turned off, the modeline will display a
|
||||||
hardcoded to be 8 spaces. (Some of them allow configuration, but almost
|
hardcoded to be 8 spaces. (Some of them allow configuration, but almost
|
||||||
always they default to 8.)
|
always they default to 8.)
|
||||||
|
|
||||||
Changing tab-width to other than 8 and editing will cause your code to
|
Changing `tab-width' to other than 8 and editing will cause your code to
|
||||||
look different from within Emacs, and say, if you cat it or more it, or
|
look different from within Emacs, and say, if you cat it or more it, or
|
||||||
even print it.
|
even print it.
|
||||||
|
|
||||||
Almost all the popular programming modes let you define an offset (like
|
Almost all the popular programming modes let you define an offset (like
|
||||||
c-basic-offset or perl-indent-level) to configure the offset, so you
|
c-basic-offset or perl-indent-level) to configure the offset, so you
|
||||||
should never have to set your tab-width to be other than 8 in all these
|
should never have to set your `tab-width' to be other than 8 in all these
|
||||||
modes. In fact, with an indent level of say, 4, 2 TABS will cause Emacs
|
modes. In fact, with an indent level of say, 4, 2 TABS will cause Emacs
|
||||||
to replace your 8 spaces with one \t (try it). If vi users in your
|
to replace your 8 spaces with one \t (try it). If vi users in your
|
||||||
office complain, tell them to use vim, which distinguishes between
|
office complain, tell them to use vim, which distinguishes between
|
||||||
|
|
@ -649,12 +665,16 @@ All the above have caused (and will cause) unwanted codeline integration and
|
||||||
merge problems.
|
merge problems.
|
||||||
|
|
||||||
whitespace.el will complain if it detects whitespaces on opening a file, and
|
whitespace.el will complain if it detects whitespaces on opening a file, and
|
||||||
warn you on closing a file also. (if in case you had inserted any
|
warn you on closing a file also (in case you had inserted any
|
||||||
whitespaces during the process of your editing.)"
|
whitespaces during the process of your editing)."
|
||||||
(interactive)
|
(interactive)
|
||||||
(message "Use C-h f whitespace-describe to read about whitespace.el v%s."
|
(message "Use C-h f whitespace-describe to read about whitespace.el v%s."
|
||||||
whitespace-version))
|
whitespace-version))
|
||||||
|
|
||||||
|
(defun whitespace-unload-hook ()
|
||||||
|
(remove-hook 'find-file-hooks 'whitespace-buffer)
|
||||||
|
(remove-hook 'kill-buffer-hook 'whitespace-buffer))
|
||||||
|
|
||||||
(provide 'whitespace)
|
(provide 'whitespace)
|
||||||
|
|
||||||
;;; whitespace.el ends here
|
;;; whitespace.el ends here
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue