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

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

[elpa] master e257808 413/433: Copy mmm-indent-line body into mmm-indent


From: Dmitry Gutov
Subject: [elpa] master e257808 413/433: Copy mmm-indent-line body into mmm-indent-narrowed
Date: Thu, 15 Mar 2018 19:44:46 -0400 (EDT)

branch: master
commit e257808a95256fe1a65ddc5bb7cacd7c4d48249b
Author: Adam <address@hidden>
Commit: Adam <address@hidden>

    Copy mmm-indent-line body into mmm-indent-narrowed
---
 mmm-region.el | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/mmm-region.el b/mmm-region.el
index 5b6bec1..a0e5de5 100644
--- a/mmm-region.el
+++ b/mmm-region.el
@@ -873,15 +873,25 @@ indentation function. See `mmm-indent-line' as the 
starting point.")
 
 (defun mmm-indent-line-narrowed ()
   "An indent function which works on modes which don't play well with mmm-mode.
-Calls `mmm-indent-line' internally, but narrows the buffer before indenting to
+Works like `mmm-indent-line' , but narrows the buffer before indenting to
 appease modes which rely on constructs like (point-min) to indent."
   (interactive)
-  (if mmm-current-overlay
-      (save-restriction
-        (narrow-to-region (overlay-start mmm-current-overlay)
-                          (overlay-end mmm-current-overlay))
-        (mmm-indent-line))
-    (mmm-indent-line)))
+  (funcall
+   (save-excursion
+     (back-to-indentation)
+     (mmm-update-submode-region)
+     (let ((indent-function (get
+                             (if (and mmm-current-overlay
+                                      (> (overlay-end mmm-current-overlay) 
(point)))
+                                 mmm-current-submode
+                               mmm-primary-mode)
+                             'mmm-indent-line-function)))
+       (if mmm-current-overlay
+           (save-restriction
+             (narrow-to-region (overlay-start mmm-current-overlay)
+                               (overlay-end mmm-current-overlay))
+             indent-function)
+         indent-function)))))
 
 (defun mmm-indent-line ()
   (interactive)



reply via email to

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