summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Davison <davison@stats.ox.ac.uk>2010-09-21 15:02:22 +0100
committerDan Davison <davison@stats.ox.ac.uk>2010-09-21 15:02:33 +0100
commitca4391f9b5b4b12b761ddd5cb9800a21897d0086 (patch)
tree309a483c211eeba5021abad44a7e895b459f85a4
parent92249cffb0c899e51e2de0c5b3f252f186347bbf (diff)
downloadorg-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.el18
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)