emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/checkdoc.el [emacs-unicod


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/checkdoc.el [emacs-unicode-2]
Date: Mon, 28 Jun 2004 04:54:33 -0400

Index: emacs/lisp/emacs-lisp/checkdoc.el
diff -c emacs/lisp/emacs-lisp/checkdoc.el:1.37.4.1 
emacs/lisp/emacs-lisp/checkdoc.el:1.37.4.2
*** emacs/lisp/emacs-lisp/checkdoc.el:1.37.4.1  Fri Apr 16 12:50:13 2004
--- emacs/lisp/emacs-lisp/checkdoc.el   Mon Jun 28 07:29:45 2004
***************
*** 1246,1252 ****
  With prefix ARG, turn Checkdoc minor mode on iff ARG is positive.
  
  In Checkdoc minor mode, the usual bindings for `eval-defun' which is
! bound to \\<checkdoc-minor-mode-map> \\[checkdoc-eval-defun] and 
`checkdoc-eval-current-buffer' are overridden to include
  checking of documentation strings.
  
  \\{checkdoc-minor-mode-map}"
--- 1246,1252 ----
  With prefix ARG, turn Checkdoc minor mode on iff ARG is positive.
  
  In Checkdoc minor mode, the usual bindings for `eval-defun' which is
! bound to \\<checkdoc-minor-mode-map>\\[checkdoc-eval-defun] and 
`checkdoc-eval-current-buffer' are overridden to include
  checking of documentation strings.
  
  \\{checkdoc-minor-mode-map}"
***************
*** 2579,2664 ****
  ;;; Warning management
  ;;
  (defvar checkdoc-output-font-lock-keywords
!   '(("\\(\\w+\\.el\\): \\(\\w+\\)"
       (1 font-lock-function-name-face)
!      (2 font-lock-comment-face))
!     ("^\\(\\w+\\.el\\):" 1 font-lock-function-name-face)
!     (":\\([0-9]+\\):" 1 font-lock-constant-face))
    "Keywords used to highlight a checkdoc diagnostic buffer.")
  
! (defvar checkdoc-output-mode-map nil
!   "Keymap used in `checkdoc-output-mode'.")
  
  (defvar checkdoc-pending-errors nil
    "Non-nil when there are errors that have not been displayed yet.")
  
