diff options
author | Dan Davison <davison@stats.ox.ac.uk> | 2010-09-21 15:02:22 +0100 |
---|---|---|
committer | Dan Davison <davison@stats.ox.ac.uk> | 2010-09-21 15:02:33 +0100 |
commit | ca4391f9b5b4b12b761ddd5cb9800a21897d0086 (patch) | |
tree | 309a483c211eeba5021abad44a7e895b459f85a4 | |
parent | 92249cffb0c899e51e2de0c5b3f252f186347bbf (diff) | |
download | org-mode-ca4391f9b5b4b12b761ddd5cb9800a21897d0086.tar.gz |
Provide control over stripping of leading/trailing blank lines from code blocks
* org-src.el (org-src-strip-leading-and-trailing-blank-lines):
New variable allowing prevention of automatic stripping of
leading and trailing blank lines when exiting edit buffer.
(org-edit-src-exit): Respect value of
`org-src-strip-leading-and-trailing-blank-lines'
(org-src-native-tab-command-maybe): Bind
`org-src-strip-leading-and-trailing-blank-lines' to nil during
this function.
-rw-r--r-- | lisp/org-src.el | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/lisp/org-src.el b/lisp/org-src.el index 1e955cf..a368d80 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -109,6 +109,10 @@ editing it with \\[org-edit-src-code]. Has no effect if :group 'org-edit-structure :type 'integer) +(defvar org-src-strip-leading-and-trailing-blank-lines nil + "If non-nil, blank lines are removed when exiting the code edit +buffer.") + (defcustom org-edit-src-persistent-message t "Non-nil means show persistent exit help message while editing src examples. The message is shown in the header-line, which will be created in the @@ -580,11 +584,12 @@ the language, a switch telling if the content should be in a single line." (delta 0) code line col indent) (when allow-write-back-p (unless preserve-indentation (untabify (point-min) (point-max))) - (save-excursion - (goto-char (point-min)) - (if (looking-at "[ \t\n]*\n") (replace-match "")) - (unless macro - (if (re-search-forward "\n[ \t\n]*\\'" nil t) (replace-match ""))))) + (if org-src-strip-leading-and-trailing-blank-lines + (save-excursion + (goto-char (point-min)) + (if (looking-at "[ \t\n]*\n") (replace-match "")) + (unless macro + (if (re-search-forward "\n[ \t\n]*\\'" nil t) (replace-match "")))))) (setq line (if (org-bound-and-true-p org-edit-src-force-single-line) 1 (org-current-line)) @@ -739,7 +744,8 @@ issued in the language major mode buffer.") Alter code block according to effect of TAB in the language major mode." (and org-src-tab-acts-natively - (org-babel-do-key-sequence-in-edit-buffer (kbd "TAB")))) + (let ((org-src-strip-leading-and-trailing-blank-lines nil)) + (org-babel-do-key-sequence-in-edit-buffer (kbd "TAB"))))) (add-hook 'org-tab-first-hook 'org-src-native-tab-command-maybe) |