[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master de643c9 409/433: Mode transition hooks
From: |
Dmitry Gutov |
Subject: |
[elpa] master de643c9 409/433: Mode transition hooks |
Date: |
Thu, 15 Mar 2018 19:44:45 -0400 (EDT) |
branch: master
commit de643c95339fb08b560b367db501dee8ef30be3f
Author: Adam Niederer <address@hidden>
Commit: Adam Niederer <address@hidden>
Mode transition hooks
Allows the user to set hooks to run when submodes are entered and left. Also
allows the user to specify hooks for specific mode-to-mode transitions.
An example below:
(setq mmm-js-mode-exit-hook (lambda () (message "Run when leaving js
mode")))
(setq mmm-js-mode-enter-hook (lambda () (message "Run when entering js
mode")))
(setq mmm-vue-mode-js-mode-hook (lambda () (message "Run when moving >From
vue to js")))
(setq mmm-js-mode-vue-mode-hook (lambda () (message "Run when moving >From
js to vue")))
---
mmm-region.el | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/mmm-region.el b/mmm-region.el
index 547b351..6567b31 100644
--- a/mmm-region.el
+++ b/mmm-region.el
@@ -545,10 +545,14 @@ different keymaps, syntax tables, local variables, etc.
for submodes."
(when (mmm-update-current-submode)
(mmm-save-changed-local-variables mmm-previous-submode
mmm-previous-overlay)
- (let ((mode (or mmm-current-submode mmm-primary-mode)))
- (mmm-update-mode-info mode)
- (mmm-set-local-variables mode mmm-current-overlay)
- (mmm-enable-font-lock mode))
+ (let ((new-mode (or mmm-current-submode mmm-primary-mode))
+ (old-mode (or mmm-previous-submode mmm-primary-mode)))
+ (mmm-run-constructed-hook old-mode new-mode)
+ (mmm-run-constructed-hook old-mode "exit")
+ (mmm-run-constructed-hook new-mode "enter")
+ (mmm-update-mode-info new-mode)
+ (mmm-set-local-variables new-mode mmm-current-overlay)
+ (mmm-enable-font-lock new-mode))
(mmm-set-mode-line)
(dolist (func (if mmm-current-overlay
(overlay-get mmm-current-overlay 'entry-hook)
- [elpa] master 70f115e 348/433: Update the TODO, (continued)
- [elpa] master 70f115e 348/433: Update the TODO, Dmitry Gutov, 2018/03/15
- [elpa] master 02a3248 394/433: Merge pull request #49 from namikister/css-mode, Dmitry Gutov, 2018/03/15
- [elpa] master 2995771 420/433: Update copyright dates again, Dmitry Gutov, 2018/03/15
- [elpa] master 3f771f7 419/433: Use cl-lib instead of cl, Dmitry Gutov, 2018/03/15
- [elpa] master 912f3bd 335/433: Use syntax-propertize-function set in submodes, Dmitry Gutov, 2018/03/15
- [elpa] master c9dea38 363/433: Update the FAQ, Dmitry Gutov, 2018/03/15
- [elpa] master 628e1dc 380/433: Merge pull request #31 from tom-tan/add-autoloads, Dmitry Gutov, 2018/03/15
- [elpa] master 01b5cd9 338/433: * mmm-apply-all: flush syntax cache, Dmitry Gutov, 2018/03/15
- [elpa] master e257808 413/433: Copy mmm-indent-line body into mmm-indent-narrowed, Dmitry Gutov, 2018/03/15
- [elpa] master 3895201 294/433: Merge pull request #3 from dgutov/shortcuts-fix, Dmitry Gutov, 2018/03/15
- [elpa] master de643c9 409/433: Mode transition hooks,
Dmitry Gutov <=
- [elpa] master 395317c 332/433: * mmm-make-region: Don't call mmm-save-changed-local-variables, or set the, Dmitry Gutov, 2018/03/15
- [elpa] master 38439a4 301/433: Reparse mmm-mode buffer when Emacs is idle, Dmitry Gutov, 2018/03/15
- [elpa] master c76b13e 418/433: Add some NEWS entries, Dmitry Gutov, 2018/03/15
- [elpa] master a4deb1b 432/433: Merge commit 'cb905bdc728fb3b5f9fdff8836d71b62bd717eab' from mmm-mode, Dmitry Gutov, 2018/03/15
- [elpa] master aeb1c33 430/433: Add 'packages/mmm-mode/' from commit '00c10a69c8c90178530219730ccea14ab634a74e', Dmitry Gutov, 2018/03/15