[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master b171ba0 324/433: Merge pull request #17 from dgutov/retro
From: |
Dmitry Gutov |
Subject: |
[elpa] master b171ba0 324/433: Merge pull request #17 from dgutov/retro |
Date: |
Thu, 15 Mar 2018 19:44:28 -0400 (EDT) |
branch: master
commit b171ba04e032168fa0c685bedda367bff82fd455
Merge: a0b1ecc e848ef1
Author: Steve Purcell <address@hidden>
Commit: Steve Purcell <address@hidden>
Merge pull request #17 from dgutov/retro
A few fixes for some my old commits
---
mmm-class.el | 3 +--
mmm-region.el | 46 ++++++++++++++++++++++++++--------------------
mmm-vars.el | 11 ++++++-----
3 files changed, 33 insertions(+), 27 deletions(-)
diff --git a/mmm-class.el b/mmm-class.el
index 05e1d6a..b3e48ed 100644
--- a/mmm-class.el
+++ b/mmm-class.el
@@ -112,8 +112,7 @@ error once all classes have been applied."
The classes come from mode/ext, `mmm-classes', `mmm-global-classes',
and interactive history."
(mmm-clear-overlays start stop 'strict)
- (let ((font-lock-mode))
- (mmm-apply-classes (mmm-get-all-classes t) :start start :stop stop))
+ (mmm-apply-classes (mmm-get-all-classes t) :start start :stop stop)
(mmm-update-submode-region)
(mmm-refontify-maybe start stop))
diff --git a/mmm-region.el b/mmm-region.el
index 7d94b75..69b62ea 100644
--- a/mmm-region.el
+++ b/mmm-region.el
@@ -565,9 +565,7 @@ is non-nil, don't quit if the info is already there."
(if region-entry
(setcdr region-entry region-vars)
(push (cons mode region-vars)
- mmm-region-saved-locals-defaults))
- ;; The temp buffer stuff above wipes fontification.
- (mmm-refontify-maybe))))
+ mmm-region-saved-locals-defaults)))))
;;}}}
;;{{{ Updating Hooks
@@ -771,23 +769,31 @@ of the REGIONS covers START to STOP."
(defun mmm-fontify-region (start stop &optional loudly)
"Fontify from START to STOP keeping track of submodes correctly."
- (when loudly
- (message "Fontifying %s with submode regions..." (buffer-name)))
- ;; Necessary to catch changes in font-lock cache state and position.
- (mmm-save-changed-local-variables
- mmm-current-overlay mmm-current-submode)
- ;; For some reason `font-lock-fontify-block' binds this to nil, thus
- ;; preventing `mmm-beginning-of-syntax' from doing The Right Thing.
- ;; I don't know why it does this, but let's undo it here.
- (let ((font-lock-beginning-of-syntax-function 'mmm-beginning-of-syntax))
- (mapc #'(lambda (elt)
- (when (get (car elt) 'mmm-font-lock-mode)
- (mmm-fontify-region-list (car elt) (cdr elt))))
- (mmm-regions-alist start stop)))
- ;; It's in `post-command-hook' too, but that's executed before font-lock,
- ;; so the latter messes up local vars (such as line-indent-function)
- ;; until after the next command.
- (mmm-update-submode-region)
+ (let ((saved-mode mmm-current-submode)
+ (saved-pos (and mmm-current-overlay
+ (overlay-start mmm-current-overlay))))
+ (unwind-protect
+ (progn
+ (when loudly
+ (message "Fontifying %s with submode regions..." (buffer-name)))
+ ;; Necessary to catch changes in font-lock cache state and position.
+ (mmm-save-changed-local-variables
+ mmm-current-overlay mmm-current-submode)
+ ;; For some reason `font-lock-fontify-block' binds this to nil, thus
+ ;; preventing `mmm-beginning-of-syntax' from doing The Right Thing.
+ ;; I don't know why it does this, but let's undo it here.
+ (let ((font-lock-beginning-of-syntax-function
'mmm-beginning-of-syntax))
+ (mapc #'(lambda (elt)
+ (when (get (car elt) 'mmm-font-lock-mode)
+ (mmm-fontify-region-list (car elt) (cdr elt))))
+ (mmm-regions-alist start stop))))
+ (save-excursion
+ ;; `post-command-hook' contains `mmm-update-submode-region',
+ ;; but jit-lock runs later, so we need to restore local vars now.
+ (goto-char (or saved-pos (point-min)))
+ (mmm-set-current-submode saved-mode)
+ ;; This looks for the current overlay at point to set region locals.
+ (mmm-set-local-variables saved-mode))))
(when loudly (message nil)))
(defun mmm-fontify-region-list (mode regions)
diff --git a/mmm-vars.el b/mmm-vars.el
index 6ce964b..35076d6 100644
--- a/mmm-vars.el
+++ b/mmm-vars.el
@@ -801,11 +801,12 @@ than it solves, but some modes require it.")
#'mmm-mode-idle-reparse (current-buffer))))
(defun mmm-mode-idle-reparse (buffer)
- (with-current-buffer buffer
- (when mmm-mode-buffer-dirty
- (mmm-apply-all)
- (setq mmm-mode-buffer-dirty nil)
- (setq mmm-mode-parse-timer nil))))
+ (when (buffer-live-p buffer)
+ (with-current-buffer buffer
+ (when mmm-mode-buffer-dirty
+ (mmm-apply-all)
+ (setq mmm-mode-buffer-dirty nil)
+ (setq mmm-mode-parse-timer nil)))))
;;}}}
- [elpa] master b571d27 236/433: * FAQ: Don't quote argument to `setq'. :-), (continued)
- [elpa] master b571d27 236/433: * FAQ: Don't quote argument to `setq'. :-), Dmitry Gutov, 2018/03/15
- [elpa] master cb27602 221/433: Corrected reference to `javascript' class to `html-js'., Dmitry Gutov, 2018/03/15
- [elpa] master 3c2f878 243/433: # Updated, Dmitry Gutov, 2018/03/15
- [elpa] master d6dc934 203/433: (mmm-here-doc-get-mode): Try each word individually first., Dmitry Gutov, 2018/03/15
- [elpa] master 9b857f5 255/433: Added Noweb documentation (Joe Kelsey), Dmitry Gutov, 2018/03/15
- [elpa] master 6485ce3 259/433: Fixed stupid bug, so autoloading will actually work, Dmitry Gutov, 2018/03/15
- [elpa] master d242111 258/433: *** empty log message ***, Dmitry Gutov, 2018/03/15
- [elpa] master c75f330 317/433: Merge pull request #15 from dgutov/master, Dmitry Gutov, 2018/03/15
- [elpa] master c1997e1 313/433: Revert unintended check-in of mmm-erb changes, Dmitry Gutov, 2018/03/15
- [elpa] master c42fcb2 286/433: Compatibility fix for mode line format of Emacs 23, Dmitry Gutov, 2018/03/15
- [elpa] master b171ba0 324/433: Merge pull request #17 from dgutov/retro,
Dmitry Gutov <=
- [elpa] master 53bd8b4 319/433: Remove duplicate entries, Dmitry Gutov, 2018/03/15
- [elpa] master 5f276a1 307/433: Update instructions and docstrings, Dmitry Gutov, 2018/03/15
- [elpa] master a0b1ecc 320/433: Merge pull request #16 from dgutov/c++-mode, Dmitry Gutov, 2018/03/15
- [elpa] master a5a24df 322/433: Fix the timer error: "Selecting deleted buffer", Dmitry Gutov, 2018/03/15
- [elpa] master 0b30852 244/433: * mmm-vars.el (mmm-c-derived-modes): Added php-mode., Dmitry Gutov, 2018/03/15
- [elpa] master 34c3a19 212/433: Updated mode preferences to check fboundp when regions are created., Dmitry Gutov, 2018/03/15
- [elpa] master 46185e0 232/433: Made C indentation style variables buffer-local., Dmitry Gutov, 2018/03/15
- [elpa] master fee1b52 211/433: Added file with Emacs-related macros from Alan Shutko., Dmitry Gutov, 2018/03/15
- [elpa] master 3c68c28 235/433: * mmm-sample.el (httpd-conf-perl): Added submode class from Rob, Dmitry Gutov, 2018/03/15
- [elpa] master c8cfb89 346/433: * mmm-noweb.el: Qualify the "doesn't work" statement., Dmitry Gutov, 2018/03/15