In turn on outline-minor-mode in the language major modes that I use, so that code starts up folded, via a call to org-content that is made in my major-mode hook. I'm finding that this has two undesirable consequences for org-mode, as follows. I have also described a possible solution, as implemented by the patch at the end.
1. The code appears folded on HTML export solution: add this line to org-export-format-source-code-or-example (if (fboundp 'show-all) (show-all)) 2. org-edit-src-save does not remember the visibility state, so C-x C-s causes a jump to a different visibility state solution: save the value of org-cycle-global-status and, when the edit buffer is re-entered, call one of {org-overview, org-content,show-all} accordingly Dan p.s. Carsten: the first hunk in the second diff (org.el) refers to a patch that I submitted a few days ago and which you said had been applied. http://article.gmane.org/gmane.emacs.orgmode/14154 However, I believe it is not in the current git. Apologies if I have got (git) confused, but if not I do believe there is still a need for it or an equivalent solution: without this change I go to end of edit buffer, hit return a few times, and then C-x C-s fails (leaves me in org buffer). diff --git a/lisp/org-exp.el b/lisp/org-exp.el index 0dcd956..5f0ad88 100644 --- a/lisp/org-exp.el +++ b/lisp/org-exp.el @@ -2215,7 +2215,6 @@ INDENT was the original indentation of the block." (if (functionp mode) (funcall mode) (fundamental-mode)) - (if (fboundp 'show-all) (show-all)) (font-lock-fontify-buffer) (set-buffer-modified-p nil) (org-export-htmlize-region-for-paste diff --git a/lisp/org.el b/lisp/org.el index d124b1a..1eb5e74 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -6875,9 +6875,7 @@ the language, a switch telling of the content should be in a single line." code) (goto-char (point-min)) (if (looking-at "[ \t\n]*\n") (replace-match "")) - (when (re-search-forward "\n[ \t\n]*\\'" nil t) - (replace-match "") - (setq line (min line (org-current-line)))) + (if (re-search-forward "\n[ \t\n]*\\'" nil t) (replace-match "")) (when (org-bound-and-true-p org-edit-src-force-single-line) (goto-char (point-min)) (while (re-search-forward "\n" nil t) @@ -6916,18 +6914,11 @@ the language, a switch telling of the content should be in a single line." (defun org-edit-src-save () "Save parent buffer with current state source-code buffer." (interactive) - (let ((p (point)) (m (mark)) - (visibility org-cycle-global-status) msg) + (let ((p (point)) (m (mark)) msg) (org-edit-src-exit) (save-buffer) (setq msg (current-message)) (org-edit-src-code) - (when visibility - (setq org-cycle-global-status visibility) - (cond - ((equal org-cycle-global-status 'overview) (org-overview)) - ((equal org-cycle-global-status 'contents) (org-content)) - ((equal org-cycle-global-status 'all) (show-all)))) (push-mark m 'nomessage) (goto-char (min p (point-max))) (message (or msg "")))) _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode