Advertisement
Guest User

Show org-babel code block being evaluated

a guest
Sep 11th, 2014
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (defun org-babel-block-range ()
  2.   "Return the begin and end points of the current src block"
  3.   ;; based on org-babel-mark-block
  4.   (let ((head (org-babel-where-is-src-block-head)))
  5.     (when head
  6.       (save-excursion
  7.         (goto-char head)
  8.         (looking-at org-babel-src-block-regexp))
  9.       (cons (match-beginning 0) (match-end 0)))))
  10.  
  11. (defvar org-babel-evaluation-overlay nil)
  12. (defvar org-babel-evaluation-timer nil)
  13. (defun org-babel-remove-overlay ()
  14.   (when org-babel-evaluation-timer
  15.     (cancel-timer org-babel-evaluation-timer)
  16.     (setq org-babel-evaluation-timer nil))
  17.   (when org-babel-evaluation-overlay
  18.     (delete-overlay org-babel-evaluation-overlay)
  19.     (setq org-babel-evaluation-overlay nil)))
  20.  
  21. (defadvice org-babel-execute-src-block (around progress nil activate)
  22.   (unless org-babel-current-src-block-location ;; don't handle this yet
  23.     (let ((range (org-babel-block-range)))
  24.       (org-babel-remove-overlay)
  25.       (setq org-babel-evaluation-overlay
  26.             (make-overlay (car range) (cdr range) (current-buffer) nil nil))
  27.       (overlay-put org-babel-evaluation-overlay 'priority 2)
  28.       (overlay-put org-babel-evaluation-overlay 'face
  29.                    '(:background "yellow"))
  30.       (redisplay)
  31.       (unwind-protect ad-do-it
  32.         (setq org-babel-evaluation-timer (timer-create))
  33.         (timer-set-function org-babel-evaluation-timer
  34.                             'org-babel-remove-overlay)
  35.         (timer-set-time org-babel-evaluation-timer
  36.                         (time-add (current-time) (seconds-to-time 0.1)))
  37.         (timer-activate org-babel-evaluation-timer)))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement