[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed fdea65d 151/166: Adding `objed-switch-alist` #57
From: |
Clemens Radermacher |
Subject: |
[elpa] externals/objed fdea65d 151/166: Adding `objed-switch-alist` #57 |
Date: |
Sun, 29 Dec 2019 08:21:18 -0500 (EST) |
branch: externals/objed
commit fdea65d558ed6f0ef204b13ccfbf48189061937d
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>
Adding `objed-switch-alist` #57
---
objed.el | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/objed.el b/objed.el
index d11ff74..5bfe8e3 100644
--- a/objed.el
+++ b/objed.el
@@ -250,6 +250,21 @@ The function should return nil if objed should not
initialize."
:value-type (choice sexp
(repeat sexp))))
+(defcustom objed-switch-alist '((t . objed-switch-goto-beg))
+ "Alist mapping objects to region functions.
+
+When switching to an object interactively using its object
+command, any mapped function in this alist gets called. The
+function receives the beginning and end position of object as
+arguments.
+
+This can be used to execute any additional actions when switching
+to an object like for example indenting the object. The mapping
+for t acts as the default to use when no other mapping for
+object exists."
+ :type '(alist :key-type sexp
+ :value-type function))
+
(defcustom objed-states-max 20
"Maximal number of states to remember.
@@ -525,6 +540,12 @@ object as an argument."
Don't modify this list manually, use `objed-define-dispatch'.")
+(defun objed-switch-goto-beg (beg _end)
+ "Move to BEG.
+
+Used as default for `objed-switch-alist'."
+ (goto-char beg))
+
(defun objed--object-dispatch (name)
"Dispatch according to object NAME.
@@ -543,7 +564,11 @@ update to given object."
(if objed--buffer
(objed--switch-to name)
(objed--init name))
- (goto-char (objed--beg))))))
+ (when objed--object
+ (let ((switcher (or (assq name objed-switch-alist)
+ (assq t objed-switch-alist))))
+ (when switcher
+ (funcall (cdr switcher) (objed--beg) (objed--end)))))))))
(defun objed--switch-to-object-for-cmd (cmd)
- [elpa] externals/objed 9267f38 125/166: Improve open line command, (continued)
- [elpa] externals/objed 9267f38 125/166: Improve open line command, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed cab7cee 130/166: Update hl init, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 7374a35 128/166: Improve sexp fallback, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 42a553e 139/166: Don't override M-o binding, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 4d1a445 141/166: Add public object bounds functions, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed b6b7c3f 144/166: Disable during a company completion, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 70cf23e 145/166: Merge pull request #51 from flatwhatson/fix-company, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 2a06126 143/166: Add functions to map over objects, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed fea1148 148/166: Fixes #54, identifier movement for symbols with regex chars, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed cc46438 146/166: Syntactic changes, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed fdea65d 151/166: Adding `objed-switch-alist` #57,
Clemens Radermacher <=
- [elpa] externals/objed c3cd6ab 150/166: Merge pull request #55 from r-darwish/patch-1, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed e079a76 152/166: Add objed-init-hook #57, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed a5684df 156/166: Add objed-switch-functions (#57), Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 18eb298 161/166: Add objed-define-local-object-keys*, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 878b5eb 154/166: Don't use obsolete var names, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 5c4ac71 159/166: Improve `objed-define-object` docstring, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed e5648b4 165/166: Ensure minibuffer commands reset even without objed-mode, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed ccc7bc7 164/166: Describe new object binding helpers, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 4a954dc 157/166: Update docstring, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed be54bfa 155/166: Simplify optional dependency loading (fix #56), Clemens Radermacher, 2019/12/29