From: Oleh Krehel Date: Mon, 8 Jun 2015 06:30:32 +0000 (+0200) Subject: checkdoc.el (checkdoc-file): New function X-Git-Tag: emacs-25.0.90~1828 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c941d479322f8cc267908f19118f8558ea034259;p=emacs.git checkdoc.el (checkdoc-file): New function * lisp/emacs-lisp/checkdoc.el (checkdoc-error): When `checkdoc-diagnostic-buffer' is set to "*warn*", print the warning to the standard output. (bug#20754) --- diff --git a/etc/NEWS b/etc/NEWS index 89528690e40..51d0a5f4fec 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -84,6 +84,10 @@ command line when `initial-buffer-choice' is non-nil. * Changes in Emacs 25.1 +** New function `checkdoc-file' checks for style errors. +It's meant for use together with `compile': +emacs -batch --eval "(checkdoc-file \"subr.el\")" + ** New command `comment-line' bound to `C-x C-;'. ** New function `custom-prompt-customize-unsaved-options' checks for diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index 4761ac5e6fc..869ae431950 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el @@ -870,6 +870,13 @@ otherwise stop after the first error." (if take-notes (checkdoc-show-diagnostics)) (message "Checking buffer for style...Done.")))) +;;;###autoload +(defun checkdoc-file (file) + "Check FILE for document, comment, error style, and rogue spaces." + (with-current-buffer (find-file-noselect file) + (let ((checkdoc-diagnostic-buffer "*warn*")) + (checkdoc-current-buffer t)))) + ;;;###autoload (defun checkdoc-start (&optional take-notes) "Start scanning the current buffer for documentation string style errors. @@ -2611,16 +2618,16 @@ function called to create the messages." "Store POINT and MSG as errors in the checkdoc diagnostic buffer." (setq checkdoc-pending-errors t) (let ((text (list "\n" (checkdoc-buffer-label) ":" - (int-to-string - (count-lines (point-min) (or point (point-min)))) - ": " msg))) - (with-current-buffer (get-buffer checkdoc-diagnostic-buffer) - (let ((inhibit-read-only t) - (pt (point-max))) - (goto-char pt) - (apply #'insert text) - (when noninteractive - (warn (buffer-substring pt (point-max)))))))) + (int-to-string + (count-lines (point-min) (or point (point-min)))) + ": " msg))) + (if (string= checkdoc-diagnostic-buffer "*warn*") + (warn (apply #'concat text)) + (with-current-buffer (get-buffer checkdoc-diagnostic-buffer) + (let ((inhibit-read-only t) + (pt (point-max))) + (goto-char pt) + (apply #'insert text)))))) (defun checkdoc-show-diagnostics () "Display the checkdoc diagnostic buffer in a temporary window."