branch: externals/objed
commit c07df28b6d75c44ac2fce070d6b68bfe52c03c8f
Author: Clemens Radermacher <[email protected]>
Commit: Clemens Radermacher <[email protected]>
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
>