summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2011-10-29 16:08:27 +0200
committerBastien Guerry <bzg@altern.org>2011-10-30 02:58:31 +0200
commitd3370f160899c542dad69f492fde7fcffe61a29e (patch)
treed42b4747ea3a52d6d569346d59cc853bf51dd5cd
parent21eef3b137d1d8364035252117d9bce12dafb4be (diff)
downloadorg-mode-d3370f160899c542dad69f492fde7fcffe61a29e.tar.gz
org.el: Unfold invisible region at point or right before point when editing.
* org.el (org-self-insert-command): Unfold invisible region at point or right before point when editing. Thanks to Suvayu Ali for discussing this.
-rw-r--r--lisp/org.el17
1 files changed, 17 insertions, 0 deletions
diff --git a/lisp/org.el b/lisp/org.el
index fe45cf7..8676c80 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -17393,6 +17393,23 @@ hook. The default setting is `org-speed-command-default-hook'."
If the cursor is in a table looking at whitespace, the whitespace is
overwritten, and the table is not marked as requiring realignment."
(interactive "p")
+ (let ((invisible-at-point
+ (car (get-char-property-and-overlay (point) 'invisible)))
+ (invisible-before-point
+ (car (get-char-property-and-overlay (1- (point)) 'invisible))))
+ (when (or (eq invisible-at-point 'outline)
+ (eq invisible-at-point 'org-hide-block)
+ (eq invisible-before-point 'outline)
+ (eq invisible-before-point 'org-hide-block))
+ (if (or (eq invisible-before-point 'outline)
+ (eq invisible-before-point 'org-hide-block))
+ (goto-char (previous-overlay-change (point))))
+ (org-cycle)
+ (if (or (eq invisible-before-point 'outline)
+ (eq invisible-before-point 'org-hide-block))
+ (forward-char 1))
+ (message "Unfolding invisible region around point before editing")
+ (sit-for 1)))
(cond
((and org-use-speed-commands
(setq org-speed-command