From f13f86fbf2a9bce1abc974a4b2f457183e963d3b Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sun, 21 Aug 2011 23:38:30 -0400 Subject: [PATCH] Fix some word/symbol classifications in scheme-mode's syntax table. * lisp/progmodes/scheme.el (scheme-mode-syntax-table): Don't use symbol-constituent as the default, as that stops font-lock from working properly. Fixes: debbugs:8843 --- lisp/ChangeLog | 6 ++++++ lisp/progmodes/scheme.el | 28 ++++++++++++++-------------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 02c88eae667..e8a6cd73826 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2011-08-22 Chong Yidong + + * progmodes/scheme.el (scheme-mode-syntax-table): Don't use + symbol-constituent as the default, as that stops font-lock from + working properly (Bug#8843). + 2011-08-21 Lars Magne Ingebrigtsen * mail/smtpmail.el (smtpmail-via-smtp): Only bind diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index 4151e2bb79a..470b309434c 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -55,24 +55,24 @@ (defvar scheme-mode-syntax-table (let ((st (make-syntax-table)) (i 0)) - - ;; Default is atom-constituent. - (while (< i 256) + ;; Symbol constituents + ;; We used to treat chars 128-256 as symbol-constituent, but they + ;; should be valid word constituents (Bug#8843). Note that valid + ;; identifier characters are Scheme-implementation dependent. + (while (< i ?0) (modify-syntax-entry i "_ " st) (setq i (1+ i))) - - ;; Word components. - (setq i ?0) - (while (<= i ?9) - (modify-syntax-entry i "w " st) + (setq i (1+ ?9)) + (while (< i ?A) + (modify-syntax-entry i "_ " st) (setq i (1+ i))) - (setq i ?A) - (while (<= i ?Z) - (modify-syntax-entry i "w " st) + (setq i (1+ ?Z)) + (while (< i ?a) + (modify-syntax-entry i "_ " st) (setq i (1+ i))) - (setq i ?a) - (while (<= i ?z) - (modify-syntax-entry i "w " st) + (setq i (1+ ?z)) + (while (< i 128) + (modify-syntax-entry i "_ " st) (setq i (1+ i))) ;; Whitespace -- 2.39.2