]> git.eshelyaron.com Git - emacs.git/commitdiff
lisp/progmodes/prog-mode.el: Force font-lock to deal with `composition' prop.
authorJuanma Barranquero <lekktu@gmail.com>
Mon, 17 Jun 2013 01:09:13 +0000 (03:09 +0200)
committerJuanma Barranquero <lekktu@gmail.com>
Mon, 17 Jun 2013 01:09:13 +0000 (03:09 +0200)
(prog-prettify-install): Add `composition' to `font-lock-extra-managed-props'
if any prettifying keyword is added.
(prog--prettify-font-lock-compose-symbol): Use ?\s instead of ?\ .
(prog-mode): Use `setq-local'.

lisp/ChangeLog
lisp/progmodes/prog-mode.el

index 5d44b897b51b932c6b6ccc856cbbbf870c742ac2..b64bcccacd1357e3e17b8e7dd30f9786ad567d59 100644 (file)
@@ -1,3 +1,10 @@
+2013-06-17  Juanma Barranquero  <lekktu@gmail.com>
+
+       * progmodes/prog-mode.el (prog-prettify-install): Add `composition' to
+       `font-lock-extra-managed-props' if any prettifying keyword is added.
+       (prog--prettify-font-lock-compose-symbol): Use ?\s instead of ?\ .
+       (prog-mode): Use `setq-local'.
+
 2013-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * international/characters.el (standard-case-table): Set syntax of ?ยป
index 03505051c1f225d0ce0b3fee215fce7339fb7745..6498ba51e459f639770e8774f069534c6f255680 100644 (file)
@@ -76,8 +76,8 @@ Regexp match data 0 points to the chars."
         (syntaxes (if (eq (char-syntax (char-after start)) ?w)
                       '(?w) '(?. ?\\)))
         match)
-    (if (or (memq (char-syntax (or (char-before start) ?\ )) syntaxes)
-           (memq (char-syntax (or (char-after end) ?\ )) syntaxes)
+    (if (or (memq (char-syntax (or (char-before start) ?\s)) syntaxes)
+           (memq (char-syntax (or (char-after end) ?\s)) syntaxes)
             ;; syntax-ppss could modify the match data (bug#14595)
             (progn (setq match (match-string 0)) (nth 8 (syntax-ppss))))
        ;; No composition for you.  Let's actually remove any composition
@@ -106,13 +106,16 @@ ALIST is in the format `((STRING . CHARACTER)...)' like
 Internally, `font-lock-add-keywords' is called."
   (setq-local prog-prettify-symbols-alist alist)
   (let ((keywords (prog-prettify-font-lock-symbols-keywords)))
-    (if keywords (font-lock-add-keywords nil keywords))))
+    (when keywords
+      (font-lock-add-keywords nil keywords)
+      (setq-local font-lock-extra-managed-props
+                  (cons 'composition font-lock-extra-managed-props)))))
 
 ;;;###autoload
 (define-derived-mode prog-mode fundamental-mode "Prog"
   "Major mode for editing programming language source code."
-  (set (make-local-variable 'require-final-newline) mode-require-final-newline)
-  (set (make-local-variable 'parse-sexp-ignore-comments) t)
+  (setq-local require-final-newline mode-require-final-newline)
+  (setq-local parse-sexp-ignore-comments t)
   ;; Any programming language is always written left to right.
   (setq bidi-paragraph-direction 'left-to-right))