Mercurial > emacs
changeset 112350:d89c2a0d1b12
* lisp/textmodes/tex-mode.el (tex-font-lock-verb): Make sure \verb
highlighting doesn't spill over subsequent lines.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Mon, 17 Jan 2011 23:07:36 -0500 |
parents | e4640e51ea08 |
children | 176503f61eb1 71904feb29f6 |
files | lisp/ChangeLog lisp/textmodes/tex-mode.el |
diffstat | 2 files changed, 19 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Mon Jan 17 18:57:04 2011 -0800 +++ b/lisp/ChangeLog Mon Jan 17 23:07:36 2011 -0500 @@ -1,10 +1,11 @@ 2011-01-18 Stefan Monnier <monnier@iro.umontreal.ca> + * textmodes/tex-mode.el (tex-font-lock-verb): Make sure \verb + highlighting doesn't spill over subsequent lines. + * emacs-lisp/easy-mmode.el (define-minor-mode): Don't re-evaluate the keymap expression. Improve docstring. -2011-01-18 Stefan Monnier <monnier@iro.umontreal.ca> - * electric.el (electric-indent-post-self-insert-function): Don't auto-indent for indent-to-left-margin, it's too often counter-productive.
--- a/lisp/textmodes/tex-mode.el Mon Jan 17 18:57:04 2011 -0800 +++ b/lisp/textmodes/tex-mode.el Mon Jan 17 23:07:36 2011 -0500 @@ -791,20 +791,23 @@ (defun tex-font-lock-verb (start delim) "Place syntax table properties on the \verb construct. START is the position of the \\ and DELIM is the delimiter char." - ;; Do nothing if the \verb construct is itself inside a comment or - ;; verbatim env. + ;; Do nothing if the \verb construct is itself inside a comment or + ;; verbatim env. (unless (nth 8 (save-excursion (syntax-ppss start))) - ;; Let's find the end and mark it. - ;; This may span more than a single line, but we don't bother - ;; placing a syntax-multiline property since such multiline verbs aren't - ;; valid anyway. - (skip-chars-forward (string ?^ delim)) - (unless (eobp) - (when (eq (char-syntax (preceding-char)) ?/) - (put-text-property (1- (point)) (point) - 'syntax-table (string-to-syntax "."))) - (put-text-property (point) (1+ (point)) - 'syntax-table (string-to-syntax "\""))))) + ;; Let's find the end and mark it. + (let ((afterdelim (point))) + (skip-chars-forward (string ?^ delim) (line-end-position)) + (if (eolp) + ;; "LaTeX Error: \verb ended by end of line." + ;; Remove the syntax-table property we've just put on the + ;; start-delimiter, so it doesn't spill over subsequent lines. + (put-text-property (1- afterdelim) afterdelim + 'syntax-table nil) + (when (eq (char-syntax (preceding-char)) ?/) + (put-text-property (1- (point)) (point) + 'syntax-table (string-to-syntax "."))) + (put-text-property (point) (1+ (point)) + 'syntax-table (string-to-syntax "\"")))))) ;; Use string syntax but math face for $...$. (defun tex-font-lock-syntactic-face-function (state)