From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Davison Subject: outline-minor-mode and code editing / export Date: Sat, 06 Jun 2009 15:32:34 -0400 Message-ID: <87skidxinh.fsf@stats.ox.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MD1dG-00015G-0U for emacs-orgmode@gnu.org; Sat, 06 Jun 2009 15:32:46 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MD1dA-0000wA-8X for emacs-orgmode@gnu.org; Sat, 06 Jun 2009 15:32:44 -0400 Received: from [199.232.76.173] (port=52542 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MD1dA-0000vs-3J for emacs-orgmode@gnu.org; Sat, 06 Jun 2009 15:32:40 -0400 Received: from markov.stats.ox.ac.uk ([163.1.210.1]:60487) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MD1d9-0000BC-GS for emacs-orgmode@gnu.org; Sat, 06 Jun 2009 15:32:39 -0400 Received: from blackcap.stats.ox.ac.uk (blackcap.stats [163.1.210.5]) by markov.stats.ox.ac.uk (8.13.6/8.13.6) with ESMTP id n56JWa9v019008 for ; Sat, 6 Jun 2009 20:32:36 +0100 (BST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs org-mode mailing list 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 ""))))