[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 278ba52 386/433: Fix #37
From: |
Dmitry Gutov |
Subject: |
[elpa] master 278ba52 386/433: Fix #37 |
Date: |
Thu, 15 Mar 2018 19:44:40 -0400 (EDT) |
branch: master
commit 278ba5253bb61911bacb9756539fe39f58f08641
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>
Fix #37
---
mmm-region.el | 7 ++++++-
tests/highlighting.el | 32 ++++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/mmm-region.el b/mmm-region.el
index 7600ff0..d95df0e 100644
--- a/mmm-region.el
+++ b/mmm-region.el
@@ -800,7 +800,9 @@ of the REGIONS covers START to STOP."
(mmm-set-local-variables (unless (eq mmm-previous-submode
mode)
mode)
mmm-current-overlay)
- (funcall func (car reg) (cadr reg) nil)
+ (let ((syntax-ppss-last (and (caddr reg) (list (car reg))))
+ syntax-ppss-cache)
+ (funcall func (car reg) (cadr reg) nil))
;; Catch changes in font-lock cache.
(mmm-save-changed-local-variables
mmm-current-submode mmm-current-overlay))
@@ -844,6 +846,9 @@ calls each respective submode's
`syntax-propertize-function'."
(mmm-set-local-variables mode mmm-current-overlay)
(save-restriction
(when mmm-current-overlay
+ ;; Simple optimization to avoid calling
syntax-beginning
+ ;; for small buffers.
+ (setq syntax-ppss-last (list beg))
(narrow-to-region (overlay-start mmm-current-overlay)
(overlay-end mmm-current-overlay)))
(cond
diff --git a/tests/highlighting.el b/tests/highlighting.el
index 25fcf95..b10aca8 100644
--- a/tests/highlighting.el
+++ b/tests/highlighting.el
@@ -57,3 +57,35 @@
(should pt)
(goto-char pt)
(should (looking-at "foo\\'"))))))
+
+(ert-deftest mmm-fontify-region-list-ignores-outside-for-syntactic-ff-tion ()
+ (ert-with-test-buffer nil
+ (let (mmm-mode-ext-classes-alist
+ mmm-parse-when-idle)
+ (insert "unpaired '!\n")
+ (insert "js>>\n")
+ (insert "var woo = js;\n")
+ (foo1-mode)
+ (mmm-mode-on)
+ (syntax-ppss-flush-cache (point-min))
+ (mmm-ify-by-regexp 'js-mode "js>>\n" 0 "\\'" 0 nil)
+ (font-lock-fontify-region (point-min) (point-max))
+ (search-backward "var")
+ (should (eq 'font-lock-keyword-face
+ (get-text-property (point) 'face))))))
+
+(ert-deftest mmm-fontify-region-list-carries-string-after-subregion ()
+ (ert-with-test-buffer nil
+ (let (mmm-mode-ext-classes-alist
+ mmm-parse-when-idle)
+ (insert "<p class=\"foo <% 1 + 2 %> bar tee\"</p>")
+ (html-mode)
+ (mmm-mode-on)
+ (syntax-ppss-flush-cache (point-min))
+ (mmm-ify-by-regexp 'js-mode "<%" 0 "%>" 0 nil)
+ (font-lock-fontify-region (point-min) (point-max))
+ (search-backward "1")
+ (should (null (get-text-property (point) 'face)))
+ (search-forward "bar")
+ (should (eq 'font-lock-string-face
+ (get-text-property (point) 'face))))))
- [elpa] master 1b9406d 361/433: Released 0.5.0, (continued)
- [elpa] master 1b9406d 361/433: Released 0.5.0, Dmitry Gutov, 2018/03/15
- [elpa] master f9e4dd5 376/433: Fix #26, Dmitry Gutov, 2018/03/15
- [elpa] master f5ea03a 399/433: Don't try to enable jit-lock in temp buffers, Dmitry Gutov, 2018/03/15
- [elpa] master 18bb050 392/433: Released 0.5.2, Dmitry Gutov, 2018/03/15
- [elpa] master 0cc4df5 410/433: Document mode transition hooks, Dmitry Gutov, 2018/03/15
- [elpa] master 8dcb066 414/433: Reword docstring & fix indentation, Dmitry Gutov, 2018/03/15
- [elpa] master c9a857a 407/433: Save font-lock-syntactic-face-function per major mode, Dmitry Gutov, 2018/03/15
- [elpa] master 545b85d 327/433: added more cc-mode variables to mmm-save-local-variables, Dmitry Gutov, 2018/03/15
- [elpa] master d58aacc 365/433: Fix mmm-add-to-major-mode-preferences docstring, Dmitry Gutov, 2018/03/15
- [elpa] master 3d83b62 383/433: Add mmm-defaults.el (#36), Dmitry Gutov, 2018/03/15
- [elpa] master 278ba52 386/433: Fix #37,
Dmitry Gutov <=
- [elpa] master ed9e32c 242/433: * FAQ: Updated comments about other emacs variants., Dmitry Gutov, 2018/03/15
- [elpa] master ecf2a75 257/433: Use correct variable name..., Dmitry Gutov, 2018/03/15
- [elpa] master cd85acc 266/433: Added file for building SRPMs, thanks to bishop, Dmitry Gutov, 2018/03/15
- [elpa] master 93e7a93 271/433: (mmm-save-local-variables): Add semantic stuff and, Dmitry Gutov, 2018/03/15
- [elpa] master c1a33b7 260/433: (mmm-define-key): Added optional keymap argument, Dmitry Gutov, 2018/03/15
- [elpa] master 821386c 283/433: Ignore .elc files, Dmitry Gutov, 2018/03/15
- [elpa] master 2cb7c99 189/433: Added multiple faces and optional levels of decoration., Dmitry Gutov, 2018/03/15
- [elpa] master 5321422 248/433: Updated docstrings and comments. Added primary mode hook., Dmitry Gutov, 2018/03/15
- [elpa] master 5f82799 276/433: * version.texi: Release 0.4.8., Dmitry Gutov, 2018/03/15
- [elpa] master fe07951 277/433: * mmm-myghty.el: New mode from Ben Bangert., Dmitry Gutov, 2018/03/15