[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed f55b4c9 160/166: Add key definition helpers for o
From: |
Clemens Radermacher |
Subject: |
[elpa] externals/objed f55b4c9 160/166: Add key definition helpers for object keys |
Date: |
Sun, 29 Dec 2019 08:21:19 -0500 (EST) |
branch: externals/objed
commit f55b4c912ab231d97e419b0504df06a95ee6acfd
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>
Add key definition helpers for object keys
---
objed-objects.el | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/objed-objects.el b/objed-objects.el
index 9e31d2f..afd00de 100644
--- a/objed-objects.el
+++ b/objed-objects.el
@@ -445,6 +445,38 @@ defined."
(nreverse res))))))
+(defun objed--define-kpair (map key name)
+ (let ((cmd (objed--name2func name 'nomode)))
+ (define-key map key cmd)))
+
+(defun objed-define-global-object-keys (&rest kpairs)
+ "Define global object keys.
+
+KPAIRS are pairs of the key and the object name."
+ (let ((map (default-value 'objed-object-map)))
+ (while kpairs
+ (objed--define-kpair map (pop kpairs) (pop kpairs)))))
+
+(defun objed-define-local-object-keys (&rest kpairs)
+ "Define object keys locally for current buffer.
+
+This function is intended to be used inside mode hooks to create
+mode specific object bindings.
+
+KPAIRS are pairs of the key and the object name."
+ (unless (local-variable-p 'objed-map)
+ (setq-local objed-map
+ (make-composed-keymap nil (default-value 'objed-map))))
+ (unless (local-variable-p 'objed-object-map)
+ (setq-local objed-object-map
+ (make-composed-keymap nil (default-value 'objed-object-map))))
+ (while kpairs
+ (objed--define-kpair objed-object-map (pop kpairs) (pop kpairs)))
+ (let ((switchk (where-is-internal 'objed-object-map
+ (default-value 'objed-map) t)))
+ (define-key objed-map switchk objed-object-map)))
+
+
(defmacro objed--with-narrow-for-text (&rest body)
"Execute BODY narrowed to string or comment."
`(save-restriction
- [elpa] externals/objed 18eb298 161/166: Add objed-define-local-object-keys*, (continued)
- [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
- [elpa] externals/objed 5e600c6 163/166: Version bump, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 01f0621 166/166: Version bump, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 226fd50 149/166: Update README.asc, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed f55b4c9 160/166: Add key definition helpers for object keys,
Clemens Radermacher <=
- [elpa] externals/objed b683880 162/166: Fix init for region object without mark, Clemens Radermacher, 2019/12/29