Change the call convention for `defvar-keymap'
* doc/lispref/keymaps.texi (Changing Key Bindings): Adjust documentation. * lisp/simple.el (special-mode-map): * lisp/net/shr.el (shr-map): * lisp/net/eww.el (eww-link-keymap): (eww-mode-map): (eww-submit-map): (eww-textarea-map): (eww-bookmark-mode-map): (eww-history-mode-map): (eww-buffers-mode-map): * lisp/gnus/message.el (message-mode-map): * lisp/gnus/gnus-html.el (gnus-html-image-map): * lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map): * lisp/gnus/gnus-dired.el (gnus-dired-mode-map): * lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map): Adjust usage of `defvar-keymap'. * lisp/subr.el (define-keymap, define-keymap--define): Change how these functions call each other. (defvar-keymap): Change interface to be more like `define-keymap'. * lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): Remove. (lisp-indent-function): Don't use it.
This commit is contained in:
parent
947aee281c
commit
4103123806
12 changed files with 96 additions and 102 deletions
|
@ -1162,18 +1162,6 @@ STATE is the `parse-partial-sexp' state for current position."
|
|||
(goto-char (scan-lists (point) -1 0))
|
||||
(point)))))))))))
|
||||
|
||||
(defun lisp-indent--defvar-keymap (state)
|
||||
"Return the indent position in the options part of a `defvar-keymap' form."
|
||||
(save-excursion
|
||||
(let ((parens (ppss-open-parens state)))
|
||||
(and (equal (nth 1 parens) (ppss-innermost-start state))
|
||||
(progn
|
||||
(goto-char (nth 0 parens))
|
||||
(looking-at-p "(defvar-keymap"))
|
||||
(progn
|
||||
(goto-char (ppss-innermost-start state))
|
||||
(1+ (current-column)))))))
|
||||
|
||||
(defun lisp-indent-function (indent-point state)
|
||||
"This function is the normal value of the variable `lisp-indent-function'.
|
||||
The function `calculate-lisp-indent' calls this to determine
|
||||
|
@ -1207,12 +1195,10 @@ Lisp function does not specify a special indentation."
|
|||
(if (and (elt state 2)
|
||||
(not (looking-at "\\sw\\|\\s_")))
|
||||
;; car of form doesn't seem to be a symbol
|
||||
(cond
|
||||
((lisp--local-defform-body-p state)
|
||||
;; We nevertheless check whether we are in flet-like form
|
||||
;; as we presume local function names could be non-symbols.
|
||||
(lisp-indent-defform state indent-point))
|
||||
(t
|
||||
(if (lisp--local-defform-body-p state)
|
||||
;; We nevertheless check whether we are in flet-like form
|
||||
;; as we presume local function names could be non-symbols.
|
||||
(lisp-indent-defform state indent-point)
|
||||
(if (not (> (save-excursion (forward-line 1) (point))
|
||||
calculate-lisp-indent-last-sexp))
|
||||
(progn (goto-char calculate-lisp-indent-last-sexp)
|
||||
|
@ -1224,28 +1210,25 @@ Lisp function does not specify a special indentation."
|
|||
;; thing on that line has to be complete sexp since we are
|
||||
;; inside the innermost containing sexp.
|
||||
(backward-prefix-chars)
|
||||
(current-column)))
|
||||
;; Indent `defvar-keymap' arguments.
|
||||
(or (lisp-indent--defvar-keymap state)
|
||||
;; Other forms.
|
||||
(let ((function (buffer-substring (point)
|
||||
(progn (forward-sexp 1) (point))))
|
||||
method)
|
||||
(setq method (or (function-get (intern-soft function)
|
||||
'lisp-indent-function)
|
||||
(get (intern-soft function) 'lisp-indent-hook)))
|
||||
(cond ((or (eq method 'defun)
|
||||
(and (null method)
|
||||
(> (length function) 3)
|
||||
(string-match "\\`def" function))
|
||||
;; Check whether we are in flet-like form.
|
||||
(lisp--local-defform-body-p state))
|
||||
(lisp-indent-defform state indent-point))
|
||||
((integerp method)
|
||||
(lisp-indent-specform method state
|
||||
indent-point normal-indent))
|
||||
(method
|
||||
(funcall method indent-point state))))))))
|
||||
(current-column))
|
||||
(let ((function (buffer-substring (point)
|
||||
(progn (forward-sexp 1) (point))))
|
||||
method)
|
||||
(setq method (or (function-get (intern-soft function)
|
||||
'lisp-indent-function)
|
||||
(get (intern-soft function) 'lisp-indent-hook)))
|
||||
(cond ((or (eq method 'defun)
|
||||
(and (null method)
|
||||
(> (length function) 3)
|
||||
(string-match "\\`def" function))
|
||||
;; Check whether we are in flet-like form.
|
||||
(lisp--local-defform-body-p state))
|
||||
(lisp-indent-defform state indent-point))
|
||||
((integerp method)
|
||||
(lisp-indent-specform method state
|
||||
indent-point normal-indent))
|
||||
(method
|
||||
(funcall method indent-point state)))))))
|
||||
|
||||
(defcustom lisp-body-indent 2
|
||||
"Number of columns to indent the second line of a `(def...)' form."
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue