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

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

[elpa] externals/embark 2211f9c2bc 2/2: Add bindings for several org src


From: ELPA Syncer
Subject: [elpa] externals/embark 2211f9c2bc 2/2: Add bindings for several org src-block actions
Date: Mon, 13 Mar 2023 15:57:44 -0400 (EDT)

branch: externals/embark
commit 2211f9c2bc12d979f3c1e69371e0658f727fd5ad
Author: Omar Antolín <omar.antolin@gmail.com>
Commit: Omar Antolín <omar.antolin@gmail.com>

    Add bindings for several org src-block actions
    
    In particular this fixes #613.
---
 embark-org.el | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/embark-org.el b/embark-org.el
index 16585c5ce3..a219bac8de 100644
--- a/embark-org.el
+++ b/embark-org.el
@@ -371,11 +371,24 @@ bound to i."
 
 ;;; Source blocks and babel calls
 
+(defun embark-org-copy-block-contents ()
+  "Save contents of source block at point to the `kill-ring'."
+  (interactive)
+  (when (org-in-src-block-p)
+    (let ((contents (nth 2 (org-src--contents-area (org-element-at-point)))))
+    (with-temp-buffer
+      (insert contents)
+      (org-do-remove-indentation)
+      (kill-new (buffer-substring (point-min) (point-max)))))))
+
 (defvar-keymap embark-org-src-block-map
   :doc "Keymap for actions on Org source blocks."
   :parent embark-general-map
   "RET" #'org-babel-execute-src-block
-  "c" #'org-babel-check-src-block
+  "SPC" #'org-babel-mark-block
+  "TAB" #'org-indent-block
+  "c" #'embark-org-copy-block-contents
+  "h" #'org-babel-check-src-block
   "k" #'org-babel-remove-result-one-or-many
   "p" #'org-babel-previous-src-block
   "n" #'org-babel-next-src-block
@@ -383,8 +396,19 @@ bound to i."
   "s" #'org-babel-switch-to-session
   "l" #'org-babel-load-in-session
   "'" #'org-edit-special
+  "/" #'org-babel-demarcate-block
   "N" #'org-narrow-to-block)
 
+(cl-defun embark-org--at-block-head (&rest rest &key run &allow-other-keys)
+  "Save excursion and RUN the action at the head of the current block.
+Applies RUN to the REST of the arguments."
+  (save-excursion
+    (org-babel-goto-src-block-head)
+    (apply run rest)))
+
+(cl-pushnew #'embark-org--at-block-head
+            (alist-get 'org-indent-block embark-around-action-hooks))
+
 (dolist (motion '(org-babel-next-src-block org-babel-previous-src-block))
   (add-to-list 'embark-repeat-actions motion))
 



reply via email to

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