Function: org-babel-hide-result-toggle

org-babel-hide-result-toggle is an interactive and byte-compiled function defined in ob-core.el.gz.

Signature

(org-babel-hide-result-toggle &optional FORCE)

Documentation

Toggle the visibility of the current result.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-core.el.gz
(defun org-babel-hide-result-toggle (&optional force)
  "Toggle the visibility of the current result."
  (interactive)
  (save-excursion
    (beginning-of-line)
    (let ((case-fold-search t))
      (unless (re-search-forward org-babel-result-regexp nil t)
	(error "Not looking at a result line")))
    (let ((start (progn (beginning-of-line 2) (1- (point))))
	  (end (progn
		 (while (looking-at org-babel-multi-line-header-regexp)
		   (forward-line 1))
		 (goto-char (1- (org-babel-result-end)))
		 (point)))
	  ov)
      (if (memq t (mapcar (lambda (overlay)
			    (eq (overlay-get overlay 'invisible)
				'org-babel-hide-result))
			  (overlays-at start)))
	  (when (or (not force) (eq force 'off))
	    (mapc (lambda (ov)
		    (when (member ov org-babel-hide-result-overlays)
		      (setq org-babel-hide-result-overlays
			    (delq ov org-babel-hide-result-overlays)))
		    (when (eq (overlay-get ov 'invisible)
			      'org-babel-hide-result)
		      (delete-overlay ov)))
		  (overlays-at start)))
	(setq ov (make-overlay start end))
	(overlay-put ov 'invisible 'org-babel-hide-result)
	;; make the block accessible to isearch
	(overlay-put
	 ov 'isearch-open-invisible
	 (lambda (ov)
	   (when (member ov org-babel-hide-result-overlays)
	     (setq org-babel-hide-result-overlays
		   (delq ov org-babel-hide-result-overlays)))
	   (when (eq (overlay-get ov 'invisible)
		     'org-babel-hide-result)
	     (delete-overlay ov))))
	(push ov org-babel-hide-result-overlays)))))