mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-11 14:40:50 +00:00
Document support for ':documentation' in Lisp mode
* lisp/emacs-lisp/lisp-mode.el (lisp-string-in-doc-position-p) (lisp-string-after-doc-keyword-p) (lisp-font-lock-syntactic-face-function): Add doc strings.
This commit is contained in:
parent
c930e75bfa
commit
86312ffd93
2 changed files with 14 additions and 0 deletions
5
etc/NEWS
5
etc/NEWS
|
@ -638,7 +638,12 @@ respectively, `show-paren-when-point-inside-paren' or
|
||||||
`show-paren-when-point-in-periphery'.
|
`show-paren-when-point-in-periphery'.
|
||||||
|
|
||||||
** Lisp mode
|
** Lisp mode
|
||||||
|
|
||||||
|
---
|
||||||
*** Strings after `:documentation' are highlighted as docstrings.
|
*** Strings after `:documentation' are highlighted as docstrings.
|
||||||
|
This enhances Lisp mode fontification to handle documentation of the
|
||||||
|
form `(:documentation "the doc string")' used in Common Lisp code for
|
||||||
|
CLOS class and slot documentation.
|
||||||
|
|
||||||
** Rectangle editing
|
** Rectangle editing
|
||||||
|
|
||||||
|
|
|
@ -488,6 +488,9 @@ This will generate compile-time constants from BINDINGS."
|
||||||
"Default expressions to highlight in Lisp modes.")
|
"Default expressions to highlight in Lisp modes.")
|
||||||
|
|
||||||
(defun lisp-string-in-doc-position-p (listbeg startpos)
|
(defun lisp-string-in-doc-position-p (listbeg startpos)
|
||||||
|
"Return true if a doc string may occur at STARTPOS inside a list.
|
||||||
|
LISTBEG is the position of the start of the innermost list
|
||||||
|
containing STARTPOS."
|
||||||
(let* ((firstsym (and listbeg
|
(let* ((firstsym (and listbeg
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char listbeg)
|
(goto-char listbeg)
|
||||||
|
@ -518,6 +521,9 @@ This will generate compile-time constants from BINDINGS."
|
||||||
(= (point) startpos))))))
|
(= (point) startpos))))))
|
||||||
|
|
||||||
(defun lisp-string-after-doc-keyword-p (listbeg startpos)
|
(defun lisp-string-after-doc-keyword-p (listbeg startpos)
|
||||||
|
"Return true if `:documentation' symbol ends at STARTPOS inside a list.
|
||||||
|
LISTBEG is the position of the start of the innermost list
|
||||||
|
containing STARTPOS."
|
||||||
(and listbeg ; We are inside a Lisp form.
|
(and listbeg ; We are inside a Lisp form.
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char startpos)
|
(goto-char startpos)
|
||||||
|
@ -526,6 +532,9 @@ This will generate compile-time constants from BINDINGS."
|
||||||
(looking-at ":documentation\\_>"))))))
|
(looking-at ":documentation\\_>"))))))
|
||||||
|
|
||||||
(defun lisp-font-lock-syntactic-face-function (state)
|
(defun lisp-font-lock-syntactic-face-function (state)
|
||||||
|
"Return syntactic face function for the position represented by STATE.
|
||||||
|
STATE is a `parse-partial-sexp' state, and the returned function is the
|
||||||
|
Lisp font lock syntactic face function."
|
||||||
(if (nth 3 state)
|
(if (nth 3 state)
|
||||||
;; This might be a (doc)string or a |...| symbol.
|
;; This might be a (doc)string or a |...| symbol.
|
||||||
(let ((startpos (nth 8 state)))
|
(let ((startpos (nth 8 state)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue