summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorTassilo Horn <tsdh@gnu.org>2015-10-28 08:47:26 +0100
committerTassilo Horn <tsdh@gnu.org>2015-10-28 08:47:26 +0100
commit6e2a4021d3fc0166b72c60088fb2cea01484453c (patch)
tree6f76b417577e23fe805ebeadcf8009d255795155 /lisp
parent9db11fa2d635935318364370f31821023c2501b9 (diff)
downloademacs-6e2a4021d3fc0166b72c60088fb2cea01484453c.tar.gz
emacs-6e2a4021d3fc0166b72c60088fb2cea01484453c.tar.bz2
emacs-6e2a4021d3fc0166b72c60088fb2cea01484453c.zip
Prettify TeX macros not ending in a word char
* lisp/textmodes/tex-mode.el (tex--prettify-symbols-compose-p): Prettify macros which don't end in a word character.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/textmodes/tex-mode.el30
1 files changed, 18 insertions, 12 deletions
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 45afafc2381..0b13759b9bc 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -3410,18 +3410,24 @@ There might be text before point."
"A `prettify-symbols-alist' usable for (La)TeX modes.")
(defun tex--prettify-symbols-compose-p (_start end _match)
- (let* ((after-char (char-after end))
- (after-syntax (char-syntax after-char)))
- (not (or
- ;; Don't compose \alpha@foo.
- (eq after-char ?@)
- ;; The \alpha in \alpha2 or \alpha-\beta may be composed but
- ;; of course \alphax may not.
- (and (eq after-syntax ?w)
- (not (memq after-char
- '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?+ ?- ?' ?\"))))
- ;; Don't compose inside verbatim blocks.
- (eq 2 (nth 7 (syntax-ppss)))))))
+ (or
+ ;; If the matched symbol doesn't end in a word character, then we
+ ;; simply allow composition. The symbol is probably something like
+ ;; \|, \(, etc.
+ (not (eq ?w (char-syntax (char-before end))))
+ ;; Else we look at what follows the match in order to decide.
+ (let* ((after-char (char-after end))
+ (after-syntax (char-syntax after-char)))
+ (not (or
+ ;; Don't compose \alpha@foo.
+ (eq after-char ?@)
+ ;; The \alpha in \alpha2 or \alpha-\beta may be composed but
+ ;; of course \alphax may not.
+ (and (eq after-syntax ?w)
+ (not (memq after-char
+ '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?+ ?- ?' ?\"))))
+ ;; Don't compose inside verbatim blocks.
+ (eq 2 (nth 7 (syntax-ppss))))))))
(run-hooks 'tex-mode-load-hook)