Hi Marco,
On 2/23/07, Marco Baringer mb@bese.it wrote:
"Bill Clementson" billclem@gmail.com writes:
--- cl-indent-orig.el 2007-02-16 13:49:06.000000000 -0800 +++ cl-indent-mods.el 2007-02-16 13:51:39.000000000 -0800 @@ -214,15 +214,17 @@ ((null method) (when (null (cdr path)) ;; (package prefix was stripped off above)
(cond ((string-match "\\`def"
function)
(cond ((and (string-match "\\`def"
function)
(not (string-match "\\`default-"
function))) (setq tentative-defun t)) ((string-match
wouldn't (not (string-match "\[^:]def" function)) be better?
I don't think that works for Zach's specific example. Here is his code (indented with the standard cl-indent):
(defclass field () ((name :initarg :name :accessor name) (default-value :initarg :default-value :accessor default-value)) (:default-initargs :name nil :default-value nil))
Using my modification to cl-indent, the indentation becomes:
(defclass field () ((name :initarg :name :accessor name) (default-value :initarg :default-value :accessor default-value)) (:default-initargs :name nil :default-value nil))
So, the indentation of both the default-value form and the :default-initargs form is adjusted (which is what Zach was after, I think).
I said it was a "yucky patch" because it just fixes the indentation for this particular scenario. Often, indentation of "def..." forms is handled oddly by cl-indent because of the in-built supposition that (unless otherwise defined) anything that begins with "def" is a definition form. A better patch might be to provide a defcustom emacs variable that could be used for any "def..." forms that aren't to be indented as definition forms and to check that variable before indenting code as a definition form.
-- Bill Clementson