View difference between Paste ID: NJg8QVdq and c8fqbBZ6
SHOW: | | - or go back to the newest paste.
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.5)))
36+
                        (time-add (current-time) (seconds-to-time 0.1)))
37
        (timer-activate org-babel-evaluation-timer)))))