! (if checkdoc-output-mode-map
!     nil
!   (setq checkdoc-output-mode-map (make-sparse-keymap))
!   (if (not (string-match "XEmacs" emacs-version))
!       (define-key checkdoc-output-mode-map [mouse-2]
!       'checkdoc-find-error))
!   (define-key checkdoc-output-mode-map "\C-c\C-c" 'checkdoc-find-error)
!   (define-key checkdoc-output-mode-map "\C-m" 'checkdoc-find-error))
! 
! (defun checkdoc-output-mode ()
!   "Create and setup the buffer used to maintain checkdoc warnings.
! \\<checkdoc-output-mode-map>\\[checkdoc-find-error]  - Go to this error 
location."
!   (if (get-buffer checkdoc-diagnostic-buffer)
!       (get-buffer checkdoc-diagnostic-buffer)
!     (save-excursion
!       (set-buffer (get-buffer-create checkdoc-diagnostic-buffer))
!       (kill-all-local-variables)
!       (setq mode-name "Checkdoc"
!           major-mode 'checkdoc-output-mode)
!       (set (make-local-variable 'font-lock-defaults)
!          '((checkdoc-output-font-lock-keywords) t t ((?- . "w") (?_ . "w"))))
!       (use-local-map checkdoc-output-mode-map)
!       (run-hooks 'checkdoc-output-mode-hook)
!       (current-buffer))))
! 
! (defalias 'checkdoc-find-error-mouse 'checkdoc-find-error)
! (defun checkdoc-find-error (&optional event)
!   "In a checkdoc diagnostic buffer, find the error under point."
!   (interactive (list last-input-event))
!   (if event (posn-set-point (event-end e)))
!   (beginning-of-line)
!   (if (looking-at "\\(\\(\\w+\\|\\s_\\)+\\.el\\):\\([0-9]+\\):")
!       (let ((l (string-to-int (match-string 3)))
!           (f (match-string 1)))
!       (if (not (get-file-buffer f))
!           (error "Can't find buffer %s" f))
!       (switch-to-buffer-other-window (get-file-buffer f))
!       (goto-line l))))
  
  (defun checkdoc-buffer-label ()
    "The name to use for a checkdoc buffer in the error list."
    (if (buffer-file-name)
!       (file-name-nondirectory (buffer-file-name))
      (concat "#<buffer "(buffer-name) ">")))
  
  (defun checkdoc-start-section (check-type)
    "Initialize the checkdoc diagnostic buffer for a pass.
  Create the header so that the string CHECK-TYPE is displayed as the
  function called to create the messages."
!   (checkdoc-output-to-error-buffer
!    "\n\n\C-l\n*** "
!    (checkdoc-buffer-label) ": " check-type " V " checkdoc-version))
  
  (defun checkdoc-error (point msg)
    "Store POINT and MSG as errors in the checkdoc diagnostic buffer."
    (setq checkdoc-pending-errors t)
!   (checkdoc-output-to-error-buffer
!    "\n" (checkdoc-buffer-label) ":"
!    (int-to-string (count-lines (point-min) (or point (point-min)))) ": "
!    msg))
! 
! (defun checkdoc-output-to-error-buffer (&rest text)
!   "Place TEXT into the checkdoc diagnostic buffer."
!   (save-excursion
!     (set-buffer (checkdoc-output-mode))
!     (goto-char (point-max))
!     (apply 'insert text)))
  
  (defun checkdoc-show-diagnostics ()
    "Display the checkdoc diagnostic buffer in a temporary window."
--- 2579,2630 ----
  ;;; Warning management
  ;;
  (defvar checkdoc-output-font-lock-keywords
!   '(("^\\*\\*\\* \\(.+\\.el\\): \\([^ \n]+\\)"
       (1 font-lock-function-name-face)
!      (2 font-lock-comment-face)))
    "Keywords used to highlight a checkdoc diagnostic buffer.")
  
! (defvar checkdoc-output-error-regex-alist
!   '(("^\\(.+\\.el\\):\\([0-9]+\\): " 1 2)))
  
  (defvar checkdoc-pending-errors nil
    "Non-nil when there are errors that have not been displayed yet.")
  
! (define-derived-mode checkdoc-output-mode compilation-mode "Checkdoc"
!   "Set up the major mode for the buffer containing the list of errors."
!   (set (make-local-variable 'compilation-error-regexp-alist)
!        checkdoc-output-error-regex-alist)
!   (set (make-local-variable 'compilation-mode-font-lock-keywords)
!        checkdoc-output-font-lock-keywords))
  
  (defun checkdoc-buffer-label ()
    "The name to use for a checkdoc buffer in the error list."
    (if (buffer-file-name)
!       (file-relative-name (buffer-file-name))
      (concat "#<buffer "(buffer-name) ">")))
  
  (defun checkdoc-start-section (check-type)
    "Initialize the checkdoc diagnostic buffer for a pass.
  Create the header so that the string CHECK-TYPE is displayed as the
  function called to create the messages."
!   (let ((dir default-directory)
!       (label (checkdoc-buffer-label)))
!     (with-current-buffer (get-buffer-create checkdoc-diagnostic-buffer)
!       (checkdoc-output-mode)
!       (setq default-directory dir)
!       (goto-char (point-max))
!       (insert "\n\n\C-l\n*** " label ": " check-type " V " 
checkdoc-version))))
  
  (defun checkdoc-error (point msg)
    "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)
!       (goto-char (point-max))
!       (apply 'insert text))))
  
  (defun checkdoc-show-diagnostics ()
    "Display the checkdoc diagnostic buffer in a temporary window."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]