[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/check-declare 1d5cdf1 2/2: check-declare.el: Use c
From: |
Oleh Krehel |
Subject: |
[Emacs-diffs] scratch/check-declare 1d5cdf1 2/2: check-declare.el: Use compilation-style warnings |
Date: |
Fri, 13 Feb 2015 14:08:07 +0000 |
branch: scratch/check-declare
commit 1d5cdf173ba081ca14cd31a1badfc7dcf5b2df6d
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
check-declare.el: Use compilation-style warnings
* lisp/emacs-lisp/check-declare.el (check-declare-warn): Add
file-line-column info to the warning.
(check-declare-files): Make sure that `check-declare-warning-buffer'
is in `compilation-mode'.
---
lisp/ChangeLog | 7 +++++++
lisp/emacs-lisp/check-declare.el | 32 ++++++++++++++++++++++++++------
2 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1ee515f..7ed7ef5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,12 @@
2015-02-13 Oleh Krehel <address@hidden>
+ * emacs-lisp/check-declare.el (check-declare-warn): Use
+ compilation-style warnings.
+ (check-declare-files): Make sure that
+ `check-declare-warning-buffer' is in `compilation-mode'.
+
+2015-02-13 Oleh Krehel <address@hidden>
+
* emacs-lisp/check-declare.el (check-declare-ext-errors): New
defcustom.
(check-declare): New defgroup.
diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el
index e635a8f..cc6f50c 100644
--- a/lisp/emacs-lisp/check-declare.el
+++ b/lisp/emacs-lisp/check-declare.el
@@ -260,12 +260,29 @@ Returned list has elements FNFILE (FILE ...)."
"Warn that FILE made a false claim about FN in FNFILE.
TYPE is a string giving the nature of the error. Warning is displayed in
`check-declare-warning-buffer'."
- (display-warning 'check-declare
- (format "%s said `%s' was defined in %s: %s"
- (file-name-nondirectory file) fn
- (file-name-nondirectory fnfile)
- type)
- nil check-declare-warning-buffer))
+ (cl-letf ((warning-prefix-function
+ (lambda (level entry)
+ (let ((line 0)
+ (col 0))
+ (insert
+ (with-current-buffer (find-file-noselect file)
+ (goto-char (point-min))
+ (when (re-search-forward
+ (format "(declare-function[ \t\n]+%s" fn) nil t)
+ (goto-char (match-beginning 0))
+ (setq line (line-number-at-pos))
+ (setq col (1+ (current-column))))
+ (format "%s:%d:%d:"
+ (file-name-nondirectory file)
+ line col))))
+ entry))
+ (warning-fill-prefix " "))
+ (display-warning 'check-declare
+ (format "%s said `%s' was defined in %s: %s"
+ (file-name-nondirectory file) fn
+ (file-name-nondirectory fnfile)
+ type)
+ nil check-declare-warning-buffer)))
(defun check-declare-files (&rest files)
"Check veracity of all `declare-function' statements in FILES.
@@ -280,6 +297,9 @@ Return a list of any errors found."
(setq errlist (cons (cons (car e) err) errlist))))
(if (get-buffer check-declare-warning-buffer)
(kill-buffer check-declare-warning-buffer))
+ (with-current-buffer (get-buffer-create check-declare-warning-buffer)
+ (unless (derived-mode-p 'compilation-mode)
+ (compilation-mode)))
;; Sort back again so that errors are ordered by the files
;; containing the declare-function statements.
(dolist (e (check-declare-sort errlist))
[Emacs-diffs] scratch/check-declare e7e278c 1/2: check-declare.el (check-declare-ext-errors): New defcustom., Oleh Krehel, 2015/02/13