bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#4612: 23.1; checkdoc insert ";;; Code" before autoload cookie


From: Kevin Ryde
Subject: bug#4612: 23.1; checkdoc insert ";;; Code" before autoload cookie
Date: Fri, 02 Oct 2009 10:10:04 +1000
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)

On foo.el below M-x checkdoc inserts ";;; Code" as

    ;;;###autoload
    ;;; Code:
    (defun foo ()

where I hoped it would be before the cookie like say

    ;;; Code:

    ;;;###autoload
    (defun foo ()

generate-file-autoloads etc is happy with either, but the latter reads
better for humans.  I struck this in one of my own .el files which had
an autoload cookie on the first func.

Incidentally, I see the `cont' loop puts ";;; Code" after any initial
`require' forms.  Is that actually usual, or usual any more?  I think
I've only ever seen `require's after ";;; Code".


2009-10-01  Kevin Ryde  <user42@zip.com.au>

        * emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): When
        inserting ";;; Code" put it before any ";;;###autoload" cookie on
        the first form.  And insert a blank line after ";;; Code" since
        that's usual style.

Attachment: foo.el
Description: application/emacs-lisp

--- checkdoc.el.~1.74.~ 2009-09-18 08:22:27.000000000 +1000
+++ checkdoc.el 2009-09-25 18:22:29.000000000 +1000
@@ -2304,15 +2304,18 @@
        (or
        ;; * Code section
        (if (not (lm-code-mark))
-           (let ((cont t))
+           (let ((cont t)
+                 pos)
              (goto-char (point-min))
-             (while (and cont (re-search-forward "^(" nil t))
-               (setq cont (looking-at "require\\s-+")))
+             ;; matching ";;;###" to keep autoload cookie with the form
+             (while (and cont (re-search-forward "^\\(;;;###.*\n\\)?(" nil t))
+               (setq pos (match-beginning 0)
+                     cont (looking-at "require\\s-+")))
              (if (and (not cont)
                       (checkdoc-y-or-n-p
                        "There is no ;;; Code: marker.  Insert one? "))
-                 (progn (beginning-of-line)
-                        (insert ";;; Code:\n")
+                 (progn (goto-char pos)
+                        (insert ";;; Code:\n\n")
                         nil)
                (checkdoc-create-error
                 "You should have a section marked \";;; Code:\""

In GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.16.5)
 of 2009-09-14 on raven, modified by Debian
configured using `configure  '--build=i486-linux-gnu' '--host=i486-linux-gnu' 
'--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' 
'--localstatedir=/var/lib' '--infodir=/usr/share/info' 
'--mandir=/usr/share/man' '--with-pop=yes' 
'--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim'
 '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 
'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g 
-O2' 'LDFLAGS=-g' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_AU
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default-enable-multibyte-characters: t

reply via email to

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