[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/lisp-mode.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/lisp-mode.el |
Date: |
Wed, 05 Oct 2005 11:03:10 -0400 |
Index: emacs/lisp/emacs-lisp/lisp-mode.el
diff -c emacs/lisp/emacs-lisp/lisp-mode.el:1.185
emacs/lisp/emacs-lisp/lisp-mode.el:1.186
*** emacs/lisp/emacs-lisp/lisp-mode.el:1.185 Wed Oct 5 14:07:18 2005
--- emacs/lisp/emacs-lisp/lisp-mode.el Wed Oct 5 15:03:09 2005
***************
*** 147,171 ****
(put 'define-ibuffer-filter 'doc-string-elt 2)
(put 'define-ibuffer-op 'doc-string-elt 3)
(put 'define-ibuffer-sorter 'doc-string-elt 2)
(defun lisp-font-lock-syntactic-face-function (state)
(if (nth 3 state)
! (if (and (eq (nth 0 state) 1)
! ;; This might be a docstring.
! (save-excursion
! (let ((n 0))
! (goto-char (nth 8 state))
! (condition-case nil
! (while (and (not (bobp))
! (progn (backward-sexp 1) (setq n (1+ n)))))
! (scan-error nil))
! (when (> n 0)
! (let ((sym (intern-soft
! (buffer-substring
! (point) (progn (forward-sexp 1) (point))))))
! (eq n (get sym 'doc-string-elt)))))))
! font-lock-doc-face
! font-lock-string-face)
font-lock-comment-face))
;; The LISP-SYNTAX argument is used by code in inf-lisp.el and is
--- 147,188 ----
(put 'define-ibuffer-filter 'doc-string-elt 2)
(put 'define-ibuffer-op 'doc-string-elt 3)
(put 'define-ibuffer-sorter 'doc-string-elt 2)
+ (put 'lambda 'doc-string-elt 2)
+
+ (defvar lisp-doc-string-elt-property 'doc-string-elt
+ "The symbol property that holds the docstring position info.")
(defun lisp-font-lock-syntactic-face-function (state)
(if (nth 3 state)
! ;; This might be a docstring.
! (let* ((listbeg (nth 1 state))
! (firstsym (and listbeg
! (save-excursion
! (goto-char listbeg)
! (and (looking-at "([
\t\n]*\\(\\(\\sw\\|\\s_\\)+\\)")
! (match-string 1)))))
! (docelt (and firstsym (get (intern-soft firstsym)
! lisp-doc-string-elt-property))))
! (if (and docelt
! ;; It's a string passed to a macro that has docstrings.
! ;; Check whether it's in docstring position.
! (let ((startpos (nth 8 state)))
! (save-excursion
! (when (functionp docelt)
! (goto-char (match-end 1))
! (setq docelt (funcall docelt)))
! (goto-char listbeg)
! (forward-char 1)
! (condition-case nil
! (while (and (> docelt 0) (< (point) startpos)
! (progn (forward-sexp 1) t))
! (setq docelt (1- docelt)))
! (error nil))
! (and (zerop docelt) (<= (point) startpos)
! (progn (forward-comment (point-max)) t)
! (= (point) (nth 8 state))))))
! font-lock-doc-face
! font-lock-string-face))
font-lock-comment-face))
;; The LISP-SYNTAX argument is used by code in inf-lisp.el and is