From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sebastian Miele Subject: Re: [PATCH] Respect buffer-local value of `org-edit-src-content-indentation' Date: Wed, 20 Nov 2019 06:12:46 +0000 Message-ID: <874kyznkip.fsf@gmail.com> References: <87eezelxbq.fsf@gmail.com> <87eezdv7h2.fsf@alphapapa.net> <87v9so8b0v.fsf@gmail.com> <87y2wwr6ub.fsf@nicolasgoaziou.fr> <87tv7ksil2.fsf@gmail.com> <871ru49mlt.fsf@nicolasgoaziou.fr> Reply-To: sebastian.miele@gmail.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:41185) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXJEU-00023E-Jn for emacs-orgmode@gnu.org; Wed, 20 Nov 2019 01:12:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXJES-00007w-KI for emacs-orgmode@gnu.org; Wed, 20 Nov 2019 01:12:54 -0500 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:51573) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iXJER-0008VN-RP for emacs-orgmode@gnu.org; Wed, 20 Nov 2019 01:12:52 -0500 Received: by mail-wm1-x341.google.com with SMTP id q70so5681310wme.1 for ; Tue, 19 Nov 2019 22:12:50 -0800 (PST) In-reply-to: <871ru49mlt.fsf@nicolasgoaziou.fr> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Nicolas Goaziou Cc: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Hi Nicolas, Nicolas Goaziou writes: > Sebastian Miele writes: > >> The Org default of org-edit-src-content-indentation is 2. I like that >> value and leave it that way. Worg's root .dir-locals sets it to 0 >> buffer-locally in at least many Worg's Org files. Hence, when I edit an >> src block in a Worg file, the value of org-edit-src-content-indentation >> in the edit buffer is 2. But the correct value in that case is 0. > > Then I think we should do the same as what is done for, e.g., > `org-src--preserve-indentation`, i.e. store the initial value from > `org-src--edit-element', and use it in > `org-src--contents-for-write-back'. > > WDYT? That's perfectly fine with me. An updated patch is attached. Best wishes Sebastian --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=0001-Respect-buffer-local-value-of-org-edit-src-content-i.patch >From a8575e16e2496b2bdcddaaae2532f510a5b18908 Mon Sep 17 00:00:00 2001 From: Sebastian Miele Date: Wed, 9 Oct 2019 01:00:50 +0000 Subject: [PATCH] Respect buffer-local value of `org-edit-src-content-indentation' * lisp/org-src.el (org-src--content-indentation): Introduce permanently buffer-local variable for storing away the potentially buffer-local value of `org-edit-src-content-indentation' in the source buffer. (org-src--contents-for-write-back): Use `org-src--content-indentation' instead of `org-edit-src-content-indentation' in the edit buffer. (org-src--edit-element): Set `org-src--content-indentation' in editing buffer. For greater clarity and consistency, rename already existing let-bound variable `ind' to `block-ind'. * etc/ORG-NEWS: Add entry. --- etc/ORG-NEWS | 4 ++++ lisp/org-src.el | 15 ++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 283f32e0c..eab9e021b 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -434,6 +434,10 @@ leave unfolded subtrees unfolded. I.e. treat the whole file as if it was a subtree. *** Respect narrowing when agenda command is restricted to buffer +*** Respect buffer-local value of ~org-edit-src-content-indentation~ + +Use the potentially buffer-local value of `org-edit-src-content-indentation' +from the source buffer instead of that from the editing buffer. * Version 9.2 ** Incompatible changes diff --git a/lisp/org-src.el b/lisp/org-src.el index 9134d5b5d..418f3a662 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -258,6 +258,9 @@ issued in the language major mode buffer." (defvar-local org-src--block-indentation nil) (put 'org-src--block-indentation 'permanent-local t) +(defvar-local org-src--content-indentation nil) +(put 'org-src--content-indentation 'permanent-local t) + (defvar-local org-src--end-marker nil) (put 'org-src--end-marker 'permanent-local t) @@ -422,7 +425,7 @@ Assume point is in the corresponding edit buffer." (if org-src--preserve-indentation 0 (+ (or org-src--block-indentation 0) (if (memq org-src--source-type '(example-block src-block)) - org-edit-src-content-indentation + org-src--content-indentation 0)))) (use-tabs? (and (> org-src--tab-width 0) t)) (source-tab-width org-src--tab-width) @@ -484,9 +487,10 @@ Leave point in edit buffer." (source-file-name (buffer-file-name (buffer-base-buffer))) (source-tab-width (if indent-tabs-mode tab-width 0)) (type (org-element-type datum)) - (ind (org-with-wide-buffer - (goto-char (org-element-property :begin datum)) - (current-indentation))) + (block-ind (org-with-wide-buffer + (goto-char (org-element-property :begin datum)) + (current-indentation))) + (content-ind org-edit-src-content-indentation) (preserve-ind (and (memq type '(example-block src-block)) (or (org-element-property :preserve-indent datum) @@ -529,7 +533,8 @@ Leave point in edit buffer." (setq org-src--end-marker end) (setq org-src--remote remote) (setq org-src--source-type type) - (setq org-src--block-indentation ind) + (setq org-src--block-indentation block-ind) + (setq org-src--content-indentation content-ind) (setq org-src--preserve-indentation preserve-ind) (setq org-src--overlay overlay) (setq org-src--allow-write-back write-back) -- 2.24.0 --=-=-=--