From 9e141cd01b89192c3c5a26bf2ba6bee3be021c14 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 8 May 2018 15:36:42 +0200 Subject: [PATCH] lang/org: fix newline-and-indent behavior in src blocks --- modules/lang/org/autoload/org.el | 12 ++++++++++++ modules/lang/org/config.el | 3 +++ 2 files changed, 15 insertions(+) diff --git a/modules/lang/org/autoload/org.el b/modules/lang/org/autoload/org.el index df0bd69cc..3906c1521 100644 --- a/modules/lang/org/autoload/org.el +++ b/modules/lang/org/autoload/org.el @@ -348,3 +348,15 @@ with `org-cycle')." ;;;###autoload (defalias #'+org/toggle-fold #'+org|toggle-only-current-fold) + + +;; +;; Advice +;; + +;;;###autoload +(defun +org*return-indent-in-src-blocks () + "Try to mimic `newline-and-indent' with correct indentation in src blocks." + (when (org-in-src-block-p t) + (org-babel-do-in-edit-buffer + (call-interactively #'indent-for-tab-command)))) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 8ad0a5cea..709fc382a 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -258,6 +258,9 @@ between the two." (add-hook 'org-tab-first-hook #'+org|toggle-only-current-fold t) + ;; Fix newline-and-indent behavior in src blocks + (advice-add #'org-return-indent :after #'+org*return-indent-in-src-blocks) + (map! :map outline-mode-map :n "^" nil :n [backtab] nil