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

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

[elpa] externals/objed c07df28 088/166: Rewrite align section getter fun


From: Clemens Radermacher
Subject: [elpa] externals/objed c07df28 088/166: Rewrite align section getter function
Date: Sun, 29 Dec 2019 08:21:06 -0500 (EST)

branch: externals/objed
commit c07df28b6d75c44ac2fce070d6b68bfe52c03c8f
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>

    Rewrite align section getter function
---
 objed-objects.el                             | 35 ++++++++++++++++++----------
 test/tests/emacs-lisp-mode/expansion/block_2 |  2 +-
 2 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/objed-objects.el b/objed-objects.el
index 683e52c..0a02ad2 100644
--- a/objed-objects.el
+++ b/objed-objects.el
@@ -1554,19 +1554,30 @@ comments."
               (nth 4 sp))
       begin)))
 
-
-(defun objed--get-align-section ()
-  "Get region bounds of current align section."
+(defvar align-region-separate)
+(defvar align-mode-rules-list)
+(defvar align-rules-list)
+(defvar align-exclude-rules-list)
+(defvar align-mode-exclude-rules-list)
+(declare-function align-region "ext:align")
+(defun objed--get-align-sections ()
+  "Get region bounds of align sections."
   (require 'align)
-  (let ((olddef (symbol-function 'align-region)))
-    (cl-letf (((symbol-function 'align-region)
-               (lambda (beg end &rest args)
-                 (if (and beg end)
-                     (throw 'region (cons beg end))
-                   (apply olddef beg end
-                          args)))))
-      (catch 'region
-        (align nil nil)))))
+  (let ((separator
+         (or (if (and (symbolp align-region-separate)
+                      (boundp align-region-separate))
+                 (symbol-value align-region-separate)
+               align-region-separate)
+             'entire))
+        (regions ()))
+    (align-region nil nil separator
+                  (or align-mode-rules-list align-rules-list)
+                  (or align-mode-exclude-rules-list align-exclude-rules-list)
+                  (lambda (beg end mode)
+                    (when (consp mode)
+                      (push (cons beg end)
+                            regions))))
+    regions))
 
 
 ;; * Object definitions
diff --git a/test/tests/emacs-lisp-mode/expansion/block_2 
b/test/tests/emacs-lisp-mode/expansion/block_2
index accd044..48cb69b 100644
--- a/test/tests/emacs-lisp-mode/expansion/block_2
+++ b/test/tests/emacs-lisp-mode/expansion/block_2
@@ -17,6 +17,6 @@ h
 ;; More on same level
 
 ;; Some text
-<;; and |more text
+|<;; and more text
 >
 



reply via email to

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