Mercurial > emacs
annotate lisp/emacs-lisp/checkdoc.el @ 69713:75b06a7624a1
* images/README: Update with following information.
* images/data-save.xpm, images/mail/flag-for-followup.xpm:
* images/zoom-in.xpm, images/zoom-out.xpm: New images from GNOME 2.12.
* images/contact.pbm, images/data-save.pbm, images/delete.pbm:
* images/mail/flag-for-followup.pbm, images/mail/inbox.pbm:
* images/mail/move.pbm, images/next-page.pbm, images/zoom-out.pbm: New
bitmaps for new images.
* images/refresh.xpm, images/sort-ascending.xpm,
* images/sort-descending.xpm: Update with GTK 2.x images. Note that the
default GTK icons are not overridden by the GNOME theme due to a bug
which was fixed in GNOME 2.15. Once GNOME 2.16 is in wide circulation,
then the GTK icons should be replaced with the equivalent GNOME icons.
Until then, we should be consistent with GTK first, then GNOME.
* images/mail/repack.xpm, images/mail/reply-from.xpm:
* images/mail/reply-to.xpm, images/search-replace.xpm:
* images/separator.xpm, images/show.xpm: Update custom icons to be
closer to their GNOME counterparts.
* images/attach.pbm, images/exit.pbm, images/mail/compose.pbm:
* images/mail/repack.pbm, images/mail/reply-all.pbm:
* images/mail/reply-from.pbm, images/mail/reply-to.pbm:
* images/mail/reply.pbm, images/mail/send.pbm, images/show.pbm:
* images/search-replace.pbm: Update bitmaps.
* images/execute.pbm, images/execute.xpm, images/fld-open.pbm:
* images/fld-open.xpm, images/highlight.pbm, images/highlight.xpm:
* images/mail.pbm, images/mail.xpm, images/mail/alias.pbm:
* images/mail/alias.xpm, images/mail/refile.pbm:
* images/mail/refile.xpm, images/page-down.pbm, images/page-down.xpm:
* images/widen.pbm, images/widen.xpm: Remove custom MH-E icons since
MH-E is now using the equivalent GTK/GNOME icons.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Tue, 28 Mar 2006 19:15:30 +0000 |
parents | 067115a6e738 |
children | 56fd2cceac24 c5406394f567 |
rev | line source |
---|---|
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37426
diff
changeset
|
1 ;;; checkdoc.el --- check documentation strings for style requirements |
20085 | 2 |
64751
5b1a238fcbb4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64379
diff
changeset
|
3 ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, |
68648
067115a6e738
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
65680
diff
changeset
|
4 ;; 2005, 2006 Free Software Foundation, Inc. |
21181 | 5 |
20603
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
6 ;; Author: Eric M. Ludlam <zappo@gnu.org> |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
7 ;; Version: 0.6.2 |
20085 | 8 ;; Keywords: docs, maint, lisp |
21181 | 9 |
20085 | 10 ;; This file is part of GNU Emacs. |
21181 | 11 |
20085 | 12 ;; GNU Emacs is free software; you can redistribute it and/or modify |
13 ;; it under the terms of the GNU General Public License as published by | |
14 ;; the Free Software Foundation; either version 2, or (at your option) | |
15 ;; any later version. | |
21181 | 16 |
20085 | 17 ;; GNU Emacs is distributed in the hope that it will be useful, |
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 ;; GNU General Public License for more details. | |
21181 | 21 |
20085 | 22 ;; You should have received a copy of the GNU General Public License |
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
64085 | 24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
25 ;; Boston, MA 02110-1301, USA. | |
20085 | 26 |
27 ;;; Commentary: | |
28 ;; | |
22195 | 29 ;; The Emacs Lisp manual has a nice chapter on how to write |
20085 | 30 ;; documentation strings. Many stylistic suggestions are fairly |
31 ;; deterministic and easy to check for syntactically, but also easy | |
32 ;; to forget. The main checkdoc engine will perform the stylistic | |
33 ;; checks needed to make sure these styles are remembered. | |
34 ;; | |
35 ;; There are two ways to use checkdoc: | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
36 ;; 1) Periodically use `checkdoc' or `checkdoc-current-buffer'. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
37 ;; `checkdoc' is a more interactive version of |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
38 ;; `checkdoc-current-buffer' |
20085 | 39 ;; 2) Use `checkdoc-minor-mode' to automatically check your |
22195 | 40 ;; documentation whenever you evaluate Lisp code with C-M-x |
20085 | 41 ;; or [menu-bar emacs-lisp eval-buffer]. Additional key-bindings |
42 ;; are also provided under C-c ? KEY | |
43 ;; (require 'checkdoc) | |
44 ;; (add-hook 'emacs-lisp-mode-hook | |
45 ;; '(lambda () (checkdoc-minor-mode 1))) | |
46 ;; | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
47 ;; Using `checkdoc': |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
48 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
49 ;; The commands `checkdoc' and `checkdoc-ispell' are the top-level |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
50 ;; entry points to all of the different checks that are available. It |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
51 ;; breaks examination of your Lisp file into four sections (comments, |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
52 ;; documentation, messages, and spacing) and indicates its current |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
53 ;; state in a status buffer. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
54 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
55 ;; The Comments check examines your headers, footers, and |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
56 ;; various tags (such as "Code:") to make sure that your code is ready |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
57 ;; for easy integration into existing systems. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
58 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
59 ;; The Documentation check deals with documentation strings |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
60 ;; and their elements that help make Emacs easier to use. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
61 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
62 ;; The Messages check ensures that the strings displayed in the |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
63 ;; minibuffer by some commands (such as `error' and `y-or-n-p') |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
64 ;; are consistent with the Emacs environment. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
65 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
66 ;; The Spacing check cleans up white-space at the end of lines. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
67 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
68 ;; The interface while working with documentation and messages is |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
69 ;; slightly different when being run in the interactive mode. The |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
70 ;; interface offers several options, including the ability to skip to |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
71 ;; the next error, or back up to previous errors. Auto-fixing is |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
72 ;; turned off at this stage, but you can use the `f' or `F' key to fix |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
73 ;; a given error (if the fix is available.) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
74 ;; |
20085 | 75 ;; Auto-fixing: |
76 ;; | |
77 ;; There are four classifications of style errors in terms of how | |
78 ;; easy they are to fix. They are simple, complex, really complex, | |
79 ;; and impossible. (Impossible really means that checkdoc does not | |
80 ;; have a fixing routine yet.) Typically white-space errors are | |
81 ;; classified as simple, and are auto-fixed by default. Typographic | |
82 ;; changes are considered complex, and the user is asked if they want | |
83 ;; the problem fixed before checkdoc makes the change. These changes | |
84 ;; can be done without asking if `checkdoc-autofix-flag' is properly | |
85 ;; set. Potentially redundant changes are considered really complex, | |
86 ;; and the user is always asked before a change is inserted. The | |
87 ;; variable `checkdoc-autofix-flag' controls how these types of errors | |
88 ;; are fixed. | |
89 ;; | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
90 ;; Spell checking text: |
20085 | 91 ;; |
92 ;; The variable `checkdoc-spellcheck-documentation-flag' can be set | |
93 ;; to customize how spell checking is to be done. Since spell | |
94 ;; checking can be quite slow, you can optimize how best you want your | |
46841
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
95 ;; checking done. The default is `defun', which spell checks each time |
20085 | 96 ;; `checkdoc-defun' or `checkdoc-eval-defun' is used. Setting to nil |
97 ;; prevents spell checking during normal usage. | |
98 ;; Setting this variable to nil does not mean you cannot take | |
99 ;; advantage of the spell checking. You can instead use the | |
100 ;; interactive functions `checkdoc-ispell-*' to check the spelling of | |
101 ;; your documentation. | |
22195 | 102 ;; There is a list of Lisp-specific words which checkdoc will |
103 ;; install into Ispell on the fly, but only if Ispell is not already | |
20085 | 104 ;; running. Use `ispell-kill-ispell' to make checkdoc restart it with |
105 ;; these words enabled. | |
106 ;; | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
107 ;; Checking parameters: |
20603
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
108 ;; |
22514
dee11277c07d
(checkdoc-eval-defun): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
22195
diff
changeset
|
109 ;; You might not always want a function to have its parameters listed |
20603
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
110 ;; in order. When this is the case, put the following comment just in |
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
111 ;; front of the documentation string: "; checkdoc-order: nil" This |
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
112 ;; overrides the value of `checkdoc-arguments-in-order-flag'. |
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
113 ;; |
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
114 ;; If you specifically wish to avoid mentioning a parameter of a |
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
115 ;; function in the doc string (such as a hidden parameter, or a |
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
116 ;; parameter which is very obvious like events), you can have checkdoc |
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
117 ;; skip looking for it by putting the following comment just in front |
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
118 ;; of the documentation string: "; checkdoc-params: (args go here)" |
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
119 ;; |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
120 ;; Checking message strings: |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
121 ;; |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
122 ;; The text that follows the `error' and `y-or-n-p' commands is |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
123 ;; also checked. The documentation for `error' clearly states some |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
124 ;; simple style rules to follow which checkdoc will auto-fix for you. |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
125 ;; `y-or-n-p' also states that it should end in a space. I added that |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
126 ;; it should end in "? " since that is almost always used. |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
127 ;; |
20085 | 128 ;; Adding your own checks: |
129 ;; | |
130 ;; You can experiment with adding your own checks by setting the | |
131 ;; hooks `checkdoc-style-hooks' and `checkdoc-comment-style-hooks'. | |
132 ;; Return a string which is the error you wish to report. The cursor | |
133 ;; position should be preserved. | |
134 ;; | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
135 ;; Error errors: |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
136 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
137 ;; Checkdoc does not always flag errors correctly. There are a |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
138 ;; couple ways you can coax your file into passing all of checkdoc's |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
139 ;; tests through buffer local variables. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
140 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
141 ;; The variable `checkdoc-verb-check-experimental-flag' can be used |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
142 ;; to turn off the check for verb-voice in case you use words that are |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
143 ;; not semantically verbs, but are still in the incomplete list. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
144 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
145 ;; The variable `checkdoc-symbol-words' can be a list of words that |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
146 ;; happen to also be symbols. This is not a problem for one-word |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
147 ;; symbols, but if you use a hyphenated word that is also a symbol, |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
148 ;; then you may need this. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
149 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
150 ;; The symbol `checkdoc-force-docstrings-flag' can be set to nil if |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
151 ;; you have many undocumented functions you don't wish to document. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
152 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
153 ;; See the above section "Checking Parameters" for details about |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
154 ;; parameter checking. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
155 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
156 ;; Dependencies: |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
157 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
158 ;; This file requires lisp-mnt (Lisp maintenance routines) for the |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
159 ;; comment checkers. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
160 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
161 ;; Requires custom for Emacs v20. |
20085 | 162 |
163 ;;; TO DO: | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
164 ;; Hook into the byte compiler on a defun/defvar level to generate |
20085 | 165 ;; warnings in the byte-compiler's warning/error buffer. |
166 ;; Better ways to override more typical `eval' functions. Advice | |
167 ;; might be good but hard to turn on/off as a minor mode. | |
168 ;; | |
169 ;;; Maybe Do: | |
170 ;; Code sweep checks for "forbidden functions", proper use of hooks, | |
171 ;; proper keybindings, and other items from the manual that are | |
172 ;; not specifically docstring related. Would this even be useful? | |
173 | |
174 ;;; Code: | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
175 (defvar checkdoc-version "0.6.1" |
20085 | 176 "Release version of checkdoc you are currently running.") |
177 | |
178 ;; From custom web page for compatibility between versions of custom: | |
179 (eval-and-compile | |
41608
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
180 (condition-case () |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
181 (require 'custom) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
182 (error nil)) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
183 (if (and (featurep 'custom) (fboundp 'custom-declare-variable)) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
184 nil ;; We've got what we needed |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
185 ;; We have the old custom-library, hack around it! |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
186 (defmacro defgroup (&rest args) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
187 nil) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
188 (defmacro custom-add-option (&rest args) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
189 nil) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
190 (defmacro defcustom (var value doc &rest args) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
41222
diff
changeset
|
191 `(defvar ,var ,value ,doc)))) |
20085 | 192 |
65191
9dda4c47e83d
(compilation-error-regexp-alist, compilation-mode-font-lock-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
64751
diff
changeset
|
193 (defvar compilation-error-regexp-alist) |
9dda4c47e83d
(compilation-error-regexp-alist, compilation-mode-font-lock-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
64751
diff
changeset
|
194 (defvar compilation-mode-font-lock-keywords) |
9dda4c47e83d
(compilation-error-regexp-alist, compilation-mode-font-lock-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
64751
diff
changeset
|
195 |
20085 | 196 (defcustom checkdoc-autofix-flag 'semiautomatic |
22195 | 197 "*Non-nil means attempt auto-fixing of doc strings. |
198 If this value is the symbol `query', then the user is queried before | |
199 any change is made. If the value is `automatic', then all changes are | |
20085 | 200 made without asking unless the change is very-complex. If the value |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
201 is `semiautomatic' or any other value, then simple fixes are made |
20085 | 202 without asking, and complex changes are made by asking the user first. |
22195 | 203 The value `never' is the same as nil, never ask or change anything." |
20085 | 204 :group 'checkdoc |
205 :type '(choice (const automatic) | |
206 (const query) | |
22579
d0ad271c7774
(checkdoc-autofix-flag): Use `other'
Andreas Schwab <schwab@suse.de>
parents:
22514
diff
changeset
|
207 (const never) |
d0ad271c7774
(checkdoc-autofix-flag): Use `other'
Andreas Schwab <schwab@suse.de>
parents:
22514
diff
changeset
|
208 (other :tag "semiautomatic" semiautomatic))) |
20085 | 209 |
210 (defcustom checkdoc-bouncy-flag t | |
22195 | 211 "*Non-nil means to \"bounce\" to auto-fix locations. |
20085 | 212 Setting this to nil will silently make fixes that require no user |
213 interaction. See `checkdoc-autofix-flag' for auto-fixing details." | |
214 :group 'checkdoc | |
215 :type 'boolean) | |
216 | |
217 (defcustom checkdoc-force-docstrings-flag t | |
218 "*Non-nil means that all checkable definitions should have documentation. | |
219 Style guide dictates that interactive functions MUST have documentation, | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
220 and that it's good but not required practice to make non user visible items |
22195 | 221 have doc strings." |
20085 | 222 :group 'checkdoc |
223 :type 'boolean) | |
224 | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
225 (defcustom checkdoc-force-history-flag t |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
226 "*Non-nil means that files should have a History section or ChangeLog file. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
227 This helps document the evolution of, and recent changes to, the package." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
228 :group 'checkdoc |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
229 :type 'boolean) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
230 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
231 (defcustom checkdoc-permit-comma-termination-flag nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
232 "*Non-nil means the first line of a docstring may end with a comma. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
233 Ordinarily, a full sentence is required. This may be misleading when |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
234 there is a substantial caveat to the one-line description -- the comma |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
235 should be used when the first part could stand alone as a sentence, but |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
236 it indicates that a modifying clause follows." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
237 :group 'checkdoc |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
238 :type 'boolean) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
239 |
20085 | 240 (defcustom checkdoc-spellcheck-documentation-flag nil |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
241 "*Non-nil means run Ispell on text based on value. |
22195 | 242 This is automatically set to nil if Ispell does not exist on your |
20085 | 243 system. Possible values are: |
244 | |
22195 | 245 nil - Don't spell-check during basic style checks. |
246 defun - Spell-check when style checking a single defun | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
247 buffer - Spell-check when style checking the whole buffer |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
248 interactive - Spell-check during any interactive check. |
22195 | 249 t - Always spell-check" |
20085 | 250 :group 'checkdoc |
251 :type '(choice (const nil) | |
252 (const defun) | |
253 (const buffer) | |
254 (const interactive) | |
255 (const t))) | |
256 | |
257 (defvar checkdoc-ispell-lisp-words | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
258 '("alist" "emacs" "etags" "iff" "keymap" "paren" "regexp" "sexp" "xemacs") |
22195 | 259 "List of words that are correct when spell-checking Lisp documentation.") |
20085 | 260 |
261 (defcustom checkdoc-max-keyref-before-warn 10 | |
22195 | 262 "*The number of \\ [command-to-keystroke] tokens allowed in a doc string. |
20085 | 263 Any more than this and a warning is generated suggesting that the construct |
264 \\ {keymap} be used instead." | |
265 :group 'checkdoc | |
266 :type 'integer) | |
267 | |
268 (defcustom checkdoc-arguments-in-order-flag t | |
269 "*Non-nil means warn if arguments appear out of order. | |
270 Setting this to nil will mean only checking that all the arguments | |
271 appear in the proper form in the documentation, not that they are in | |
272 the same order as they appear in the argument list. No mention is | |
273 made in the style guide relating to order." | |
274 :group 'checkdoc | |
275 :type 'boolean) | |
276 | |
277 (defvar checkdoc-style-hooks nil | |
278 "Hooks called after the standard style check is completed. | |
279 All hooks must return nil or a string representing the error found. | |
280 Useful for adding new user implemented commands. | |
281 | |
282 Each hook is called with two parameters, (DEFUNINFO ENDPOINT). | |
283 DEFUNINFO is the return value of `checkdoc-defun-info'. ENDPOINT is the | |
284 location of end of the documentation string.") | |
285 | |
286 (defvar checkdoc-comment-style-hooks nil | |
287 "Hooks called after the standard comment style check is completed. | |
288 Must return nil if no errors are found, or a string describing the | |
289 problem discovered. This is useful for adding additional checks.") | |
290 | |
291 (defvar checkdoc-diagnostic-buffer "*Style Warnings*" | |
20603
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
292 "Name of warning message buffer.") |
20085 | 293 |
294 (defvar checkdoc-defun-regexp | |
295 "^(def\\(un\\|var\\|custom\\|macro\\|const\\|subst\\|advice\\)\ | |
296 \\s-+\\(\\(\\sw\\|\\s_\\)+\\)[ \t\n]+" | |
297 "Regular expression used to identify a defun. | |
298 A search leaves the cursor in front of the parameter list.") | |
299 | |
300 (defcustom checkdoc-verb-check-experimental-flag t | |
22195 | 301 "*Non-nil means to attempt to check the voice of the doc string. |
20085 | 302 This check keys off some words which are commonly misused. See the |
22195 | 303 variable `checkdoc-common-verbs-wrong-voice' if you wish to add your own." |
20085 | 304 :group 'checkdoc |
305 :type 'boolean) | |
306 | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
307 (defvar checkdoc-generate-compile-warnings-flag nil |
46363 | 308 "Non-nil means generate warnings in a buffer for browsing. |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
309 Do not set this by hand, use a function like `checkdoc-current-buffer' |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
310 with a universal argument.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
311 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
312 (defcustom checkdoc-symbol-words nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
313 "A list of symbols which also happen to make good words. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
314 These symbol-words are ignored when unquoted symbols are searched for. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
315 This should be set in an Emacs Lisp file's local variables." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
316 :group 'checkdoc |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
317 :type '(repeat (symbol :tag "Word"))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
318 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
319 (defvar checkdoc-proper-noun-list |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
320 '("ispell" "xemacs" "emacs" "lisp") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
321 "List of words (not capitalized) which should be capitalized.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
322 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
323 (defvar checkdoc-proper-noun-regexp |
64182
176ffa79bdd8
(checkdoc-proper-noun-list):
Richard M. Stallman <rms@gnu.org>
parents:
64085
diff
changeset
|
324 (let ((expr "\\_<\\(") |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
325 (l checkdoc-proper-noun-list)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
326 (while l |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
327 (setq expr (concat expr (car l) (if (cdr l) "\\|" "")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
328 l (cdr l))) |
64182
176ffa79bdd8
(checkdoc-proper-noun-list):
Richard M. Stallman <rms@gnu.org>
parents:
64085
diff
changeset
|
329 (concat expr "\\)\\_>")) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
330 "Regular expression derived from `checkdoc-proper-noun-regexp'.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
331 |
20085 | 332 (defvar checkdoc-common-verbs-regexp nil |
333 "Regular expression derived from `checkdoc-common-verbs-regexp'.") | |
334 | |
335 (defvar checkdoc-common-verbs-wrong-voice | |
336 '(("adds" . "add") | |
337 ("allows" . "allow") | |
338 ("appends" . "append") | |
22514
dee11277c07d
(checkdoc-eval-defun): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
22195
diff
changeset
|
339 ("applies" . "apply") |
dee11277c07d
(checkdoc-eval-defun): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
22195
diff
changeset
|
340 ("arranges" . "arrange") |
20085 | 341 ("brings" . "bring") |
342 ("calls" . "call") | |
343 ("catches" . "catch") | |
344 ("changes" . "change") | |
345 ("checks" . "check") | |
346 ("contains" . "contain") | |
37162
0b99eb07fc17
(checkdoc-common-verbs-wrong-voice): Add
Gerd Moellmann <gerd@gnu.org>
parents:
33495
diff
changeset
|
347 ("converts" . "convert") |
20085 | 348 ("creates" . "create") |
349 ("destroys" . "destroy") | |
350 ("disables" . "disable") | |
351 ("executes" . "execute") | |
22514
dee11277c07d
(checkdoc-eval-defun): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
22195
diff
changeset
|
352 ("evals" . "evaluate") |
20085 | 353 ("evaluates" . "evaluate") |
354 ("finds" . "find") | |
355 ("forces" . "force") | |
356 ("gathers" . "gather") | |
357 ("generates" . "generate") | |
358 ("goes" . "go") | |
359 ("guesses" . "guess") | |
360 ("highlights" . "highlight") | |
361 ("holds" . "hold") | |
362 ("ignores" . "ignore") | |
363 ("indents" . "indent") | |
364 ("initializes" . "initialize") | |
365 ("inserts" . "insert") | |
366 ("installs" . "install") | |
367 ("investigates" . "investigate") | |
368 ("keeps" . "keep") | |
369 ("kills" . "kill") | |
370 ("leaves" . "leave") | |
371 ("lets" . "let") | |
372 ("loads" . "load") | |
373 ("looks" . "look") | |
374 ("makes" . "make") | |
375 ("marks" . "mark") | |
376 ("matches" . "match") | |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
377 ("moves" . "move") |
20085 | 378 ("notifies" . "notify") |
379 ("offers" . "offer") | |
380 ("parses" . "parse") | |
381 ("performs" . "perform") | |
382 ("prepares" . "prepare") | |
383 ("prepends" . "prepend") | |
384 ("reads" . "read") | |
385 ("raises" . "raise") | |
386 ("removes" . "remove") | |
387 ("replaces" . "replace") | |
388 ("resets" . "reset") | |
389 ("restores" . "restore") | |
390 ("returns" . "return") | |
391 ("runs" . "run") | |
392 ("saves" . "save") | |
393 ("says" . "say") | |
394 ("searches" . "search") | |
395 ("selects" . "select") | |
396 ("sets" . "set") | |
397 ("sex" . "s*x") | |
398 ("shows" . "show") | |
399 ("signifies" . "signify") | |
400 ("sorts" . "sort") | |
401 ("starts" . "start") | |
402 ("stores" . "store") | |
403 ("switches" . "switch") | |
404 ("tells" . "tell") | |
405 ("tests" . "test") | |
406 ("toggles" . "toggle") | |
22514
dee11277c07d
(checkdoc-eval-defun): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
22195
diff
changeset
|
407 ("tries" . "try") |
20085 | 408 ("turns" . "turn") |
409 ("undoes" . "undo") | |
410 ("unloads" . "unload") | |
411 ("unmarks" . "unmark") | |
412 ("updates" . "update") | |
413 ("uses" . "use") | |
414 ("yanks" . "yank") | |
415 ) | |
416 "Alist of common words in the wrong voice and what should be used instead. | |
417 Set `checkdoc-verb-check-experimental-flag' to nil to avoid this costly | |
418 and experimental check. Do not modify this list without setting | |
419 the value of `checkdoc-common-verbs-regexp' to nil which cause it to | |
420 be re-created.") | |
421 | |
422 (defvar checkdoc-syntax-table nil | |
423 "Syntax table used by checkdoc in document strings.") | |
424 | |
425 (if checkdoc-syntax-table | |
426 nil | |
427 (setq checkdoc-syntax-table (copy-syntax-table emacs-lisp-mode-syntax-table)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
428 ;; When dealing with syntax in doc strings, make sure that - are encompassed |
20085 | 429 ;; in words so we can use cheap \\> to get the end of a symbol, not the |
430 ;; end of a word in a conglomerate. | |
431 (modify-syntax-entry ?- "w" checkdoc-syntax-table) | |
432 ) | |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48943
diff
changeset
|
433 |
20085 | 434 |
435 ;;; Compatibility | |
436 ;; | |
64379
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
437 (defalias 'checkdoc-make-overlay |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
438 (if (featurep 'xemacs) 'make-extent 'make-overlay)) |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
439 (defalias 'checkdoc-overlay-put |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
440 (if (featurep 'xemacs) 'set-extent-property 'overlay-put)) |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
441 (defalias 'checkdoc-delete-overlay |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
442 (if (featurep 'xemacs) 'delete-extent 'delete-overlay)) |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
443 (defalias 'checkdoc-overlay-start |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
444 (if (featurep 'xemacs) 'extent-start 'overlay-start)) |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
445 (defalias 'checkdoc-overlay-end |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
446 (if (featurep 'xemacs) 'extent-end 'overlay-end)) |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
447 (defalias 'checkdoc-mode-line-update |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
448 (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update)) |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
449 (defalias 'checkdoc-char= |
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
450 (if (featurep 'xemacs) 'char= '=)) |
20085 | 451 |
452 ;;; User level commands | |
453 ;; | |
454 ;;;###autoload | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
455 (defun checkdoc () |
46363 | 456 "Interactively check the entire buffer for style errors. |
457 The current status of the check will be displayed in a buffer which | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
458 the users will view as each check is completed." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
459 (interactive) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
460 (let ((status (list "Checking..." "-" "-" "-")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
461 (checkdoc-spellcheck-documentation-flag |
46841
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
462 (car (memq checkdoc-spellcheck-documentation-flag |
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
463 '(buffer interactive t)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
464 ;; if the user set autofix to never, then that breaks the |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
465 ;; obviously requested asking implied by using this function. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
466 ;; Set it to paranoia level. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
467 (checkdoc-autofix-flag (if (or (not checkdoc-autofix-flag) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
468 (eq checkdoc-autofix-flag 'never)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
469 'query |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
470 checkdoc-autofix-flag)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
471 tmp) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
472 (checkdoc-display-status-buffer status) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
473 ;; check the comments |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
474 (if (not buffer-file-name) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
475 (setcar status "Not checked") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
476 (if (checkdoc-file-comments-engine) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
477 (setcar status "Errors") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
478 (setcar status "Ok"))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
479 (setcar (cdr status) "Checking...") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
480 (checkdoc-display-status-buffer status) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
481 ;; Check the documentation |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
482 (setq tmp (checkdoc-interactive nil t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
483 (if tmp |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
484 (setcar (cdr status) (format "%d Errors" (length tmp))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
485 (setcar (cdr status) "Ok")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
486 (setcar (cdr (cdr status)) "Checking...") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
487 (checkdoc-display-status-buffer status) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
488 ;; Check the message text |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
489 (if (setq tmp (checkdoc-message-interactive nil t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
490 (setcar (cdr (cdr status)) (format "%d Errors" (length tmp))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
491 (setcar (cdr (cdr status)) "Ok")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
492 (setcar (cdr (cdr (cdr status))) "Checking...") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
493 (checkdoc-display-status-buffer status) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
494 ;; Rogue spacing |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
495 (if (condition-case nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
496 (checkdoc-rogue-spaces nil t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
497 (error t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
498 (setcar (cdr (cdr (cdr status))) "Errors") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
499 (setcar (cdr (cdr (cdr status))) "Ok")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
500 (checkdoc-display-status-buffer status))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
501 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
502 (defun checkdoc-display-status-buffer (check) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
503 "Display and update the status buffer for the current checkdoc mode. |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
504 CHECK is a list of four strings stating the current status of each |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
505 test; the nth string describes the status of the nth test." |
25697
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
506 (let (temp-buffer-setup-hook) |
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
507 (with-output-to-temp-buffer " *Checkdoc Status*" |
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
508 (princ-list |
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
509 "Buffer comments and tags: " (nth 0 check) "\n" |
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
510 "Documentation style: " (nth 1 check) "\n" |
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
511 "Message/Query text style: " (nth 2 check) "\n" |
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
512 "Unwanted Spaces: " (nth 3 check) |
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
513 ))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
514 (shrink-window-if-larger-than-buffer |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
515 (get-buffer-window " *Checkdoc Status*")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
516 (message nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
517 (sit-for 0)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
518 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
519 ;;;###autoload |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
520 (defun checkdoc-interactive (&optional start-here showstatus) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
521 "Interactively check the current buffer for doc string errors. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
522 Prefix argument START-HERE will start the checking from the current |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
523 point, otherwise the check starts at the beginning of the current |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
524 buffer. Allows navigation forward and backwards through document |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
525 errors. Does not check for comment or space warnings. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
526 Optional argument SHOWSTATUS indicates that we should update the |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
527 checkdoc status window instead of the usual behavior." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
528 (interactive "P") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
529 (let ((checkdoc-spellcheck-documentation-flag |
46841
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
530 (car (memq checkdoc-spellcheck-documentation-flag |
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
531 '(interactive t))))) |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
532 (prog1 |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
533 ;; Due to a design flaw, this will never spell check |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
534 ;; docstrings. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
535 (checkdoc-interactive-loop start-here showstatus |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
536 'checkdoc-next-error) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
537 ;; This is a workaround to perform spell checking. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
538 (checkdoc-interactive-ispell-loop start-here)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
539 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
540 ;;;###autoload |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
541 (defun checkdoc-message-interactive (&optional start-here showstatus) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
542 "Interactively check the current buffer for message string errors. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
543 Prefix argument START-HERE will start the checking from the current |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
544 point, otherwise the check starts at the beginning of the current |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
545 buffer. Allows navigation forward and backwards through document |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
546 errors. Does not check for comment or space warnings. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
547 Optional argument SHOWSTATUS indicates that we should update the |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
548 checkdoc status window instead of the usual behavior." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
549 (interactive "P") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
550 (let ((checkdoc-spellcheck-documentation-flag |
46841
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
551 (car (memq checkdoc-spellcheck-documentation-flag |
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
552 '(interactive t))))) |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
553 (prog1 |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
554 ;; Due to a design flaw, this will never spell check messages. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
555 (checkdoc-interactive-loop start-here showstatus |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
556 'checkdoc-next-message-error) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
557 ;; This is a workaround to perform spell checking. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
558 (checkdoc-message-interactive-ispell-loop start-here)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
559 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
560 (defun checkdoc-interactive-loop (start-here showstatus findfunc) |
46363 | 561 "Interactively loop over all errors that can be found by a given method. |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
562 |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
563 If START-HERE is nil, searching starts at the beginning of the current |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
564 buffer, otherwise searching starts at START-HERE. SHOWSTATUS |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
565 expresses the verbosity of the search, and whether ending the search |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
566 will auto-exit this function. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
567 |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
568 FINDFUNC is a symbol representing a function that will position the |
42706 | 569 cursor, and return error message text to present to the user. It is |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
570 assumed that the cursor will stop just before a major sexp, which will |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
571 be highlighted to present the user with feedback as to the offending |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
572 style." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
573 ;; Determine where to start the test |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
574 (let* ((begin (prog1 (point) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
575 (if (not start-here) (goto-char (point-min))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
576 ;; Assign a flag to spellcheck flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
577 (checkdoc-spellcheck-documentation-flag |
46841
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
578 (car (memq checkdoc-spellcheck-documentation-flag |
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
579 '(buffer interactive t)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
580 ;; Fetch the error list |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
581 (err-list (list (funcall findfunc nil))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
582 (cdo nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
583 (returnme nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
584 c) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
585 (save-window-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
586 (if (not (car err-list)) (setq err-list nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
587 ;; Include whatever function point is in for good measure. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
588 (beginning-of-defun) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
589 (while err-list |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
590 (goto-char (cdr (car err-list))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
591 ;; The cursor should be just in front of the offending doc string |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
592 (if (stringp (car (car err-list))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
593 (setq cdo (save-excursion (checkdoc-make-overlay |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
594 (point) (progn (forward-sexp 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
595 (point))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
596 (setq cdo (checkdoc-make-overlay |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
597 (checkdoc-error-start (car (car err-list))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
598 (checkdoc-error-end (car (car err-list)))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
599 (unwind-protect |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
600 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
601 (checkdoc-overlay-put cdo 'face 'highlight) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
602 ;; Make sure the whole doc string is visible if possible. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
603 (sit-for 0) |
27444
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
604 (if (and (looking-at "\"") |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
605 (not (pos-visible-in-window-p |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
606 (save-excursion (forward-sexp 1) (point)) |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
607 (selected-window)))) |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
608 (let ((l (count-lines (point) |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
609 (save-excursion |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
610 (forward-sexp 1) (point))))) |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
611 (if (> l (window-height)) |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
612 (recenter 1) |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
613 (recenter (/ (- (window-height) l) 2)))) |
89c53b25be12
(checkdoc-interactive-loop): Don't lose on a function with an empty
Dave Love <fx@gnu.org>
parents:
26615
diff
changeset
|
614 (recenter)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
615 (message "%s (C-h,%se,n,p,q)" (checkdoc-error-text |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
616 (car (car err-list))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
617 (if (checkdoc-error-unfixable (car (car err-list))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
618 "" "f,")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
619 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
620 (goto-char (checkdoc-error-start (car (car err-list)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
621 (if (not (pos-visible-in-window-p)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
622 (recenter (- (window-height) 2))) |
64379
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
623 (setq c (read-event))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
624 (if (not (integerp c)) (setq c ??)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
625 (cond |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
626 ;; Exit condition |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
627 ((checkdoc-char= c ?\C-g) (signal 'quit nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
628 ;; Request an auto-fix |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
629 ((or (checkdoc-char= c ?y) (checkdoc-char= c ?f)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
630 (checkdoc-delete-overlay cdo) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
631 (setq cdo nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
632 (goto-char (cdr (car err-list))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
633 ;; `automatic-then-never' tells the autofix function |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
634 ;; to only allow one fix to be automatic. The autofix |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
635 ;; function will then set the flag to 'never, allowing |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
636 ;; the checker to return a different error. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
637 (let ((checkdoc-autofix-flag 'automatic-then-never) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
638 (fixed nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
639 (funcall findfunc t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
640 (setq fixed (not (eq checkdoc-autofix-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
641 'automatic-then-never))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
642 (if (not fixed) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
643 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
644 (message "A Fix was not available.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
645 (sit-for 2)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
646 (setq err-list (cdr err-list)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
647 (beginning-of-defun) |
54873
bbf96a27b6c5
(checkdoc-output-mode-map, checkdoc-find-error-mouse, checkdoc-find-error):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54498
diff
changeset
|
648 (let ((ne (funcall findfunc nil))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
649 (if ne |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
650 (setq err-list (cons ne err-list)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
651 (cond ((not err-list) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
652 (message "No More Stylistic Errors.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
653 (sit-for 2)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
654 (t |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
655 (message |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
656 "No Additional style errors. Continuing...") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
657 (sit-for 2)))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
658 ;; Move to the next error (if available) |
65191
9dda4c47e83d
(compilation-error-regexp-alist, compilation-mode-font-lock-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
64751
diff
changeset
|
659 ((or (checkdoc-char= c ?n) (checkdoc-char= c ?\s)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
660 (let ((ne (funcall findfunc nil))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
661 (if (not ne) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
662 (if showstatus |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
663 (setq returnme err-list |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
664 err-list nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
665 (if (not err-list) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
666 (message "No More Stylistic Errors.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
667 (message "No Additional style errors. Continuing...")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
668 (sit-for 2)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
669 (setq err-list (cons ne err-list))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
670 ;; Go backwards in the list of errors |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
671 ((or (checkdoc-char= c ?p) (checkdoc-char= c ?\C-?)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
672 (if (/= (length err-list) 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
673 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
674 (setq err-list (cdr err-list)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
675 (goto-char (cdr (car err-list))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
676 (beginning-of-defun)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
677 (message "No Previous Errors.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
678 (sit-for 2))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
679 ;; Edit the buffer recursively. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
680 ((checkdoc-char= c ?e) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
681 (checkdoc-recursive-edit |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
682 (checkdoc-error-text (car (car err-list)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
683 (checkdoc-delete-overlay cdo) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
684 (setq err-list (cdr err-list)) ;back up the error found. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
685 (beginning-of-defun) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
686 (let ((ne (funcall findfunc nil))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
687 (if (not ne) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
688 (if showstatus |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
689 (setq returnme err-list |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
690 err-list nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
691 (message "No More Stylistic Errors.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
692 (sit-for 2)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
693 (setq err-list (cons ne err-list))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
694 ;; Quit checkdoc |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
695 ((checkdoc-char= c ?q) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
696 (setq returnme err-list |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
697 err-list nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
698 begin (point))) |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
699 ;; Goofy stuff |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
700 (t |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
701 (if (get-buffer-window "*Checkdoc Help*") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
702 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
703 (delete-window (get-buffer-window "*Checkdoc Help*")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
704 (kill-buffer "*Checkdoc Help*")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
705 (with-output-to-temp-buffer "*Checkdoc Help*" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
706 (princ-list |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
707 "Checkdoc Keyboard Summary:\n" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
708 (if (checkdoc-error-unfixable (car (car err-list))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
709 "" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
710 (concat |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
711 "f, y - auto Fix this warning without asking (if\ |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
712 available.)\n" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
713 " Very complex operations will still query.\n") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
714 ) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
715 "e - Enter recursive Edit. Press C-M-c to exit.\n" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
716 "SPC, n - skip to the Next error.\n" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
717 "DEL, p - skip to the Previous error.\n" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
718 "q - Quit checkdoc.\n" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
719 "C-h - Toggle this help buffer.")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
720 (shrink-window-if-larger-than-buffer |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
721 (get-buffer-window "*Checkdoc Help*")))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
722 (if cdo (checkdoc-delete-overlay cdo))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
723 (goto-char begin) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
724 (if (get-buffer "*Checkdoc Help*") (kill-buffer "*Checkdoc Help*")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
725 (message "Checkdoc: Done.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
726 returnme)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
727 |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
728 (defun checkdoc-interactive-ispell-loop (start-here) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
729 "Interactively spell check doc strings in the current buffer. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
730 If START-HERE is nil, searching starts at the beginning of the current |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
731 buffer, otherwise searching starts at START-HERE." |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
732 (when checkdoc-spellcheck-documentation-flag |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
733 (save-excursion |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
734 ;; Move point to where we need to start. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
735 (if start-here |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
736 ;; Include whatever function point is in for good measure. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
737 (beginning-of-defun) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
738 (goto-char (point-min))) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
739 ;; Loop over docstrings. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
740 (while (checkdoc-next-docstring) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
741 (message "Searching for doc string spell error...%d%%" |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
742 (/ (* 100 (point)) (point-max))) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
743 (if (looking-at "\"") |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
744 (checkdoc-ispell-docstring-engine |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
745 (save-excursion (forward-sexp 1) (point-marker))))) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
746 (message "Checkdoc: Done.")))) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
747 |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
748 (defun checkdoc-message-interactive-ispell-loop (start-here) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
749 "Interactively spell check messages in the current buffer. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
750 If START-HERE is nil, searching starts at the beginning of the current |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
751 buffer, otherwise searching starts at START-HERE." |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
752 (when checkdoc-spellcheck-documentation-flag |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
753 (save-excursion |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
754 ;; Move point to where we need to start. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
755 (if start-here |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
756 ;; Include whatever function point is in for good measure. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
757 (beginning-of-defun) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
758 (goto-char (point-min))) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
759 ;; Loop over message strings. |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
760 (while (checkdoc-message-text-next-string (point-max)) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
761 (message "Searching for message string spell error...%d%%" |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
762 (/ (* 100 (point)) (point-max))) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
763 (if (looking-at "\"") |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
764 (checkdoc-ispell-docstring-engine |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
765 (save-excursion (forward-sexp 1) (point-marker))))) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
766 (message "Checkdoc: Done.")))) |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
767 |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
768 |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
769 (defun checkdoc-next-error (enable-fix) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
770 "Find and return the next checkdoc error list, or nil. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
771 Only documentation strings are checked. |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
772 An error list is of the form (WARNING . POSITION) where WARNING is the |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
773 warning text, and POSITION is the point in the buffer where the error |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
774 was found. We can use points and not markers because we promise not |
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
775 to edit the buffer before point without re-executing this check. |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
776 Argument ENABLE-FIX will enable auto-fixing while looking for the next |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
777 error. This argument assumes that the cursor is already positioned to |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
778 perform the fix." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
779 (if enable-fix |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
780 (checkdoc-this-string-valid) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
781 (let ((msg nil) (p (point)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
782 (checkdoc-autofix-flag nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
783 (condition-case nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
784 (while (and (not msg) (checkdoc-next-docstring)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
785 (message "Searching for doc string error...%d%%" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
786 (/ (* 100 (point)) (point-max))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
787 (if (setq msg (checkdoc-this-string-valid)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
788 (setq msg (cons msg (point))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
789 ;; Quit.. restore position, Other errors, leave alone |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
790 (quit (goto-char p))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
791 msg))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
792 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
793 (defun checkdoc-next-message-error (enable-fix) |
41222
3d601db16361
(princ-list, checkdoc-read-event, add-to-list): Delete compatibility code.
Richard M. Stallman <rms@gnu.org>
parents:
40926
diff
changeset
|
794 "Find and return the next checkdoc message related error list, or nil. |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
795 Only text for error and `y-or-n-p' strings are checked. See |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
796 `checkdoc-next-error' for details on the return value. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
797 Argument ENABLE-FIX turns on the auto-fix feature. This argument |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
798 assumes that the cursor is already positioned to perform the fix." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
799 (if enable-fix |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
800 (checkdoc-message-text-engine) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
801 (let ((msg nil) (p (point)) (type nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
802 (checkdoc-autofix-flag nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
803 (condition-case nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
804 (while (and (not msg) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
805 (setq type |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
806 (checkdoc-message-text-next-string (point-max)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
807 (message "Searching for message string error...%d%%" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
808 (/ (* 100 (point)) (point-max))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
809 (if (setq msg (checkdoc-message-text-engine type)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
810 (setq msg (cons msg (point))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
811 ;; Quit.. restore position, Other errors, leave alone |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
812 (quit (goto-char p))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
813 msg))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
814 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
815 (defun checkdoc-recursive-edit (msg) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
816 "Enter recursive edit to permit a user to fix some error checkdoc has found. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
817 MSG is the error that was found, which is displayed in a help buffer." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
818 (with-output-to-temp-buffer "*Checkdoc Help*" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
819 (princ-list |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
820 "Error message:\n " msg |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
821 "\n\nEdit to fix this problem, and press C-M-c to continue.")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
822 (shrink-window-if-larger-than-buffer |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
823 (get-buffer-window "*Checkdoc Help*")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
824 (message "When you're done editing press C-M-c to continue.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
825 (unwind-protect |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
826 (recursive-edit) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
827 (if (get-buffer-window "*Checkdoc Help*") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
828 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
829 (delete-window (get-buffer-window "*Checkdoc Help*")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
830 (kill-buffer "*Checkdoc Help*"))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
831 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
832 ;;;###autoload |
20085 | 833 (defun checkdoc-eval-current-buffer () |
834 "Evaluate and check documentation for the current buffer. | |
835 Evaluation is done first because good documentation for something that | |
22195 | 836 doesn't work is just not useful. Comments, doc strings, and rogue |
20085 | 837 spacing are all verified." |
838 (interactive) | |
64379
12443a1e01ee
(checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
Richard M. Stallman <rms@gnu.org>
parents:
64182
diff
changeset
|
839 (eval-buffer nil) |
20085 | 840 (checkdoc-current-buffer t)) |
841 | |
842 ;;;###autoload | |
843 (defun checkdoc-current-buffer (&optional take-notes) | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
844 "Check current buffer for document, comment, error style, and rogue spaces. |
22195 | 845 With a prefix argument (in Lisp, the argument TAKE-NOTES), |
846 store all errors found in a warnings buffer, | |
847 otherwise stop after the first error." | |
20085 | 848 (interactive "P") |
849 (if (interactive-p) (message "Checking buffer for style...")) | |
850 ;; Assign a flag to spellcheck flag | |
851 (let ((checkdoc-spellcheck-documentation-flag | |
46841
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
852 (car (memq checkdoc-spellcheck-documentation-flag |
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
853 '(buffer t)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
854 (checkdoc-autofix-flag (if take-notes 'never |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
855 checkdoc-autofix-flag)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
856 (checkdoc-generate-compile-warnings-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
857 (or take-notes checkdoc-generate-compile-warnings-flag))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
858 (if take-notes |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
859 (checkdoc-start-section "checkdoc-current-buffer")) |
20085 | 860 ;; every test is responsible for returning the cursor. |
861 (or (and buffer-file-name ;; only check comments in a file | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
862 (checkdoc-comments)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
863 (checkdoc-start) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
864 (checkdoc-message-text) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
865 (checkdoc-rogue-spaces) |
20085 | 866 (not (interactive-p)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
867 (if take-notes (checkdoc-show-diagnostics)) |
20085 | 868 (message "Checking buffer for style...Done.")))) |
869 | |
870 ;;;###autoload | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
871 (defun checkdoc-start (&optional take-notes) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
872 "Start scanning the current buffer for documentation string style errors. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
873 Only documentation strings are checked. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
874 Use `checkdoc-continue' to continue checking if an error cannot be fixed. |
20085 | 875 Prefix argument TAKE-NOTES means to collect all the warning messages into |
876 a separate buffer." | |
877 (interactive "P") | |
878 (let ((p (point))) | |
879 (goto-char (point-min)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
880 (if (and take-notes (interactive-p)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
881 (checkdoc-start-section "checkdoc-start")) |
20085 | 882 (checkdoc-continue take-notes) |
883 ;; Go back since we can't be here without success above. | |
884 (goto-char p) | |
885 nil)) | |
886 | |
887 ;;;###autoload | |
888 (defun checkdoc-continue (&optional take-notes) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
889 "Find the next doc string in the current buffer which has a style error. |
20085 | 890 Prefix argument TAKE-NOTES means to continue through the whole buffer and |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
891 save warnings in a separate buffer. Second optional argument START-POINT |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
892 is the starting location. If this is nil, `point-min' is used instead." |
20085 | 893 (interactive "P") |
54873
bbf96a27b6c5
(checkdoc-output-mode-map, checkdoc-find-error-mouse, checkdoc-find-error):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54498
diff
changeset
|
894 (let ((wrong nil) (msg nil) |
20085 | 895 ;; Assign a flag to spellcheck flag |
896 (checkdoc-spellcheck-documentation-flag | |
46841
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
897 (car (memq checkdoc-spellcheck-documentation-flag |
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
898 '(buffer t)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
899 (checkdoc-autofix-flag (if take-notes 'never |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
900 checkdoc-autofix-flag)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
901 (checkdoc-generate-compile-warnings-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
902 (or take-notes checkdoc-generate-compile-warnings-flag))) |
20085 | 903 (save-excursion |
904 ;; If we are taking notes, encompass the whole buffer, otherwise | |
905 ;; the user is navigating down through the buffer. | |
906 (while (and (not wrong) (checkdoc-next-docstring)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
907 ;; OK, let's look at the doc string. |
21181 | 908 (setq msg (checkdoc-this-string-valid)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
909 (if msg (setq wrong (point))))) |
20085 | 910 (if wrong |
911 (progn | |
912 (goto-char wrong) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
913 (if (not take-notes) |
58899
9715276c90ce
(checkdoc-continue, checkdoc-comments, checkdoc-message-text, checkdoc-defun):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57072
diff
changeset
|
914 (error "%s" (checkdoc-error-text msg))))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
915 (checkdoc-show-diagnostics) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
916 (if (interactive-p) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
917 (message "No style warnings.")))) |
20085 | 918 |
919 (defun checkdoc-next-docstring () | |
22195 | 920 "Move to the next doc string after point, and return t. |
921 Return nil if there are no more doc strings." | |
20085 | 922 (if (not (re-search-forward checkdoc-defun-regexp nil t)) |
923 nil | |
924 ;; search drops us after the identifier. The next sexp is either | |
925 ;; the argument list or the value of the variable. skip it. | |
926 (forward-sexp 1) | |
927 (skip-chars-forward " \n\t") | |
928 t)) | |
929 | |
37426 | 930 ;;;###autoload |
20085 | 931 (defun checkdoc-comments (&optional take-notes) |
22195 | 932 "Find missing comment sections in the current Emacs Lisp file. |
20085 | 933 Prefix argument TAKE-NOTES non-nil means to save warnings in a |
934 separate buffer. Otherwise print a message. This returns the error | |
935 if there is one." | |
936 (interactive "P") | |
937 (if take-notes (checkdoc-start-section "checkdoc-comments")) | |
938 (if (not buffer-file-name) | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
939 (error "Can only check comments for a file buffer")) |
20085 | 940 (let* ((checkdoc-spellcheck-documentation-flag |
46841
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
941 (car (memq checkdoc-spellcheck-documentation-flag |
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
942 '(buffer t)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
943 (checkdoc-autofix-flag (if take-notes 'never checkdoc-autofix-flag)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
944 (e (checkdoc-file-comments-engine)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
945 (checkdoc-generate-compile-warnings-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
946 (or take-notes checkdoc-generate-compile-warnings-flag))) |
58899
9715276c90ce
(checkdoc-continue, checkdoc-comments, checkdoc-message-text, checkdoc-defun):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57072
diff
changeset
|
947 (if e (error "%s" (checkdoc-error-text e))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
948 (checkdoc-show-diagnostics) |
20085 | 949 e)) |
950 | |
951 ;;;###autoload | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
952 (defun checkdoc-rogue-spaces (&optional take-notes interact) |
20085 | 953 "Find extra spaces at the end of lines in the current file. |
954 Prefix argument TAKE-NOTES non-nil means to save warnings in a | |
955 separate buffer. Otherwise print a message. This returns the error | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
956 if there is one. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
957 Optional argument INTERACT permits more interactive fixing." |
20085 | 958 (interactive "P") |
959 (if take-notes (checkdoc-start-section "checkdoc-rogue-spaces")) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
960 (let* ((checkdoc-autofix-flag (if take-notes 'never checkdoc-autofix-flag)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
961 (e (checkdoc-rogue-space-check-engine nil nil interact)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
962 (checkdoc-generate-compile-warnings-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
963 (or take-notes checkdoc-generate-compile-warnings-flag))) |
20085 | 964 (if (not (interactive-p)) |
965 e | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
966 (if e |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
967 (message (checkdoc-error-text e)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
968 (checkdoc-show-diagnostics) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
969 (message "Space Check: done."))))) |
20085 | 970 |
971 ;;;###autoload | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
972 (defun checkdoc-message-text (&optional take-notes) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
973 "Scan the buffer for occurrences of the error function, and verify text. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
974 Optional argument TAKE-NOTES causes all errors to be logged." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
975 (interactive "P") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
976 (if take-notes (checkdoc-start-section "checkdoc-message-text")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
977 (let* ((p (point)) e |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
978 (checkdoc-autofix-flag (if take-notes 'never checkdoc-autofix-flag)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
979 (checkdoc-generate-compile-warnings-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
980 (or take-notes checkdoc-generate-compile-warnings-flag))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
981 (setq e (checkdoc-message-text-search)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
982 (if (not (interactive-p)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
983 e |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
984 (if e |
58899
9715276c90ce
(checkdoc-continue, checkdoc-comments, checkdoc-message-text, checkdoc-defun):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57072
diff
changeset
|
985 (error "%s" (checkdoc-error-text e)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
986 (checkdoc-show-diagnostics))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
987 (goto-char p)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
988 (if (interactive-p) (message "Checking interactive message text...done."))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48943
diff
changeset
|
989 |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
990 ;;;###autoload |
20085 | 991 (defun checkdoc-eval-defun () |
22514
dee11277c07d
(checkdoc-eval-defun): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
22195
diff
changeset
|
992 "Evaluate the current form with `eval-defun' and check its documentation. |
20085 | 993 Evaluation is done first so the form will be read before the |
994 documentation is checked. If there is a documentation error, then the display | |
995 of what was evaluated will be overwritten by the diagnostic message." | |
996 (interactive) | |
40291
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
997 (call-interactively 'eval-defun) |
20085 | 998 (checkdoc-defun)) |
999 | |
1000 ;;;###autoload | |
1001 (defun checkdoc-defun (&optional no-error) | |
22195 | 1002 "Examine the doc string of the function or variable under point. |
1003 Call `error' if the doc string has problems. If NO-ERROR is | |
20085 | 1004 non-nil, then do not call error, but call `message' instead. |
22195 | 1005 If the doc string passes the test, then check the function for rogue white |
20085 | 1006 space at the end of each line." |
1007 (interactive) | |
1008 (save-excursion | |
1009 (beginning-of-defun) | |
1010 (if (not (looking-at checkdoc-defun-regexp)) | |
1011 ;; I found this more annoying than useful. | |
1012 ;;(if (not no-error) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1013 ;; (message "Cannot check this sexp's doc string.")) |
20085 | 1014 nil |
1015 ;; search drops us after the identifier. The next sexp is either | |
1016 ;; the argument list or the value of the variable. skip it. | |
1017 (goto-char (match-end 0)) | |
1018 (forward-sexp 1) | |
1019 (skip-chars-forward " \n\t") | |
1020 (let* ((checkdoc-spellcheck-documentation-flag | |
46841
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
1021 (car (memq checkdoc-spellcheck-documentation-flag |
99952aa7f2c3
(checkdoc, checkdoc-interactive)
Richard M. Stallman <rms@gnu.org>
parents:
46363
diff
changeset
|
1022 '(defun t)))) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1023 (beg (save-excursion (beginning-of-defun) (point))) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1024 (end (save-excursion (end-of-defun) (point))) |
20085 | 1025 (msg (checkdoc-this-string-valid))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1026 (if msg (if no-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1027 (message (checkdoc-error-text msg)) |
58899
9715276c90ce
(checkdoc-continue, checkdoc-comments, checkdoc-message-text, checkdoc-defun):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57072
diff
changeset
|
1028 (error "%s" (checkdoc-error-text msg))) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1029 (setq msg (checkdoc-message-text-search beg end)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1030 (if msg (if no-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1031 (message (checkdoc-error-text msg)) |
58899
9715276c90ce
(checkdoc-continue, checkdoc-comments, checkdoc-message-text, checkdoc-defun):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57072
diff
changeset
|
1032 (error "%s" (checkdoc-error-text msg))) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1033 (setq msg (checkdoc-rogue-space-check-engine beg end)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1034 (if msg (if no-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1035 (message (checkdoc-error-text msg)) |
58899
9715276c90ce
(checkdoc-continue, checkdoc-comments, checkdoc-message-text, checkdoc-defun):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57072
diff
changeset
|
1036 (error "%s" (checkdoc-error-text msg)))))) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1037 (if (interactive-p) (message "Checkdoc: done.")))))) |
20085 | 1038 |
1039 ;;; Ispell interface for forcing a spell check | |
1040 ;; | |
1041 | |
1042 ;;;###autoload | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1043 (defun checkdoc-ispell (&optional take-notes) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1044 "Check the style and spelling of everything interactively. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1045 Calls `checkdoc' with spell-checking turned on. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1046 Prefix argument TAKE-NOTES is the same as for `checkdoc'" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1047 (interactive) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1048 (let ((checkdoc-spellcheck-documentation-flag t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1049 (call-interactively 'checkdoc nil current-prefix-arg))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1050 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1051 ;;;###autoload |
20085 | 1052 (defun checkdoc-ispell-current-buffer (&optional take-notes) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1053 "Check the style and spelling of the current buffer. |
20085 | 1054 Calls `checkdoc-current-buffer' with spell-checking turned on. |
1055 Prefix argument TAKE-NOTES is the same as for `checkdoc-current-buffer'" | |
1056 (interactive) | |
1057 (let ((checkdoc-spellcheck-documentation-flag t)) | |
1058 (call-interactively 'checkdoc-current-buffer nil current-prefix-arg))) | |
1059 | |
1060 ;;;###autoload | |
1061 (defun checkdoc-ispell-interactive (&optional take-notes) | |
1062 "Check the style and spelling of the current buffer interactively. | |
1063 Calls `checkdoc-interactive' with spell-checking turned on. | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1064 Prefix argument TAKE-NOTES is the same as for `checkdoc-interactive'" |
20085 | 1065 (interactive) |
1066 (let ((checkdoc-spellcheck-documentation-flag t)) | |
1067 (call-interactively 'checkdoc-interactive nil current-prefix-arg))) | |
1068 | |
1069 ;;;###autoload | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1070 (defun checkdoc-ispell-message-interactive (&optional take-notes) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1071 "Check the style and spelling of message text interactively. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1072 Calls `checkdoc-message-interactive' with spell-checking turned on. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1073 Prefix argument TAKE-NOTES is the same as for `checkdoc-message-interactive'" |
20085 | 1074 (interactive) |
1075 (let ((checkdoc-spellcheck-documentation-flag t)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1076 (call-interactively 'checkdoc-message-interactive nil current-prefix-arg))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1077 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1078 ;;;###autoload |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1079 (defun checkdoc-ispell-message-text (&optional take-notes) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1080 "Check the style and spelling of message text interactively. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1081 Calls `checkdoc-message-text' with spell-checking turned on. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1082 Prefix argument TAKE-NOTES is the same as for `checkdoc-message-text'" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1083 (interactive) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1084 (let ((checkdoc-spellcheck-documentation-flag t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1085 (call-interactively 'checkdoc-message-text nil current-prefix-arg))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1086 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1087 ;;;###autoload |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1088 (defun checkdoc-ispell-start (&optional take-notes) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1089 "Check the style and spelling of the current buffer. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1090 Calls `checkdoc-start' with spell-checking turned on. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1091 Prefix argument TAKE-NOTES is the same as for `checkdoc-start'" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1092 (interactive) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1093 (let ((checkdoc-spellcheck-documentation-flag t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1094 (call-interactively 'checkdoc-start nil current-prefix-arg))) |
20085 | 1095 |
1096 ;;;###autoload | |
1097 (defun checkdoc-ispell-continue (&optional take-notes) | |
1098 "Check the style and spelling of the current buffer after point. | |
1099 Calls `checkdoc-continue' with spell-checking turned on. | |
1100 Prefix argument TAKE-NOTES is the same as for `checkdoc-continue'" | |
1101 (interactive) | |
1102 (let ((checkdoc-spellcheck-documentation-flag t)) | |
1103 (call-interactively 'checkdoc-continue nil current-prefix-arg))) | |
1104 | |
1105 ;;;###autoload | |
1106 (defun checkdoc-ispell-comments (&optional take-notes) | |
1107 "Check the style and spelling of the current buffer's comments. | |
1108 Calls `checkdoc-comments' with spell-checking turned on. | |
1109 Prefix argument TAKE-NOTES is the same as for `checkdoc-comments'" | |
1110 (interactive) | |
1111 (let ((checkdoc-spellcheck-documentation-flag t)) | |
1112 (call-interactively 'checkdoc-comments nil current-prefix-arg))) | |
1113 | |
1114 ;;;###autoload | |
1115 (defun checkdoc-ispell-defun (&optional take-notes) | |
22195 | 1116 "Check the style and spelling of the current defun with Ispell. |
20085 | 1117 Calls `checkdoc-defun' with spell-checking turned on. |
1118 Prefix argument TAKE-NOTES is the same as for `checkdoc-defun'" | |
1119 (interactive) | |
1120 (let ((checkdoc-spellcheck-documentation-flag t)) | |
1121 (call-interactively 'checkdoc-defun nil current-prefix-arg))) | |
1122 | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1123 ;;; Error Management |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1124 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1125 ;; Errors returned from checkdoc functions can have various |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1126 ;; features and behaviors, so we need some ways of specifying |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1127 ;; them, and making them easier to use in the wacked-out interfaces |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1128 ;; people are requesting |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1129 (defun checkdoc-create-error (text start end &optional unfixable) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1130 "Used to create the return error text returned from all engines. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1131 TEXT is the descriptive text of the error. START and END define the region |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1132 it is sensible to highlight when describing the problem. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1133 Optional argument UNFIXABLE means that the error has no auto-fix available. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1134 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1135 A list of the form (TEXT START END UNFIXABLE) is returned if we are not |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1136 generating a buffered list of errors." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1137 (if checkdoc-generate-compile-warnings-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1138 (progn (checkdoc-error start text) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1139 nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1140 (list text start end unfixable))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1141 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1142 (defun checkdoc-error-text (err) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1143 "Return the text specified in the checkdoc ERR." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1144 ;; string-p part is for backwards compatibility |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1145 (if (stringp err) err (car err))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1146 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1147 (defun checkdoc-error-start (err) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1148 "Return the start point specified in the checkdoc ERR." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1149 ;; string-p part is for backwards compatibility |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1150 (if (stringp err) nil (nth 1 err))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1151 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1152 (defun checkdoc-error-end (err) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1153 "Return the end point specified in the checkdoc ERR." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1154 ;; string-p part is for backwards compatibility |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1155 (if (stringp err) nil (nth 2 err))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1156 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1157 (defun checkdoc-error-unfixable (err) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1158 "Return the t if we cannot autofix the error specified in the checkdoc ERR." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1159 ;; string-p part is for backwards compatibility |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1160 (if (stringp err) nil (nth 3 err))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1161 |
20085 | 1162 ;;; Minor Mode specification |
1163 ;; | |
1164 | |
33495
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1165 (defvar checkdoc-minor-mode-map |
20085 | 1166 (let ((map (make-sparse-keymap)) |
1167 (pmap (make-sparse-keymap))) | |
1168 ;; Override some bindings | |
1169 (define-key map "\C-\M-x" 'checkdoc-eval-defun) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1170 (define-key map "\C-x`" 'checkdoc-continue) |
20085 | 1171 (if (not (string-match "XEmacs" emacs-version)) |
1172 (define-key map [menu-bar emacs-lisp eval-buffer] | |
1173 'checkdoc-eval-current-buffer)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1174 ;; Add some new bindings under C-c ? |
20085 | 1175 (define-key pmap "x" 'checkdoc-defun) |
1176 (define-key pmap "X" 'checkdoc-ispell-defun) | |
1177 (define-key pmap "`" 'checkdoc-continue) | |
1178 (define-key pmap "~" 'checkdoc-ispell-continue) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1179 (define-key pmap "s" 'checkdoc-start) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1180 (define-key pmap "S" 'checkdoc-ispell-start) |
20085 | 1181 (define-key pmap "d" 'checkdoc) |
1182 (define-key pmap "D" 'checkdoc-ispell) | |
1183 (define-key pmap "b" 'checkdoc-current-buffer) | |
1184 (define-key pmap "B" 'checkdoc-ispell-current-buffer) | |
1185 (define-key pmap "e" 'checkdoc-eval-current-buffer) | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1186 (define-key pmap "m" 'checkdoc-message-text) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1187 (define-key pmap "M" 'checkdoc-ispell-message-text) |
20085 | 1188 (define-key pmap "c" 'checkdoc-comments) |
1189 (define-key pmap "C" 'checkdoc-ispell-comments) | |
1190 (define-key pmap " " 'checkdoc-rogue-spaces) | |
1191 | |
1192 ;; bind our submap into map | |
1193 (define-key map "\C-c?" pmap) | |
1194 map) | |
1195 "Keymap used to override evaluation key-bindings for documentation checking.") | |
1196 | |
49621
45cd70f39238
(checkdoc-minor-keymap): Add obsolescence declaration and remove redundant info
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1197 (defvaralias 'checkdoc-minor-keymap 'checkdoc-minor-mode-map) |
45cd70f39238
(checkdoc-minor-keymap): Add obsolescence declaration and remove redundant info
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1198 (make-obsolete-variable 'checkdoc-minor-keymap |
45cd70f39238
(checkdoc-minor-keymap): Add obsolescence declaration and remove redundant info
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1199 'checkdoc-minor-mode-map) |
33495
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1200 |
20085 | 1201 ;; Add in a menubar with easy-menu |
1202 | |
33495
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1203 (easy-menu-define |
48943
d096b3c93f80
Don't define a name for the minor mode menu.
Richard M. Stallman <rms@gnu.org>
parents:
48403
diff
changeset
|
1204 nil checkdoc-minor-mode-map "Checkdoc Minor Mode Menu" |
33495
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1205 '("CheckDoc" |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1206 ["Interactive Buffer Style Check" checkdoc t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1207 ["Interactive Buffer Style and Spelling Check" checkdoc-ispell t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1208 ["Check Buffer" checkdoc-current-buffer t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1209 ["Check and Spell Buffer" checkdoc-ispell-current-buffer t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1210 "---" |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1211 ["Interactive Style Check" checkdoc-interactive t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1212 ["Interactive Style and Spelling Check" checkdoc-ispell-interactive t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1213 ["Find First Style Error" checkdoc-start t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1214 ["Find First Style or Spelling Error" checkdoc-ispell-start t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1215 ["Next Style Error" checkdoc-continue t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1216 ["Next Style or Spelling Error" checkdoc-ispell-continue t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1217 ["Interactive Message Text Style Check" checkdoc-message-interactive t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1218 ["Interactive Message Text Style and Spelling Check" |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1219 checkdoc-ispell-message-interactive t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1220 ["Check Message Text" checkdoc-message-text t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1221 ["Check and Spell Message Text" checkdoc-ispell-message-text t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1222 ["Check Comment Style" checkdoc-comments buffer-file-name] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1223 ["Check Comment Style and Spelling" checkdoc-ispell-comments |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1224 buffer-file-name] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1225 ["Check for Rogue Spaces" checkdoc-rogue-spaces t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1226 "---" |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1227 ["Check Defun" checkdoc-defun t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1228 ["Check and Spell Defun" checkdoc-ispell-defun t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1229 ["Check and Evaluate Defun" checkdoc-eval-defun t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1230 ["Check and Evaluate Buffer" checkdoc-eval-current-buffer t] |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1231 )) |
20085 | 1232 ;; XEmacs requires some weird stuff to add this menu in a minor mode. |
1233 ;; What is it? | |
1234 | |
1235 ;;;###autoload | |
45258
be966e885dcc
(checkdoc-minor-mode): Define it with define-minor-mode.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
43133
diff
changeset
|
1236 (define-minor-mode checkdoc-minor-mode |
22195 | 1237 "Toggle Checkdoc minor mode, a mode for checking Lisp doc strings. |
1238 With prefix ARG, turn Checkdoc minor mode on iff ARG is positive. | |
20085 | 1239 |
22195 | 1240 In Checkdoc minor mode, the usual bindings for `eval-defun' which is |
55446
2849e4ae725f
(checkdoc-minor-mode): Doc fix.
Andreas Schwab <schwab@suse.de>
parents:
55110
diff
changeset
|
1241 bound to \\<checkdoc-minor-mode-map>\\[checkdoc-eval-defun] and `checkdoc-eval-current-buffer' are overridden to include |
20085 | 1242 checking of documentation strings. |
1243 | |
33495
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1244 \\{checkdoc-minor-mode-map}" |
48403
68ad51bc7338
(checkdoc-minor-mode): Add group.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48195
diff
changeset
|
1245 nil " CDoc" nil |
68ad51bc7338
(checkdoc-minor-mode): Add group.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48195
diff
changeset
|
1246 :group 'checkdoc) |
20085 | 1247 |
1248 ;;; Subst utils | |
1249 ;; | |
1250 (defsubst checkdoc-run-hooks (hookvar &rest args) | |
1251 "Run hooks in HOOKVAR with ARGS." | |
1252 (if (fboundp 'run-hook-with-args-until-success) | |
1253 (apply 'run-hook-with-args-until-success hookvar args) | |
1254 ;; This method was similar to above. We ignore the warning | |
22195 | 1255 ;; since we will use the above for future Emacs versions |
20085 | 1256 (apply 'run-hook-with-args hookvar args))) |
1257 | |
1258 (defsubst checkdoc-create-common-verbs-regexp () | |
1259 "Rebuild the contents of `checkdoc-common-verbs-regexp'." | |
1260 (or checkdoc-common-verbs-regexp | |
1261 (setq checkdoc-common-verbs-regexp | |
1262 (concat "\\<\\(" | |
1263 (mapconcat (lambda (e) (concat (car e))) | |
1264 checkdoc-common-verbs-wrong-voice "\\|") | |
1265 "\\)\\>")))) | |
1266 | |
1267 ;; Profiler says this is not yet faster than just calling assoc | |
1268 ;;(defun checkdoc-word-in-alist-vector (word vector) | |
1269 ;; "Check to see if WORD is in the car of an element of VECTOR. | |
1270 ;;VECTOR must be sorted. The CDR should be a replacement. Since the | |
1271 ;;word list is getting bigger, it is time for a quick bisecting search." | |
1272 ;; (let ((max (length vector)) (min 0) i | |
1273 ;; (found nil) (fw nil)) | |
1274 ;; (setq i (/ max 2)) | |
1275 ;; (while (and (not found) (/= min max)) | |
1276 ;; (setq fw (car (aref vector i))) | |
1277 ;; (cond ((string= word fw) (setq found (cdr (aref vector i)))) | |
1278 ;; ((string< word fw) (setq max i)) | |
1279 ;; (t (setq min i))) | |
1280 ;; (setq i (/ (+ max min) 2)) | |
1281 ;; ) | |
1282 ;; found)) | |
1283 | |
1284 ;;; Checking engines | |
1285 ;; | |
1286 (defun checkdoc-this-string-valid () | |
22195 | 1287 "Return a message string if the current doc string is invalid. |
20085 | 1288 Check for style only, such as the first line always being a complete |
1289 sentence, whitespace restrictions, and making sure there are no | |
1290 hard-coded key-codes such as C-[char] or mouse-[number] in the comment. | |
1291 See the style guide in the Emacs Lisp manual for more details." | |
1292 | |
22195 | 1293 ;; Jump over comments between the last object and the doc string |
20085 | 1294 (while (looking-at "[ \t\n]*;") |
1295 (forward-line 1) | |
1296 (beginning-of-line) | |
1297 (skip-chars-forward " \n\t")) | |
1298 | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1299 (let ((fp (checkdoc-defun-info)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1300 (err nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1301 (setq |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1302 err |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1303 ;; * Every command, function, or variable intended for users to know |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1304 ;; about should have a documentation string. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1305 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1306 ;; * An internal variable or subroutine of a Lisp program might as well |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1307 ;; have a documentation string. In earlier Emacs versions, you could |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1308 ;; save space by using a comment instead of a documentation string, |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1309 ;; but that is no longer the case. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1310 (if (and (not (nth 1 fp)) ; not a variable |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1311 (or (nth 2 fp) ; is interactive |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1312 checkdoc-force-docstrings-flag) ;or we always complain |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1313 (not (checkdoc-char= (following-char) ?\"))) ; no doc string |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1314 ;; Sometimes old code has comments where the documentation should |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1315 ;; be. Let's see if we can find the comment, and offer to turn it |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1316 ;; into documentation for them. |
25697
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
1317 (let ((have-comment nil) |
6060f83b1ffc
(checkdoc-display-status-buffer): Avoid
Dave Love <fx@gnu.org>
parents:
23371
diff
changeset
|
1318 (comment-start ";")) ; in case it's not default |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1319 (condition-case nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1320 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1321 (forward-sexp -1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1322 (forward-sexp 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1323 (skip-chars-forward "\n \t") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1324 (setq have-comment (looking-at comment-start))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1325 (error nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1326 (if have-comment |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1327 (if (or (eq checkdoc-autofix-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1328 'automatic-then-never) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1329 (checkdoc-y-or-n-p |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1330 "Convert comment to documentation? ")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1331 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1332 ;; Our point is at the beginning of the comment! |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1333 ;; Insert a quote, then remove the comment chars. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1334 (insert "\"") |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1335 (let ((docstring-start-point (point))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1336 (while (looking-at comment-start) |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1337 (while (looking-at comment-start) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1338 (delete-char 1)) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1339 (if (looking-at "[ \t]+") |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1340 (delete-region (match-beginning 0) (match-end 0))) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1341 (forward-line 1) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1342 (beginning-of-line) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1343 (skip-chars-forward " \t") |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1344 (if (looking-at comment-start) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1345 (progn |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1346 (beginning-of-line) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1347 (zap-to-char 1 ?\;)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1348 (beginning-of-line) |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1349 (forward-char -1) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1350 (insert "\"") |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1351 (forward-char -1) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1352 ;; quote any double-quote characters in the comment. |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1353 (while (search-backward "\"" docstring-start-point t) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1354 (insert "\\")) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1355 (if (eq checkdoc-autofix-flag 'automatic-then-never) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1356 (setq checkdoc-autofix-flag 'never)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1357 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1358 "You should convert this comment to documentation" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1359 (point) (save-excursion (end-of-line) (point)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1360 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1361 (if (nth 2 fp) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1362 "All interactive functions should have documentation" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1363 "All variables and subroutines might as well have a \ |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1364 documentation string") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1365 (point) (+ (point) 1) t))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1366 (if (and (not err) (looking-at "\"")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1367 (let ((old-syntax-table (syntax-table))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1368 (unwind-protect |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1369 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1370 (set-syntax-table checkdoc-syntax-table) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1371 (checkdoc-this-string-valid-engine fp)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1372 (set-syntax-table old-syntax-table))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1373 err))) |
20085 | 1374 |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1375 (defun checkdoc-this-string-valid-engine (fp) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1376 "Return an error list or string if the current doc string is invalid. |
20085 | 1377 Depends on `checkdoc-this-string-valid' to reset the syntax table so that |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1378 regexp short cuts work. FP is the function defun information." |
20085 | 1379 (let ((case-fold-search nil) |
1380 ;; Use a marker so if an early check modifies the text, | |
1381 ;; we won't accidentally loose our place. This could cause | |
22195 | 1382 ;; end-of doc string whitespace to also delete the " char. |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1383 (s (point)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1384 (e (if (looking-at "\"") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1385 (save-excursion (forward-sexp 1) (point-marker)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1386 (point)))) |
20085 | 1387 (or |
1388 ;; * *Do not* indent subsequent lines of a documentation string so that | |
1389 ;; the text is lined up in the source code with the text of the first | |
1390 ;; line. This looks nice in the source code, but looks bizarre when | |
1391 ;; users view the documentation. Remember that the indentation | |
1392 ;; before the starting double-quote is not part of the string! | |
1393 (save-excursion | |
1394 (forward-line 1) | |
1395 (beginning-of-line) | |
1396 (if (and (< (point) e) | |
1397 (looking-at "\\([ \t]+\\)[^ \t\n]")) | |
1398 (if (checkdoc-autofix-ask-replace (match-beginning 1) | |
1399 (match-end 1) | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1400 "Remove this whitespace? " |
20085 | 1401 "") |
1402 nil | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1403 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1404 "Second line should not have indentation" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1405 (match-beginning 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1406 (match-end 1))))) |
39319
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1407 ;; * Check for '(' in column 0. |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1408 (save-excursion |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1409 (when (re-search-forward "^(" e t) |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1410 (if (checkdoc-autofix-ask-replace (match-beginning 0) |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1411 (match-end 0) |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1412 "Escape this '('? " |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1413 "\\(") |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1414 nil |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1415 (checkdoc-create-error |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1416 "Open parenthesis in column 0 should be escaped" |
bce0864bc830
(checkdoc-this-string-valid-engine):
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
1417 (match-beginning 0) (match-end 0))))) |
20085 | 1418 ;; * Do not start or end a documentation string with whitespace. |
1419 (let (start end) | |
1420 (if (or (if (looking-at "\"\\([ \t\n]+\\)") | |
1421 (setq start (match-beginning 1) | |
1422 end (match-end 1))) | |
1423 (save-excursion | |
1424 (forward-sexp 1) | |
1425 (forward-char -1) | |
1426 (if (/= (skip-chars-backward " \t\n") 0) | |
1427 (setq start (point) | |
1428 end (1- e))))) | |
1429 (if (checkdoc-autofix-ask-replace | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1430 start end "Remove this whitespace? " "") |
20085 | 1431 nil |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1432 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1433 "Documentation strings should not start or end with whitespace" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1434 start end)))) |
20085 | 1435 ;; * The first line of the documentation string should consist of one |
1436 ;; or two complete sentences that stand on their own as a summary. | |
1437 ;; `M-x apropos' displays just the first line, and if it doesn't | |
1438 ;; stand on its own, the result looks bad. In particular, start the | |
1439 ;; first line with a capital letter and end with a period. | |
1440 (save-excursion | |
1441 (end-of-line) | |
1442 (skip-chars-backward " \t\n") | |
1443 (if (> (point) e) (goto-char e)) ;of the form (defun n () "doc" nil) | |
1444 (forward-char -1) | |
1445 (cond | |
1446 ((and (checkdoc-char= (following-char) ?\") | |
1447 ;; A backslashed double quote at the end of a sentence | |
1448 (not (checkdoc-char= (preceding-char) ?\\))) | |
1449 ;; We might have to add a period in this case | |
1450 (forward-char -1) | |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1451 (if (looking-at "[.!?]") |
20085 | 1452 nil |
1453 (forward-char 1) | |
1454 (if (checkdoc-autofix-ask-replace | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1455 (point) (1+ (point)) "Add period to sentence? " |
20085 | 1456 ".\"" t) |
1457 nil | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1458 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1459 "First sentence should end with punctuation" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1460 (point) (1+ (point)))))) |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1461 ((looking-at "[\\!?;:.)]") |
20085 | 1462 ;; These are ok |
1463 nil) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1464 ((and checkdoc-permit-comma-termination-flag (looking-at ",")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1465 nil) |
20085 | 1466 (t |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1467 ;; If it is not a complete sentence, let's see if we can |
20085 | 1468 ;; predict a clever way to make it one. |
1469 (let ((msg "First line is not a complete sentence") | |
1470 (e (point))) | |
1471 (beginning-of-line) | |
1472 (if (re-search-forward "\\. +" e t) | |
1473 ;; Here we have found a complete sentence, but no break. | |
1474 (if (checkdoc-autofix-ask-replace | |
1475 (1+ (match-beginning 0)) (match-end 0) | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1476 "First line not a complete sentence. Add RET here? " |
20085 | 1477 "\n" t) |
1478 (let (l1 l2) | |
1479 (forward-line 1) | |
1480 (end-of-line) | |
1481 (setq l1 (current-column) | |
1482 l2 (save-excursion | |
1483 (forward-line 1) | |
1484 (end-of-line) | |
1485 (current-column))) | |
1486 (if (> (+ l1 l2 1) 80) | |
22195 | 1487 (setq msg "Incomplete auto-fix; doc string \ |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1488 may require more formatting") |
20085 | 1489 ;; We can merge these lines! Replace this CR |
1490 ;; with a space. | |
1491 (delete-char 1) (insert " ") | |
1492 (setq msg nil)))) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1493 ;; Let's see if there is enough room to draw the next |
20085 | 1494 ;; line's sentence up here. I often get hit w/ |
1495 ;; auto-fill moving my words around. | |
1496 (let ((numc (progn (end-of-line) (- 80 (current-column)))) | |
1497 (p (point))) | |
1498 (forward-line 1) | |
1499 (beginning-of-line) | |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1500 (if (and (re-search-forward "[.!?:\"]\\([ \t\n]+\\|\"\\)" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1501 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1502 (end-of-line) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1503 (point)) |
20085 | 1504 t) |
1505 (< (current-column) numc)) | |
1506 (if (checkdoc-autofix-ask-replace | |
1507 p (1+ p) | |
22195 | 1508 "1st line not a complete sentence. Join these lines? " |
20085 | 1509 " " t) |
1510 (progn | |
1511 ;; They said yes. We have more fill work to do... | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1512 (goto-char (match-beginning 1)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1513 (delete-region (point) (match-end 1)) |
20085 | 1514 (insert "\n") |
1515 (setq msg nil)))))) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1516 (if msg |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1517 (checkdoc-create-error msg s (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1518 (goto-char s) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1519 (end-of-line) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1520 (point))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1521 nil) )))) |
20085 | 1522 ;; Continuation of above. Make sure our sentence is capitalized. |
1523 (save-excursion | |
1524 (skip-chars-forward "\"\\*") | |
1525 (if (looking-at "[a-z]") | |
1526 (if (checkdoc-autofix-ask-replace | |
1527 (match-beginning 0) (match-end 0) | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1528 "Capitalize your sentence? " (upcase (match-string 0)) |
20085 | 1529 t) |
1530 nil | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1531 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1532 "First line should be capitalized" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1533 (match-beginning 0) (match-end 0))) |
20085 | 1534 nil)) |
1535 ;; * Don't write key sequences directly in documentation strings. | |
1536 ;; Instead, use the `\\[...]' construct to stand for them. | |
1537 (save-excursion | |
1538 (let ((f nil) (m nil) (start (point)) | |
21181 | 1539 (re "[^`A-Za-z0-9_]\\([CMA]-[a-zA-Z]\\|\\(\\([CMA]-\\)?\ |
20085 | 1540 mouse-[0-3]\\)\\)\\>")) |
1541 ;; Find the first key sequence not in a sample | |
1542 (while (and (not f) (setq m (re-search-forward re e t))) | |
1543 (setq f (not (checkdoc-in-sample-code-p start e)))) | |
1544 (if m | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1545 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1546 (concat |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1547 "Keycode " (match-string 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1548 " embedded in doc string. Use \\\\<keymap> & \\\\[function] " |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1549 "instead") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1550 (match-beginning 1) (match-end 1) t)))) |
20085 | 1551 ;; It is not practical to use `\\[...]' very many times, because |
1552 ;; display of the documentation string will become slow. So use this | |
1553 ;; to describe the most important commands in your major mode, and | |
1554 ;; then use `\\{...}' to display the rest of the mode's keymap. | |
1555 (save-excursion | |
57072
9dd4195f1c06
(checkdoc-this-string-valid-engine):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55446
diff
changeset
|
1556 (if (and (re-search-forward "\\\\\\\\\\[\\w+" e t |
9dd4195f1c06
(checkdoc-this-string-valid-engine):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55446
diff
changeset
|
1557 (1+ checkdoc-max-keyref-before-warn)) |
9dd4195f1c06
(checkdoc-this-string-valid-engine):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55446
diff
changeset
|
1558 (not (re-search-forward "\\\\\\\\{\\w+}" e t))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1559 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1560 "Too many occurrences of \\[function]. Use \\{keymap} instead" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1561 s (marker-position e)))) |
22195 | 1562 ;; Ambiguous quoted symbol. When a symbol is both bound and fbound, |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1563 ;; and is referred to in documentation, it should be prefixed with |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1564 ;; something to disambiguate it. This check must be before the |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1565 ;; 80 column check because it will probably break that. |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1566 (save-excursion |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1567 (let ((case-fold-search t) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1568 (ret nil) mb me) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1569 (while (and (re-search-forward "`\\(\\sw\\(\\sw\\|\\s_\\)+\\)'" e t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1570 (not ret)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1571 (let* ((ms1 (match-string 1)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1572 (sym (intern-soft ms1))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1573 (setq mb (match-beginning 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1574 me (match-end 1)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1575 (if (and sym (boundp sym) (fboundp sym) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1576 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1577 (goto-char mb) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1578 (forward-word -1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1579 (not (looking-at |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1580 "variable\\|option\\|function\\|command\\|symbol")))) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1581 (if (checkdoc-autofix-ask-replace |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1582 mb me "Prefix this ambiguous symbol? " ms1 t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1583 ;; We didn't actually replace anything. Here we find |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1584 ;; out what special word form they wish to use as |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1585 ;; a prefix. |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1586 (let ((disambiguate |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1587 (completing-read |
65680
ed770a0a7846
2005-09-24 Emilio C. Lopes <eclig@gmx.net>
Romain Francoise <romain@orebokech.com>
parents:
65191
diff
changeset
|
1588 "Disambiguating Keyword (default variable): " |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1589 '(("function") ("command") ("variable") |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1590 ("option") ("symbol")) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1591 nil t nil nil "variable"))) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1592 (goto-char (1- mb)) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1593 (insert disambiguate " ") |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1594 (forward-word 1)) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1595 (setq ret |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1596 (format "Disambiguate %s by preceding w/ \ |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1597 function,command,variable,option or symbol." ms1)))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1598 (if ret |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1599 (checkdoc-create-error ret mb me) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1600 nil))) |
20085 | 1601 ;; * Format the documentation string so that it fits in an |
1602 ;; Emacs window on an 80-column screen. It is a good idea | |
1603 ;; for most lines to be no wider than 60 characters. The | |
1604 ;; first line can be wider if necessary to fit the | |
1605 ;; information that ought to be there. | |
1606 (save-excursion | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1607 (let ((start (point)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1608 (eol nil)) |
20085 | 1609 (while (and (< (point) e) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1610 (or (progn (end-of-line) (setq eol (point)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1611 (< (current-column) 80)) |
20085 | 1612 (progn (beginning-of-line) |
1613 (re-search-forward "\\\\\\\\[[<{]" | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1614 eol t)) |
20085 | 1615 (checkdoc-in-sample-code-p start e))) |
1616 (forward-line 1)) | |
1617 (end-of-line) | |
1618 (if (and (< (point) e) (> (current-column) 80)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1619 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1620 "Some lines are over 80 columns wide" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1621 s (save-excursion (goto-char s) (end-of-line) (point)) )))) |
20085 | 1622 ;; Here we deviate to tests based on a variable or function. |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1623 ;; We must do this before checking for symbols in quotes because there |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1624 ;; is a chance that just such a symbol might really be an argument. |
20085 | 1625 (cond ((eq (nth 1 fp) t) |
1626 ;; This is if we are in a variable | |
1627 (or | |
1628 ;; * The documentation string for a variable that is a | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1629 ;; yes-or-no flag should start with words such as Non-nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1630 ;; means..., to make it clear that all non-`nil' values are |
20085 | 1631 ;; equivalent and indicate explicitly what `nil' and non-`nil' |
1632 ;; mean. | |
1633 ;; * If a user option variable records a true-or-false | |
1634 ;; condition, give it a name that ends in `-flag'. | |
1635 | |
1636 ;; If the variable has -flag in the name, make sure | |
1637 (if (and (string-match "-flag$" (car fp)) | |
1638 (not (looking-at "\"\\*?Non-nil\\s-+means\\s-+"))) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1639 (checkdoc-create-error |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
1640 "Flag variable doc strings should usually start: Non-nil means" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1641 s (marker-position e) t)) |
22195 | 1642 ;; If the doc string starts with "Non-nil means" |
20085 | 1643 (if (and (looking-at "\"\\*?Non-nil\\s-+means\\s-+") |
1644 (not (string-match "-flag$" (car fp)))) | |
43133
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1645 (let ((newname |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1646 (if (string-match "-p$" (car fp)) |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1647 (concat (substring (car fp) 0 -2) "-flag") |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1648 (concat (car fp) "-flag")))) |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1649 (if (checkdoc-y-or-n-p |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1650 (format |
45897
19b72b42b514
(checkdoc-this-string-valid-engine): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents:
45258
diff
changeset
|
1651 "Rename to %s and Query-Replace all occurrences? " |
43133
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1652 newname)) |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1653 (progn |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1654 (beginning-of-defun) |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1655 (query-replace-regexp |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1656 (concat "\\<" (regexp-quote (car fp)) "\\>") |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1657 newname)) |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1658 (checkdoc-create-error |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1659 "Flag variable names should normally end in `-flag'" s |
c929176c272b
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1660 (marker-position e))))) |
20085 | 1661 ;; Done with variables |
1662 )) | |
1663 (t | |
1664 ;; This if we are in a function definition | |
1665 (or | |
1666 ;; * When a function's documentation string mentions the value | |
1667 ;; of an argument of the function, use the argument name in | |
1668 ;; capital letters as if it were a name for that value. Thus, | |
1669 ;; the documentation string of the function `/' refers to its | |
1670 ;; second argument as `DIVISOR', because the actual argument | |
1671 ;; name is `divisor'. | |
1672 | |
1673 ;; Addendum: Make sure they appear in the doc in the same | |
1674 ;; order that they are found in the arg list. | |
1675 (let ((args (cdr (cdr (cdr (cdr fp))))) | |
1676 (last-pos 0) | |
1677 (found 1) | |
1678 (order (and (nth 3 fp) (car (nth 3 fp)))) | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1679 (nocheck (append '("&optional" "&rest") (nth 3 fp))) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1680 (inopts nil)) |
20085 | 1681 (while (and args found (> found last-pos)) |
1682 (if (member (car args) nocheck) | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1683 (setq args (cdr args) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1684 inopts t) |
20085 | 1685 (setq last-pos found |
1686 found (save-excursion | |
1687 (re-search-forward | |
1688 (concat "\\<" (upcase (car args)) | |
1689 ;; Require whitespace OR | |
1690 ;; ITEMth<space> OR | |
1691 ;; ITEMs<space> | |
40291
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
1692 "\\(\\>\\|th\\>\\|s\\>\\|[.,;:]\\)") |
20085 | 1693 e t))) |
1694 (if (not found) | |
1695 (let ((case-fold-search t)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1696 ;; If the symbol was not found, let's see if we |
20085 | 1697 ;; can find it with a different capitalization |
1698 ;; and see if the user wants to capitalize it. | |
1699 (if (save-excursion | |
1700 (re-search-forward | |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1701 (concat "\\<\\(" (car args) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1702 ;; Require whitespace OR |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1703 ;; ITEMth<space> OR |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1704 ;; ITEMs<space> |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1705 "\\)\\(\\>\\|th\\>\\|s\\>\\)") |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
1706 e t)) |
20085 | 1707 (if (checkdoc-autofix-ask-replace |
1708 (match-beginning 1) (match-end 1) | |
1709 (format | |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
1710 "If this is the argument `%s', it should appear as %s. Fix? " |
20085 | 1711 (car args) (upcase (car args))) |
1712 (upcase (car args)) t) | |
1713 (setq found (match-beginning 1)))))) | |
1714 (if found (setq args (cdr args))))) | |
1715 (if (not found) | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1716 ;; It wasn't found at all! Offer to attach this new symbol |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1717 ;; to the end of the documentation string. |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1718 (if (checkdoc-y-or-n-p |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1719 (format |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1720 "Add %s documentation to end of doc string? " |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1721 (upcase (car args)))) |
22195 | 1722 ;; Now do some magic and invent a doc string. |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1723 (save-excursion |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1724 (goto-char e) (forward-char -1) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1725 (insert "\n" |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1726 (if inopts "Optional a" "A") |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1727 "rgument " (upcase (car args)) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1728 " ") |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1729 (insert (read-string "Describe: ")) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1730 (if (not (save-excursion (forward-char -1) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1731 (looking-at "[.?!]"))) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1732 (insert ".")) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
1733 nil) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1734 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1735 (format |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
1736 "Argument `%s' should appear (as %s) in the doc string" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1737 (car args) (upcase (car args))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1738 s (marker-position e))) |
20085 | 1739 (if (or (and order (eq order 'yes)) |
1740 (and (not order) checkdoc-arguments-in-order-flag)) | |
1741 (if (< found last-pos) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1742 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1743 "Arguments occur in the doc string out of order" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1744 s (marker-position e) t))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1745 ;; * For consistency, phrase the verb in the first sentence of a |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
1746 ;; documentation string for functions as an imperative. |
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
1747 ;; For instance, use `Return the cons of A and |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1748 ;; B.' in preference to `Returns the cons of A and B.' |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1749 ;; Usually it looks good to do likewise for the rest of the |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1750 ;; first paragraph. Subsequent paragraphs usually look better |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1751 ;; if they have proper subjects. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1752 ;; |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1753 ;; This is the least important of the above tests. Make sure |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1754 ;; it occurs last. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1755 (and checkdoc-verb-check-experimental-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1756 (save-excursion |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
1757 ;; Maybe rebuild the monster-regexp |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1758 (checkdoc-create-common-verbs-regexp) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1759 (let ((lim (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1760 (end-of-line) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1761 ;; check string-continuation |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1762 (if (checkdoc-char= (preceding-char) ?\\) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1763 (progn (forward-line 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1764 (end-of-line))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1765 (point))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1766 (rs nil) replace original (case-fold-search t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1767 (while (and (not rs) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1768 (re-search-forward |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1769 checkdoc-common-verbs-regexp |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1770 lim t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1771 (setq original (buffer-substring-no-properties |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1772 (match-beginning 1) (match-end 1)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1773 rs (assoc (downcase original) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1774 checkdoc-common-verbs-wrong-voice)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1775 (if (not rs) (error "Verb voice alist corrupted")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1776 (setq replace (let ((case-fold-search nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1777 (save-match-data |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1778 (if (string-match "^[A-Z]" original) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1779 (capitalize (cdr rs)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1780 (cdr rs))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1781 (if (checkdoc-autofix-ask-replace |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1782 (match-beginning 1) (match-end 1) |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
1783 (format "Use the imperative for \"%s\". \ |
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
1784 Replace with \"%s\"? " original replace) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1785 replace t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1786 (setq rs nil))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1787 (if rs |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1788 ;; there was a match, but no replace |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1789 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1790 (format |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
1791 "Probably \"%s\" should be imperative \"%s\"" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1792 original replace) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1793 (match-beginning 1) (match-end 1)))))) |
20085 | 1794 ;; Done with functions |
1795 ))) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1796 ;;* When a documentation string refers to a Lisp symbol, write it as |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1797 ;; it would be printed (which usually means in lower case), with |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1798 ;; single-quotes around it. For example: `lambda'. There are two |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1799 ;; exceptions: write t and nil without single-quotes. (In this |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1800 ;; manual, we normally do use single-quotes for those symbols.) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1801 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1802 (let ((found nil) (start (point)) (msg nil) (ms nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1803 (while (and (not msg) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1804 (re-search-forward |
33495
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1805 "[^-([`':a-zA-Z]\\(\\w+[:-]\\(\\w\\|\\s_\\)+\\)[^]']" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1806 e t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1807 (setq ms (match-string 1)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1808 (save-match-data |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1809 ;; A . is a \s_ char, so we must remove periods from |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1810 ;; sentences more carefully. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1811 (if (string-match "\\.$" ms) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1812 (setq ms (substring ms 0 (1- (length ms)))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1813 (if (and (not (checkdoc-in-sample-code-p start e)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1814 (not (checkdoc-in-example-string-p start e)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1815 (not (member ms checkdoc-symbol-words)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1816 (setq found (intern-soft ms)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1817 (or (boundp found) (fboundp found))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1818 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1819 (setq msg (format "Add quotes around Lisp symbol `%s'? " |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1820 ms)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1821 (if (checkdoc-autofix-ask-replace |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1822 (match-beginning 1) (+ (match-beginning 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1823 (length ms)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1824 msg (concat "`" ms "'") t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1825 (setq msg nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1826 (setq msg |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1827 (format "Lisp symbol `%s' should appear in quotes" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1828 ms)))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1829 (if msg |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1830 (checkdoc-create-error msg (match-beginning 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1831 (+ (match-beginning 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1832 (length ms))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1833 nil))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1834 ;; t and nil case |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1835 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1836 (if (re-search-forward "\\(`\\(t\\|nil\\)'\\)" e t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1837 (if (checkdoc-autofix-ask-replace |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1838 (match-beginning 1) (match-end 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1839 (format "%s should not appear in quotes. Remove? " |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1840 (match-string 2)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1841 (match-string 2) t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1842 nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1843 (checkdoc-create-error |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
1844 "Symbols t and nil should not appear in `...' quotes" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1845 (match-beginning 1) (match-end 1))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1846 ;; Here is some basic sentence formatting |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1847 (checkdoc-sentencespace-region-engine (point) e) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1848 ;; Here are common proper nouns that should always appear capitalized. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1849 (checkdoc-proper-noun-region-engine (point) e) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1850 ;; Make sure the doc string has correctly spelled English words |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1851 ;; in it. This function is extracted due to its complexity, |
22195 | 1852 ;; and reliance on the Ispell program. |
20085 | 1853 (checkdoc-ispell-docstring-engine e) |
1854 ;; User supplied checks | |
1855 (save-excursion (checkdoc-run-hooks 'checkdoc-style-hooks fp e)) | |
1856 ;; Done! | |
1857 ))) | |
1858 | |
1859 (defun checkdoc-defun-info nil | |
1860 "Return a list of details about the current sexp. | |
1861 It is a list of the form: | |
22195 | 1862 (NAME VARIABLE INTERACTIVE NODOCPARAMS PARAMETERS ...) |
20085 | 1863 where NAME is the name, VARIABLE is t if this is a `defvar', |
1864 INTERACTIVE is nil if this is not an interactive function, otherwise | |
1865 it is the position of the `interactive' call, and PARAMETERS is a | |
1866 string which is the name of each variable in the function's argument | |
1867 list. The NODOCPARAMS is a sublist of parameters specified by a checkdoc | |
1868 comment for a given defun. If the first element is not a string, then | |
1869 the token checkdoc-order: <TOKEN> exists, and TOKEN is a symbol read | |
1870 from the comment." | |
1871 (save-excursion | |
1872 (beginning-of-defun) | |
1873 (let ((defun (looking-at "(def\\(un\\|macro\\|subst\\|advice\\)")) | |
1874 (is-advice (looking-at "(defadvice")) | |
1875 (lst nil) | |
1876 (ret nil) | |
1877 (oo (make-vector 3 0))) ;substitute obarray for `read' | |
1878 (forward-char 1) | |
1879 (forward-sexp 1) | |
1880 (skip-chars-forward " \n\t") | |
1881 (setq ret | |
1882 (list (buffer-substring-no-properties | |
1883 (point) (progn (forward-sexp 1) (point))))) | |
1884 (if (not defun) | |
1885 (setq ret (cons t ret)) | |
1886 ;; The variable spot | |
1887 (setq ret (cons nil ret)) | |
1888 ;; Interactive | |
1889 (save-excursion | |
1890 (setq ret (cons | |
33495
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
1891 (re-search-forward "^\\s-*(interactive" |
20085 | 1892 (save-excursion (end-of-defun) (point)) |
1893 t) | |
1894 ret))) | |
1895 (skip-chars-forward " \t\n") | |
1896 (let ((bss (buffer-substring (point) (save-excursion (forward-sexp 1) | |
1897 (point)))) | |
1898 ;; Overload th main obarray so read doesn't intern the | |
1899 ;; local symbols of the function we are checking. | |
1900 ;; Without this we end up cluttering the symbol space w/ | |
1901 ;; useless symbols. | |
1902 (obarray oo)) | |
1903 ;; Ok, check for checkdoc parameter comment here | |
1904 (save-excursion | |
1905 (setq ret | |
1906 (cons | |
1907 (let ((sl1 nil)) | |
1908 (if (re-search-forward ";\\s-+checkdoc-order:\\s-+" | |
1909 (save-excursion (end-of-defun) | |
1910 (point)) | |
1911 t) | |
1912 (setq sl1 (list (cond ((looking-at "nil") 'no) | |
1913 ((looking-at "t") 'yes))))) | |
1914 (if (re-search-forward ";\\s-+checkdoc-params:\\s-+" | |
1915 (save-excursion (end-of-defun) | |
1916 (point)) | |
1917 t) | |
1918 (let ((sl nil)) | |
1919 (goto-char (match-end 0)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1920 (condition-case nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1921 (setq lst (read (current-buffer))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1922 (error (setq lst nil))) ; error in text |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1923 (if (not (listp lst)) ; not a list of args |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1924 (setq lst (list lst))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1925 (if (and lst (not (symbolp (car lst)))) ;weird arg |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1926 (setq lst nil)) |
20085 | 1927 (while lst |
1928 (setq sl (cons (symbol-name (car lst)) sl) | |
1929 lst (cdr lst))) | |
1930 (setq sl1 (append sl1 sl)))) | |
1931 sl1) | |
1932 ret))) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1933 ;; Read the list of parameters, but do not put the symbols in |
20085 | 1934 ;; the standard obarray. |
1935 (setq lst (read bss))) | |
1936 ;; This is because read will intern nil if it doesn't into the | |
1937 ;; new obarray. | |
1938 (if (not (listp lst)) (setq lst nil)) | |
1939 (if is-advice nil | |
1940 (while lst | |
1941 (setq ret (cons (symbol-name (car lst)) ret) | |
1942 lst (cdr lst))))) | |
1943 (nreverse ret)))) | |
1944 | |
1945 (defun checkdoc-in-sample-code-p (start limit) | |
22195 | 1946 "Return non-nil if the current point is in a code fragment. |
20085 | 1947 A code fragment is identified by an open parenthesis followed by a |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1948 symbol which is a valid function or a word in all CAPS, or a parenthesis |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1949 that is quoted with the ' character. Only the region from START to LIMIT |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1950 is is allowed while searching for the bounding parenthesis." |
20085 | 1951 (save-match-data |
1952 (save-restriction | |
1953 (narrow-to-region start limit) | |
1954 (save-excursion | |
1955 (and (condition-case nil (progn (up-list 1) t) (error nil)) | |
1956 (condition-case nil (progn (forward-list -1) t) (error nil)) | |
1957 (or (save-excursion (forward-char -1) (looking-at "'(")) | |
1958 (and (looking-at "(\\(\\(\\w\\|[-:_]\\)+\\)[ \t\n;]") | |
1959 (let ((ms (buffer-substring-no-properties | |
1960 (match-beginning 1) (match-end 1)))) | |
1961 ;; if this string is function bound, we are in | |
1962 ;; sample code. If it has a - or : character in | |
1963 ;; the name, then it is probably supposed to be bound | |
1964 ;; but isn't yet. | |
1965 (or (fboundp (intern-soft ms)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1966 (let ((case-fold-search nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1967 (string-match "^[A-Z-]+$" ms)) |
20085 | 1968 (string-match "\\w[-:_]+\\w" ms)))))))))) |
1969 | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1970 (defun checkdoc-in-example-string-p (start limit) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1971 "Return non-nil if the current point is in an \"example string\". |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1972 This string is identified by the characters \\\" surrounding the text. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1973 The text checked is between START and LIMIT." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1974 (save-match-data |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1975 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1976 (let ((p (point)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1977 (c 0)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1978 (goto-char start) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1979 (while (and (< (point) p) (re-search-forward "\\\\\"" limit t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1980 (setq c (1+ c))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1981 (and (< 0 c) (= (% c 2) 0)))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1982 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1983 (defun checkdoc-proper-noun-region-engine (begin end) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1984 "Check all text between BEGIN and END for lower case proper nouns. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1985 These are Emacs centric proper nouns which should be capitalized for |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1986 consistency. Return an error list if any are not fixed, but |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1987 internally skip over no answers. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1988 If the offending word is in a piece of quoted text, then it is skipped." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1989 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1990 (let ((case-fold-search nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1991 (errtxt nil) bb be |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1992 (old-syntax-table (syntax-table))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1993 (unwind-protect |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1994 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1995 (set-syntax-table checkdoc-syntax-table) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1996 (goto-char begin) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1997 (while (re-search-forward checkdoc-proper-noun-regexp end t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1998 (let ((text (match-string 1)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
1999 (b (match-beginning 1)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2000 (e (match-end 1))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2001 (if (and (not (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2002 (goto-char b) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2003 (forward-char -1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2004 (looking-at "`\\|\"\\|\\.\\|\\\\"))) |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2005 ;; surrounded by /, as in a URL or filename: /emacs/ |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2006 (not (and (= ?/ (char-after e)) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2007 (= ?/ (char-before b)))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2008 (not (checkdoc-in-example-string-p begin end))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2009 (if (checkdoc-autofix-ask-replace |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2010 b e (format "Text %s should be capitalized. Fix? " |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2011 text) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2012 (capitalize text) t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2013 nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2014 (if errtxt |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2015 ;; If there is already an error, then generate |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2016 ;; the warning output if applicable |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2017 (if checkdoc-generate-compile-warnings-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2018 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2019 (format |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2020 "Name %s should appear capitalized as %s" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2021 text (capitalize text)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2022 b e)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2023 (setq errtxt |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2024 (format |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2025 "Name %s should appear capitalized as %s" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2026 text (capitalize text)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2027 bb b be e))))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2028 (set-syntax-table old-syntax-table)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2029 (if errtxt (checkdoc-create-error errtxt bb be))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2030 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2031 (defun checkdoc-sentencespace-region-engine (begin end) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2032 "Make sure all sentences have double spaces between BEGIN and END." |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2033 (if sentence-end-double-space |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2034 (save-excursion |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2035 (let ((case-fold-search nil) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2036 (errtxt nil) bb be |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2037 (old-syntax-table (syntax-table))) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2038 (unwind-protect |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2039 (progn |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2040 (set-syntax-table checkdoc-syntax-table) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2041 (goto-char begin) |
40291
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2042 (while (re-search-forward "[^ .0-9]\\(\\. \\)[^ \n]" end t) |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2043 (let ((b (match-beginning 1)) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2044 (e (match-end 1))) |
40291
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2045 (unless (or (checkdoc-in-sample-code-p begin end) |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2046 (checkdoc-in-example-string-p begin end) |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2047 (save-excursion |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2048 (goto-char b) |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2049 (condition-case nil |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2050 (progn |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2051 (forward-sexp -1) |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2052 ;; piece of an abbreviation |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2053 (looking-at |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2054 "\\([a-z]\\|[iI]\\.?e\\|[eE]\\.?g\\)\\.")) |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2055 (error t)))) |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2056 (if (checkdoc-autofix-ask-replace |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2057 b e |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2058 "There should be two spaces after a period. Fix? " |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2059 ". ") |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2060 nil |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2061 (if errtxt |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2062 ;; If there is already an error, then generate |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2063 ;; the warning output if applicable |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2064 (if checkdoc-generate-compile-warnings-flag |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2065 (checkdoc-create-error |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2066 "There should be two spaces after a period" |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2067 b e)) |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2068 (setq errtxt |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2069 "There should be two spaces after a period" |
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2070 bb b be e))))))) |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2071 (set-syntax-table old-syntax-table)) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2072 (if errtxt (checkdoc-create-error errtxt bb be)))))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2073 |
20085 | 2074 ;;; Ispell engine |
2075 ;; | |
2076 (eval-when-compile (require 'ispell)) | |
2077 | |
2078 (defun checkdoc-ispell-init () | |
22195 | 2079 "Initialize Ispell process (default version) with Lisp words. |
20085 | 2080 The words used are from `checkdoc-ispell-lisp-words'. If `ispell' |
2081 cannot be loaded, then set `checkdoc-spellcheck-documentation-flag' to | |
2082 nil." | |
2083 (require 'ispell) | |
2084 (if (not (symbol-value 'ispell-process)) ;Silence byteCompiler | |
2085 (condition-case nil | |
2086 (progn | |
2087 (ispell-buffer-local-words) | |
22195 | 2088 ;; This code copied in part from ispell.el Emacs 19.34 |
20085 | 2089 (let ((w checkdoc-ispell-lisp-words)) |
2090 (while w | |
2091 (process-send-string | |
2092 ;; Silence byte compiler | |
2093 (symbol-value 'ispell-process) | |
2094 (concat "@" (car w) "\n")) | |
2095 (setq w (cdr w))))) | |
2096 (error (setq checkdoc-spellcheck-documentation-flag nil))))) | |
2097 | |
2098 (defun checkdoc-ispell-docstring-engine (end) | |
22195 | 2099 "Run the Ispell tools on the doc string between point and END. |
2100 Since Ispell isn't Lisp-smart, we must pre-process the doc string | |
2101 before using the Ispell engine on it." | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2102 (if (or (not checkdoc-spellcheck-documentation-flag) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2103 ;; If the user wants no questions or fixing, then we must |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2104 ;; disable spell checking as not useful. |
50330
e3d87b72b575
(checkdoc-display-status-buffer): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49621
diff
changeset
|
2105 (not checkdoc-autofix-flag) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2106 (eq checkdoc-autofix-flag 'never)) |
20085 | 2107 nil |
2108 (checkdoc-ispell-init) | |
2109 (save-excursion | |
2110 (skip-chars-forward "^a-zA-Z") | |
2111 (let ((word nil) (sym nil) (case-fold-search nil) (err nil)) | |
2112 (while (and (not err) (< (point) end)) | |
2113 (if (save-excursion (forward-char -1) (looking-at "[('`]")) | |
2114 ;; Skip lists describing meta-syntax, or bound variables | |
2115 (forward-sexp 1) | |
2116 (setq word (buffer-substring-no-properties | |
2117 (point) (progn | |
2118 (skip-chars-forward "a-zA-Z-") | |
2119 (point))) | |
2120 sym (intern-soft word)) | |
2121 (if (and sym (or (boundp sym) (fboundp sym))) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2122 ;; This is probably repetitive in most cases, but not always. |
20085 | 2123 nil |
2124 ;; Find out how we spell-check this word. | |
2125 (if (or | |
20603
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
2126 ;; All caps w/ option th, or s tacked on the end |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2127 ;; for pluralization or numberthness. |
20603
24dda0afd915
Added some more comments in the commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
20085
diff
changeset
|
2128 (string-match "^[A-Z][A-Z]+\\(s\\|th\\)?$" word) |
20085 | 2129 (looking-at "}") ; a keymap expression |
2130 ) | |
2131 nil | |
2132 (save-excursion | |
2133 (if (not (eq checkdoc-autofix-flag 'never)) | |
2134 (let ((lk last-input-event)) | |
2135 (ispell-word nil t) | |
2136 (if (not (equal last-input-event lk)) | |
2137 (progn | |
2138 (sit-for 0) | |
2139 (message "Continuing...")))) | |
2140 ;; Nothing here. | |
2141 ))))) | |
2142 (skip-chars-forward "^a-zA-Z")) | |
2143 err)))) | |
2144 | |
2145 ;;; Rogue space checking engine | |
2146 ;; | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2147 (defun checkdoc-rogue-space-check-engine (&optional start end interact) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2148 "Return a message list if there is a line with white space at the end. |
20085 | 2149 If `checkdoc-autofix-flag' permits, delete that whitespace instead. |
2150 If optional arguments START and END are non nil, bound the check to | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2151 this region. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2152 Optional argument INTERACT may permit the user to fix problems on the fly." |
20085 | 2153 (let ((p (point)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2154 (msg nil) s e (f nil)) |
20085 | 2155 (if (not start) (setq start (point-min))) |
2156 ;; If end is nil, it means end of buffer to search anyway | |
2157 (or | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2158 ;; Check for an error if `? ' or `?\ ' is used at the end of a line. |
20085 | 2159 ;; (It's dangerous) |
2160 (progn | |
2161 (goto-char start) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2162 (while (and (not msg) (re-search-forward "\\?\\\\?[ \t][ \t]*$" end t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2163 (setq msg |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2164 "Don't use `? ' at the end of a line. \ |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2165 News agents may remove it" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2166 s (match-beginning 0) e (match-end 0) f t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2167 ;; If interactive is passed down, give them a chance to fix things. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2168 (if (and interact (y-or-n-p (concat msg ". Fix? "))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2169 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2170 (checkdoc-recursive-edit msg) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2171 (setq msg nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2172 (goto-char s) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2173 (beginning-of-line))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2174 ;; Check for, and potentially remove whitespace appearing at the |
20085 | 2175 ;; end of different lines. |
2176 (progn | |
2177 (goto-char start) | |
22195 | 2178 ;; There is no documentation in the Emacs Lisp manual about this check, |
20085 | 2179 ;; it is intended to help clean up messy code and reduce the file size. |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2180 (while (and (not msg) (re-search-forward "[^ \t\n;]\\([ \t]+\\)$" end t)) |
20085 | 2181 ;; This is not a complex activity |
2182 (if (checkdoc-autofix-ask-replace | |
2183 (match-beginning 1) (match-end 1) | |
22195 | 2184 "White space at end of line. Remove? " "") |
20085 | 2185 nil |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2186 (setq msg "White space found at end of line" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2187 s (match-beginning 1) e (match-end 1)))))) |
20085 | 2188 ;; Return an error and leave the cursor at that spot, or restore |
2189 ;; the cursor. | |
2190 (if msg | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2191 (checkdoc-create-error msg s e f) |
20085 | 2192 (goto-char p) |
2193 nil))) | |
2194 | |
2195 ;;; Comment checking engine | |
2196 ;; | |
2197 (eval-when-compile | |
2198 ;; We must load this to: | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2199 ;; a) get symbols for compile and |
20085 | 2200 ;; b) determine if we have lm-history symbol which doesn't always exist |
2201 (require 'lisp-mnt)) | |
2202 | |
2203 (defun checkdoc-file-comments-engine () | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2204 "Return a message list if this file does not match the Emacs standard. |
20085 | 2205 This checks for style only, such as the first line, Commentary:, |
2206 Code:, and others referenced in the style guide." | |
2207 (if (featurep 'lisp-mnt) | |
2208 nil | |
2209 (require 'lisp-mnt) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2210 ;; Old XEmacs don't have `lm-commentary-mark' |
20085 | 2211 (if (and (not (fboundp 'lm-commentary-mark)) (boundp 'lm-commentary)) |
2212 (defalias 'lm-commentary-mark 'lm-commentary))) | |
2213 (save-excursion | |
2214 (let* ((f1 (file-name-nondirectory (buffer-file-name))) | |
2215 (fn (file-name-sans-extension f1)) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2216 (fe (substring f1 (length fn))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2217 (err nil)) |
20085 | 2218 (goto-char (point-min)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2219 ;; This file has been set up where ERR is a variable. Each check is |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2220 ;; asked, and the function will make sure that if the user does not |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2221 ;; auto-fix some error, that we still move on to the next auto-fix, |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2222 ;; AND we remember the past errors. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2223 (setq |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2224 err |
20085 | 2225 ;; Lisp Maintenance checks first |
2226 ;; Was: (lm-verify) -> not flexible enough for some people | |
2227 ;; * Summary at the beginning of the file: | |
2228 (if (not (lm-summary)) | |
2229 ;; This certifies as very complex so always ask unless | |
2230 ;; it's set to never | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2231 (if (checkdoc-y-or-n-p "There is no first line summary! Add one? ") |
20085 | 2232 (progn |
2233 (goto-char (point-min)) | |
2234 (insert ";;; " fn fe " --- " (read-string "Summary: ") "\n")) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2235 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2236 "The first line should be of the form: \";;; package --- Summary\"" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2237 (point-min) (save-excursion (goto-char (point-min)) (end-of-line) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2238 (point)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2239 nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2240 (setq |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2241 err |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2242 (or |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2243 ;; * Commentary Section |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2244 (if (not (lm-commentary-mark)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2245 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2246 (goto-char (point-min)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2247 (cond |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2248 ((re-search-forward |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2249 "write\\s-+to\\s-+the\\s-+Free Software Foundation, Inc." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2250 nil t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2251 (re-search-forward "^;;\\s-*\n\\|^\n" nil t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2252 ((or (re-search-forward "^;;; History" nil t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2253 (re-search-forward "^;;; Code" nil t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2254 (re-search-forward "^(require" nil t) |
40926
14c471312660
(checkdoc-file-comments-engine):
Richard M. Stallman <rms@gnu.org>
parents:
40291
diff
changeset
|
2255 (re-search-forward "^(" nil t)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2256 (beginning-of-line))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2257 (if (checkdoc-y-or-n-p |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2258 "You should have a \";;; Commentary:\", add one? ") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2259 (insert "\n;;; Commentary:\n;; \n\n") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2260 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2261 "You should have a section marked \";;; Commentary:\"" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2262 nil nil t))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2263 nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2264 err)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2265 (setq |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2266 err |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2267 (or |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2268 ;; * History section. Say nothing if there is a file ChangeLog |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2269 (if (or (not checkdoc-force-history-flag) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2270 (file-exists-p "ChangeLog") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2271 (file-exists-p "../ChangeLog") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2272 (let ((fn 'lm-history-mark)) ;bestill byte-compiler |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2273 (and (fboundp fn) (funcall fn)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2274 nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2275 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2276 (goto-char (or (lm-commentary-mark) (point-min))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2277 (cond |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2278 ((re-search-forward |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2279 "write\\s-+to\\s-+the\\s-+Free Software Foundation, Inc." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2280 nil t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2281 (re-search-forward "^;;\\s-*\n\\|^\n" nil t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2282 ((or (re-search-forward "^;;; Code" nil t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2283 (re-search-forward "^(require" nil t) |
40926
14c471312660
(checkdoc-file-comments-engine):
Richard M. Stallman <rms@gnu.org>
parents:
40291
diff
changeset
|
2284 (re-search-forward "^(" nil t)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2285 (beginning-of-line))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2286 (if (checkdoc-y-or-n-p |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2287 "You should have a \";;; History:\", add one? ") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2288 (insert "\n;;; History:\n;; \n\n") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2289 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2290 "You should have a section marked \";;; History:\" or use a ChangeLog" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2291 (point) nil)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2292 err)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2293 (setq |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2294 err |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2295 (or |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2296 ;; * Code section |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2297 (if (not (lm-code-mark)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2298 (let ((cont t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2299 (goto-char (point-min)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2300 (while (and cont (re-search-forward "^(" nil t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2301 (setq cont (looking-at "require\\s-+"))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2302 (if (and (not cont) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2303 (checkdoc-y-or-n-p |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2304 "There is no ;;; Code: marker. Insert one? ")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2305 (progn (beginning-of-line) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2306 (insert ";;; Code:\n") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2307 nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2308 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2309 "You should have a section marked \";;; Code:\"" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2310 (point) nil))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2311 nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2312 err)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2313 (setq |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2314 err |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2315 (or |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2316 ;; * A footer. Not compartmentalized from lm-verify: too bad. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2317 ;; The following is partially clipped from lm-verify |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2318 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2319 (goto-char (point-max)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2320 (if (not (re-search-backward |
64182
176ffa79bdd8
(checkdoc-proper-noun-list):
Richard M. Stallman <rms@gnu.org>
parents:
64085
diff
changeset
|
2321 (concat "^;;;[ \t]+" (regexp-quote fn) "\\(" (regexp-quote fe) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2322 "\\)?[ \t]+ends here[ \t]*$" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2323 "\\|^;;;[ \t]+ End of file[ \t]+" |
64182
176ffa79bdd8
(checkdoc-proper-noun-list):
Richard M. Stallman <rms@gnu.org>
parents:
64085
diff
changeset
|
2324 (regexp-quote fn) "\\(" (regexp-quote fe) "\\)?") |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2325 nil t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2326 (if (checkdoc-y-or-n-p "No identifiable footer! Add one? ") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2327 (progn |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2328 (goto-char (point-max)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2329 (insert "\n(provide '" fn ")\n\n;;; " fn fe " ends here\n")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2330 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2331 (format "The footer should be: (provide '%s)\\n;;; %s%s ends here" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2332 fn fn fe) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2333 (1- (point-max)) (point-max))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2334 err)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2335 ;; The below checks will not return errors if the user says NO |
20085 | 2336 |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2337 ;; Let's spellcheck the commentary section. This is the only |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2338 ;; section that is easy to pick out, and it is also the most |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2339 ;; visible section (with the finder). |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2340 (let ((cm (lm-commentary-mark))) |
51156
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2341 (when cm |
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2342 (save-excursion |
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2343 (goto-char cm) |
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2344 (let ((e (copy-marker (lm-commentary-end)))) |
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2345 ;; Since the comments talk about Lisp, use the |
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2346 ;; specialized spell-checker we also used for doc |
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2347 ;; strings. |
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2348 (checkdoc-sentencespace-region-engine (point) e) |
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2349 (checkdoc-proper-noun-region-engine (point) e) |
46ef9a326558
(checkdoc-file-comments-engine): Use
Lute Kamstra <lute@gnu.org>
parents:
50330
diff
changeset
|
2350 (checkdoc-ispell-docstring-engine e))))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2351 (setq |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2352 err |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2353 (or |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2354 ;; Generic Full-file checks (should be comment related) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2355 (checkdoc-run-hooks 'checkdoc-comment-style-hooks) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2356 err)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2357 ;; Done with full file comment checks |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2358 err))) |
20085 | 2359 |
2360 (defun checkdoc-outside-major-sexp () | |
2361 "Return t if point is outside the bounds of a valid sexp." | |
2362 (save-match-data | |
2363 (save-excursion | |
2364 (let ((p (point))) | |
2365 (or (progn (beginning-of-defun) (bobp)) | |
2366 (progn (end-of-defun) (< (point) p))))))) | |
2367 | |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2368 ;;; `error' and `message' text verifier. |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2369 ;; |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2370 (defun checkdoc-message-text-search (&optional beg end) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2371 "Search between BEG and END for a style error with message text. |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2372 Optional arguments BEG and END represent the boundary of the check. |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2373 The default boundary is the entire buffer." |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2374 (let ((e nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2375 (type nil)) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2376 (if (not (or beg end)) (setq beg (point-min) end (point-max))) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2377 (goto-char beg) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2378 (while (setq type (checkdoc-message-text-next-string end)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2379 (setq e (checkdoc-message-text-engine type))) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2380 e)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48943
diff
changeset
|
2381 |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2382 (defun checkdoc-message-text-next-string (end) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2383 "Move cursor to the next checkable message string after point. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2384 Return the message classification. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2385 Argument END is the maximum bounds to search in." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2386 (let ((return nil)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2387 (while (and (not return) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2388 (re-search-forward |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2389 "(\\s-*\\(\\(\\w\\|\\s_\\)*error\\|\ |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2390 \\(\\w\\|\\s_\\)*y-or-n-p\\(-with-timeout\\)?\ |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2391 \\|checkdoc-autofix-ask-replace\\)[ \t\n]+" end t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2392 (let* ((fn (match-string 1)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2393 (type (cond ((string-match "error" fn) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2394 'error) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2395 (t 'y-or-n-p)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2396 (if (string-match "checkdoc-autofix-ask-replace" fn) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2397 (progn (forward-sexp 2) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2398 (skip-chars-forward " \t\n"))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2399 (if (and (eq type 'y-or-n-p) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2400 (looking-at "(format[ \t\n]+")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2401 (goto-char (match-end 0))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2402 (skip-chars-forward " \t\n") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2403 (if (not (looking-at "\"")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2404 nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2405 (setq return type)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2406 return)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2407 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2408 (defun checkdoc-message-text-engine (&optional type) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2409 "Return or fix errors found in strings passed to a message display function. |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2410 According to the documentation for the function `error', the error list |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2411 should not end with a period, and should start with a capital letter. |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2412 The function `y-or-n-p' has similar constraints. |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2413 Argument TYPE specifies the type of question, such as `error or `y-or-n-p." |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2414 ;; If type is nil, then attempt to derive it. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2415 (if (not type) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2416 (save-excursion |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2417 (up-list -1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2418 (if (looking-at "(format") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2419 (up-list -1)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2420 (setq type |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2421 (cond ((looking-at "(error") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2422 'error) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2423 (t 'y-or-n-p))))) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2424 (let ((case-fold-search nil)) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2425 (or |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2426 ;; From the documentation of the symbol `error': |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2427 ;; In Emacs, the convention is that error messages start with a capital |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2428 ;; letter but *do not* end with a period. Please follow this convention |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2429 ;; for the sake of consistency. |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2430 (if (and (save-excursion (forward-char 1) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2431 (looking-at "[a-z]\\w+")) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2432 (not (checkdoc-autofix-ask-replace |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2433 (match-beginning 0) (match-end 0) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2434 "Capitalize your message text? " |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2435 (capitalize (match-string 0)) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2436 t))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2437 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2438 "Messages should start with a capital letter" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2439 (match-beginning 0) (match-end 0)) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2440 nil) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2441 ;; In general, sentences should have two spaces after the period. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2442 (checkdoc-sentencespace-region-engine (point) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2443 (save-excursion (forward-sexp 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2444 (point))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2445 ;; Look for proper nouns in this region too. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2446 (checkdoc-proper-noun-region-engine (point) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2447 (save-excursion (forward-sexp 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2448 (point))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2449 ;; Here are message type specific questions. |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2450 (if (and (eq type 'error) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2451 (save-excursion (forward-sexp 1) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2452 (forward-char -2) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2453 (looking-at "\\.")) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2454 (not (checkdoc-autofix-ask-replace (match-beginning 0) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2455 (match-end 0) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2456 "Remove period from error? " |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2457 "" |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2458 t))) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2459 (checkdoc-create-error |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2460 "Error messages should *not* end with a period" |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2461 (match-beginning 0) (match-end 0)) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2462 nil) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2463 ;; `y-or-n-p' documentation explicitly says: |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2464 ;; It should end in a space; `y-or-n-p' adds `(y or n) ' to it. |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2465 ;; I added the ? requirement. Without it, it is unclear that we |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2466 ;; ask a question and it appears to be an undocumented style. |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2467 (if (eq type 'y-or-n-p) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2468 (if (not (save-excursion (forward-sexp 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2469 (forward-char -3) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2470 (not (looking-at "\\? ")))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2471 nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2472 (if (save-excursion (forward-sexp 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2473 (forward-char -2) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2474 (looking-at "\\?")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2475 ;; If we see a ?, then replace with "? ". |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2476 (if (checkdoc-autofix-ask-replace |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2477 (match-beginning 0) (match-end 0) |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
2478 "`y-or-n-p' argument should end with \"? \". Fix? " |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2479 "? " t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2480 nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2481 (checkdoc-create-error |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
2482 "`y-or-n-p' argument should end with \"? \"" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2483 (match-beginning 0) (match-end 0))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2484 (if (save-excursion (forward-sexp 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2485 (forward-char -2) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2486 (looking-at " ")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2487 (if (checkdoc-autofix-ask-replace |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2488 (match-beginning 0) (match-end 0) |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
2489 "`y-or-n-p' argument should end with \"? \". Fix? " |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2490 "? " t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2491 nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2492 (checkdoc-create-error |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
2493 "`y-or-n-p' argument should end with \"? \"" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2494 (match-beginning 0) (match-end 0))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2495 (if (and ;; if this isn't true, we have a problem. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2496 (save-excursion (forward-sexp 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2497 (forward-char -1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2498 (looking-at "\"")) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2499 (checkdoc-autofix-ask-replace |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2500 (match-beginning 0) (match-end 0) |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
2501 "`y-or-n-p' argument should end with \"? \". Fix? " |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2502 "? \"" t)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2503 nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2504 (checkdoc-create-error |
26615
1d769c66f407
(checkdoc-this-string-valid-engine):
Richard M. Stallman <rms@gnu.org>
parents:
25697
diff
changeset
|
2505 "`y-or-n-p' argument should end with \"? \"" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2506 (match-beginning 0) (match-end 0))))))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2507 ;; Now, let's just run the spell checker on this guy. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2508 (checkdoc-ispell-docstring-engine (save-excursion (forward-sexp 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2509 (point))) |
22111
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2510 ))) |
38f78542051a
Updated with latest version. Changes include:
Eric M. Ludlam <zappo@gnu.org>
parents:
21651
diff
changeset
|
2511 |
20085 | 2512 ;;; Auto-fix helper functions |
2513 ;; | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2514 (defun checkdoc-y-or-n-p (question) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2515 "Like `y-or-n-p', but pays attention to `checkdoc-autofix-flag'. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2516 Argument QUESTION is the prompt passed to `y-or-n-p'." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2517 (prog1 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2518 (if (or (not checkdoc-autofix-flag) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2519 (eq checkdoc-autofix-flag 'never)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2520 nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2521 (y-or-n-p question)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2522 (if (eq checkdoc-autofix-flag 'automatic-then-never) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2523 (setq checkdoc-autofix-flag 'never)))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2524 |
20085 | 2525 (defun checkdoc-autofix-ask-replace (start end question replacewith |
2526 &optional complex) | |
2527 "Highlight between START and END and queries the user with QUESTION. | |
2528 If the user says yes, or if `checkdoc-autofix-flag' permits, replace | |
2529 the region marked by START and END with REPLACEWITH. If optional flag | |
2530 COMPLEX is non-nil, then we may ask the user a question. See the | |
2531 documentation for `checkdoc-autofix-flag' for details. | |
2532 | |
2533 If a section is auto-replaced without asking the user, this function | |
2534 will pause near the fixed code so the user will briefly see what | |
2535 happened. | |
2536 | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2537 This function returns non-nil if the text was replaced. |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2538 |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2539 This function will not modify `match-data'." |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2540 (if (and checkdoc-autofix-flag |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2541 (not (eq checkdoc-autofix-flag 'never))) |
20085 | 2542 (let ((o (checkdoc-make-overlay start end)) |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2543 (ret nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2544 (md (match-data))) |
20085 | 2545 (unwind-protect |
2546 (progn | |
2547 (checkdoc-overlay-put o 'face 'highlight) | |
2548 (if (or (eq checkdoc-autofix-flag 'automatic) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2549 (eq checkdoc-autofix-flag 'automatic-then-never) |
20085 | 2550 (and (eq checkdoc-autofix-flag 'semiautomatic) |
2551 (not complex)) | |
2552 (and (or (eq checkdoc-autofix-flag 'query) complex) | |
2553 (y-or-n-p question))) | |
2554 (save-excursion | |
2555 (goto-char start) | |
2556 ;; On the off chance this is automatic, display | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2557 ;; the question anyway so the user knows what's |
20085 | 2558 ;; going on. |
2559 (if checkdoc-bouncy-flag (message "%s -> done" question)) | |
2560 (delete-region start end) | |
2561 (insert replacewith) | |
2562 (if checkdoc-bouncy-flag (sit-for 0)) | |
2563 (setq ret t))) | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2564 (checkdoc-delete-overlay o) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2565 (set-match-data md)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2566 (checkdoc-delete-overlay o) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2567 (set-match-data md)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2568 (if (eq checkdoc-autofix-flag 'automatic-then-never) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2569 (setq checkdoc-autofix-flag 'never)) |
20085 | 2570 ret))) |
2571 | |
2572 ;;; Warning management | |
2573 ;; | |
2574 (defvar checkdoc-output-font-lock-keywords | |
55110
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2575 '(("^\\*\\*\\* \\(.+\\.el\\): \\([^ \n]+\\)" |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2576 (1 font-lock-function-name-face) |
55110
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2577 (2 font-lock-comment-face))) |
20085 | 2578 "Keywords used to highlight a checkdoc diagnostic buffer.") |
2579 | |
55110
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2580 (defvar checkdoc-output-error-regex-alist |
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2581 '(("^\\(.+\\.el\\):\\([0-9]+\\): " 1 2))) |
20085 | 2582 |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2583 (defvar checkdoc-pending-errors nil |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2584 "Non-nil when there are errors that have not been displayed yet.") |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2585 |
55110
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2586 (define-derived-mode checkdoc-output-mode compilation-mode "Checkdoc" |
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2587 "Set up the major mode for the buffer containing the list of errors." |
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2588 (set (make-local-variable 'compilation-error-regexp-alist) |
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2589 checkdoc-output-error-regex-alist) |
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2590 (set (make-local-variable 'compilation-mode-font-lock-keywords) |
9454ec4dffea
(checkdoc-output-error-regex-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55060
diff
changeset
|
2591 checkdoc-output-font-lock-keywords)) |
20085 | 2592 |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2593 (defun checkdoc-buffer-label () |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2594 "The name to use for a checkdoc buffer in the error list." |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2595 (if (buffer-file-name) |
55060
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2596 (file-relative-name (buffer-file-name)) |
23192
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2597 (concat "#<buffer "(buffer-name) ">"))) |
1ea9db09a678
(checkdoc-buffer-label): New function.
Eric M. Ludlam <zappo@gnu.org>
parents:
22674
diff
changeset
|
2598 |
20085 | 2599 (defun checkdoc-start-section (check-type) |
2600 "Initialize the checkdoc diagnostic buffer for a pass. | |
2601 Create the header so that the string CHECK-TYPE is displayed as the | |
2602 function called to create the messages." | |
55060
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2603 (let ((dir default-directory) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2604 (label (checkdoc-buffer-label))) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2605 (with-current-buffer (get-buffer-create checkdoc-diagnostic-buffer) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2606 (checkdoc-output-mode) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2607 (setq default-directory dir) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2608 (goto-char (point-max)) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2609 (insert "\n\n\C-l\n*** " label ": " check-type " V " checkdoc-version)))) |
20085 | 2610 |
2611 (defun checkdoc-error (point msg) | |
2612 "Store POINT and MSG as errors in the checkdoc diagnostic buffer." | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2613 (setq checkdoc-pending-errors t) |
55060
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2614 (let ((text (list "\n" (checkdoc-buffer-label) ":" |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2615 (int-to-string |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2616 (count-lines (point-min) (or point (point-min)))) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2617 ": " msg))) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2618 (with-current-buffer (get-buffer checkdoc-diagnostic-buffer) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2619 (goto-char (point-max)) |
4a1324ad659c
(checkdoc-output-mode): Make it a normal major mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54873
diff
changeset
|
2620 (apply 'insert text)))) |
20085 | 2621 |
2622 (defun checkdoc-show-diagnostics () | |
2623 "Display the checkdoc diagnostic buffer in a temporary window." | |
22674
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2624 (if checkdoc-pending-errors |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2625 (let ((b (get-buffer checkdoc-diagnostic-buffer))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2626 (if b (progn (pop-to-buffer b) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2627 (goto-char (point-max)) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2628 (re-search-backward "\C-l" nil t) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2629 (beginning-of-line) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2630 (forward-line 1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2631 (recenter 0))) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2632 (other-window -1) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2633 (setq checkdoc-pending-errors nil) |
f72e7540940a
(checkdoc): Updated commentary.
Eric M. Ludlam <zappo@gnu.org>
parents:
22579
diff
changeset
|
2634 nil))) |
20085 | 2635 |
2636 (defgroup checkdoc nil | |
22195 | 2637 "Support for doc string checking in Emacs Lisp." |
20085 | 2638 :prefix "checkdoc" |
21651
86fcccceba7b
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21181
diff
changeset
|
2639 :group 'lisp |
86fcccceba7b
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21181
diff
changeset
|
2640 :version "20.3") |
20085 | 2641 |
2642 (custom-add-option 'emacs-lisp-mode-hook | |
2643 (lambda () (checkdoc-minor-mode 1))) | |
2644 | |
33495
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
2645 (add-to-list 'debug-ignored-errors |
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
2646 "Argument `.*' should appear (as .*) in the doc string") |
54498
79d56d8a420a
(checkdoc-error): Dont' assume point-min == 1.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52401
diff
changeset
|
2647 (add-to-list 'debug-ignored-errors |
79d56d8a420a
(checkdoc-error): Dont' assume point-min == 1.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52401
diff
changeset
|
2648 "Lisp symbol `.*' should appear in quotes") |
40291
7642548b1466
(checkdoc-eval-defun): Call eval-defun
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39319
diff
changeset
|
2649 (add-to-list 'debug-ignored-errors "Disambiguate .* by preceding .*") |
33495
07c7cb89c236
(checkdoc-minor-mode) <defvar>: Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
27444
diff
changeset
|
2650 |
20085 | 2651 (provide 'checkdoc) |
22195 | 2652 |
52401 | 2653 ;;; arch-tag: c49a7ec8-3bb7-46f2-bfbc-d5f26e033b26 |
20085 | 2654 ;;; checkdoc.el ends here |