summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorakater <nuclearspace@gmail.com>2020-05-29 00:26:09 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2020-05-29 00:26:09 -0400
commit1b2a881c9b3ef9158cbf28a65b9e94c2dbc6cec2 (patch)
tree866d6c596ae734bf9ba3f06fd2e9530aa11de50e /lisp/emacs-lisp
parentdf4991093b94ccc48255a0387a98c536962fd0a7 (diff)
downloademacs-1b2a881c9b3ef9158cbf28a65b9e94c2dbc6cec2.tar.gz
emacs-1b2a881c9b3ef9158cbf28a65b9e94c2dbc6cec2.tar.bz2
emacs-1b2a881c9b3ef9158cbf28a65b9e94c2dbc6cec2.zip
* lisp/emacs-lisp/lisp-mode.el: Add new indentation convention
(calculate-lisp-indent): To distinguish code and data when indenting, introduce the convention that a space between an open paren and a symbol indicate that this should be indented as a simple data list.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/lisp-mode.el8
1 files changed, 6 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 7098a41f274..1311d94cb01 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -956,6 +956,7 @@ is the buffer position of the start of the containing expression."
;; setting this to a number inhibits calling hook
(desired-indent nil)
(retry t)
+ whitespace-after-open-paren
calculate-lisp-indent-last-sexp containing-sexp)
(cond ((or (markerp parse-start) (integerp parse-start))
(goto-char parse-start))
@@ -985,6 +986,7 @@ is the buffer position of the start of the containing expression."
nil
;; Innermost containing sexp found
(goto-char (1+ containing-sexp))
+ (setq whitespace-after-open-paren (looking-at (rx whitespace)))
(if (not calculate-lisp-indent-last-sexp)
;; indent-point immediately follows open paren.
;; Don't call hook.
@@ -999,9 +1001,11 @@ is the buffer position of the start of the containing expression."
calculate-lisp-indent-last-sexp)
;; This is the first line to start within the containing sexp.
;; It's almost certainly a function call.
- (if (= (point) calculate-lisp-indent-last-sexp)
+ (if (or (= (point) calculate-lisp-indent-last-sexp)
+ whitespace-after-open-paren)
;; Containing sexp has nothing before this line
- ;; except the first element. Indent under that element.
+ ;; except the first element, or the first element is
+ ;; preceded by whitespace. Indent under that element.
nil
;; Skip the first element, find start of second (the first
;; argument of the function call) and indent under.