emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 6dcd817 337/433: * mmm-syntax-propertize-function: Use fon


From: Dmitry Gutov
Subject: [elpa] master 6dcd817 337/433: * mmm-syntax-propertize-function: Use font-lock-syntactic-keywords
Date: Thu, 15 Mar 2018 19:44:30 -0400 (EDT)

branch: master
commit 6dcd8176ea16f6f704b4465b72070b0a29da060a
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    * mmm-syntax-propertize-function: Use font-lock-syntactic-keywords
      with less fortunate submodes.
    * Don't clear text properties, syntax-propertize already does that for us.
---
 mmm-region.el | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/mmm-region.el b/mmm-region.el
index 33e7fec..8dff304 100644
--- a/mmm-region.el
+++ b/mmm-region.el
@@ -796,21 +796,24 @@ of the REGIONS covers START to STOP."
      mmm-current-submode mmm-current-overlay)
     (unwind-protect
         (mapc #'(lambda (elt)
-                  (destructuring-bind (mode beg end) elt
+                  (let* ((mode (car elt))
+                         (func (get mode 'mmm-syntax-propertize-function))
+                         (beg (cadr elt)) (end (caddr elt))
+                         (syntax-propertize-chunk-size (- end beg)))
                     (goto-char beg)
                     (mmm-set-current-pair mode (mmm-submode-overlay-at mode))
                     (mmm-set-local-variables mode mmm-current-overlay)
-                    (let ((syntax-propertize-chunk-size (- end beg))
-                          (func (get mode 'mmm-syntax-propertize-function)))
-                      (if func
-                          (save-restriction
-                            (if mmm-current-overlay
-                                (narrow-to-region (overlay-start 
mmm-current-overlay)
-                                                  (overlay-end 
mmm-current-overlay))
-                              (narrow-to-region beg end))
-                            (funcall func beg end))
-                        (remove-text-properties
-                         beg end '(syntax-table nil syntax-multiline nil))))))
+                    (save-restriction
+                      (if mmm-current-overlay
+                          (narrow-to-region (overlay-start mmm-current-overlay)
+                                            (overlay-end mmm-current-overlay))
+                        (narrow-to-region beg end))
+                      (cond
+                       (func
+                        (funcall func beg end))
+                       (font-lock-syntactic-keywords
+                        (let ((syntax-propertize-function nil))
+                          (font-lock-fontify-syntactic-keywords-region beg 
end)))))))
               (mmm-regions-in start stop))
       (mmm-set-current-pair saved-mode saved-ovl)
       (mmm-set-local-variables saved-mode saved-ovl))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]