[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Indentation of constants in LISP
From: |
Johan Bockgård |
Subject: |
Re: Indentation of constants in LISP |
Date: |
Tue, 20 Feb 2007 14:29:06 +0100 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.93 (gnu/linux) |
A Soare <address@hidden> writes:
> In case that the first symbol of the current line is a constant,
> the indentation will be:
>
> '( :stipple nil
> :background "LightBlue"
> :foreground "Black"
> :inverse-video nil
See below.
> (f p q r :name nil
> :server nil
It's not clear that this is necessarily an improvement.
Generally, I think that this approach is flawed. It breaks the
indentation of many forms, and trying to "align" things in this way is
a bad idea in the first place.
Problems:
(prog2
x
:y
z)
(defcustom var :val
:group foo)
(foo :a b :c d
:e f)
(foo a :b c
d
:e f)
(actually, TAB and indent-region produce different results in the
last two cases!)
etc.
Here's one more:
:x TAB => error
OTOH, this one-line patch by Pascal Bourguignon might be a good idea:
http://common-lisp.net/pipermail/slime-devel/2004-October/002487.html
--- lisp-mode.el 18 Feb 2007 00:06:37 +0100 1.199
+++ lisp-mode.el 20 Feb 2007 13:35:31 +0100
@@ -965,7 +965,7 @@
(goto-char (1+ (elt state 1)))
(parse-partial-sexp (point) calculate-lisp-indent-last-sexp 0 t)
(if (and (elt state 2)
- (not (looking-at "\\sw\\|\\s_")))
+ (or (looking-at ":") (not (looking-at "\\sw\\|\\s_"))))
;; car of form doesn't seem to be a symbol
(progn
(if (not (> (save-excursion (forward-line 1) (point))
It indents
(:stipple y
z)
to go along with the existing treatment of forms that begin with a
constant, such as
("stipple" y
z)
(Technically, ":foo" isn't disallowed as a function name, but it is
highly unusual.)
--
Johan Bockgård
- Indentation of constants in LISP, A Soare, 2007/02/02
- Re: Indentation of constants in LISP, A Soare, 2007/02/04
- Re: Indentation of constants in LISP, A Soare, 2007/02/04
- Re: Indentation of constants in LISP, A Soare, 2007/02/05
- Re: Indentation of constants in LISP, A Soare, 2007/02/05
- Re: Indentation of constants in LISP, A Soare, 2007/02/05
- Re: Indentation of constants in LISP, A Soare, 2007/02/20