* begin_src Indentation in org 9.4.4, 9.4.5 @ 2021-05-07 21:01 Nathaniel W Griswold 2021-05-07 21:03 ` Nathaniel W Griswold 0 siblings, 1 reply; 10+ messages in thread From: Nathaniel W Griswold @ 2021-05-07 21:01 UTC (permalink / raw) To: emacs-orgmode If i launch emacs with emacs -Q /tmp/blah.org M-x org-insert-structure-template<RET>s<RET>sh<RET>echo hi<RET>echo hi<RET> It looks like this: omw -- #+begin_src sh echo hi echo hi #+end_src -- Is this supposed to be the default behavior or am i doing something wrong? Nate ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: begin_src Indentation in org 9.4.4, 9.4.5 2021-05-07 21:01 begin_src Indentation in org 9.4.4, 9.4.5 Nathaniel W Griswold @ 2021-05-07 21:03 ` Nathaniel W Griswold 2021-05-07 22:14 ` Nathaniel W Griswold 0 siblings, 1 reply; 10+ messages in thread From: Nathaniel W Griswold @ 2021-05-07 21:03 UTC (permalink / raw) To: emacs-orgmode I messed up the paste, it's supposed to be: -- #+begin_src sh echo hi echo hi #+end_src -- > On May 7, 2021, at 4:01 PM, Nathaniel W Griswold <nate@manicmind.earth> wrote: > > If i launch emacs with emacs -Q /tmp/blah.org > > M-x org-insert-structure-template<RET>s<RET>sh<RET>echo hi<RET>echo hi<RET> > > It looks like this: > > omw > > -- > #+begin_src sh > echo hi > echo hi > > #+end_src > -- > > Is this supposed to be the default behavior or am i doing something wrong? > > Nate ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: begin_src Indentation in org 9.4.4, 9.4.5 2021-05-07 21:03 ` Nathaniel W Griswold @ 2021-05-07 22:14 ` Nathaniel W Griswold 2021-05-08 2:22 ` Ihor Radchenko 0 siblings, 1 reply; 10+ messages in thread From: Nathaniel W Griswold @ 2021-05-07 22:14 UTC (permalink / raw) To: emacs-orgmode Sorry i think i scared my email client. I looked at my raw message and some wacky stuff got inserted. I'm rewriting the original message here: I am wondering if other people experience odd formatting when doing the following in org 9.4.4 and org 9.4.5: # emacs -Q /tmp/blah.org M-x org-insert-structure-template<RET>s<RET>sh<RET>echo hi<RET>echo hi<RET> The formatting i get looks strange: #+begin_src sh echo hi echo hi #+end_src Thank you > On May 7, 2021, at 4:03 PM, Nathaniel W Griswold <nate@manicmind.earth> wrote: > > I messed up the paste, it's supposed to be: > > -- > #+begin_src sh > echo hi > echo hi > > #+end_src > -- > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: begin_src Indentation in org 9.4.4, 9.4.5 2021-05-07 22:14 ` Nathaniel W Griswold @ 2021-05-08 2:22 ` Ihor Radchenko 2021-05-15 11:50 ` Bastien 0 siblings, 1 reply; 10+ messages in thread From: Ihor Radchenko @ 2021-05-08 2:22 UTC (permalink / raw) To: Nathaniel W Griswold; +Cc: emacs-orgmode Nathaniel W Griswold <nate@manicmind.earth> writes: > The formatting i get looks strange: > > #+begin_src sh > echo hi > echo hi > #+end_src Confirmed on master. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: begin_src Indentation in org 9.4.4, 9.4.5 2021-05-08 2:22 ` Ihor Radchenko @ 2021-05-15 11:50 ` Bastien 2021-05-15 11:51 ` Nathaniel W Griswold 2021-05-17 9:02 ` Sébastien Miquel 0 siblings, 2 replies; 10+ messages in thread From: Bastien @ 2021-05-15 11:50 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Nathaniel W Griswold, emacs-orgmode Hi Nathaniel, Ihor Radchenko <yantar92@gmail.com> writes: > Nathaniel W Griswold <nate@manicmind.earth> writes: >> The formatting i get looks strange: >> >> #+begin_src sh >> echo hi >> echo hi >> #+end_src > > Confirmed on master. Fixed in the maint branch, thanks. -- Bastien ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: begin_src Indentation in org 9.4.4, 9.4.5 2021-05-15 11:50 ` Bastien @ 2021-05-15 11:51 ` Nathaniel W Griswold 2021-05-17 9:02 ` Sébastien Miquel 1 sibling, 0 replies; 10+ messages in thread From: Nathaniel W Griswold @ 2021-05-15 11:51 UTC (permalink / raw) To: Bastien; +Cc: emacs-orgmode, Ihor Radchenko !!! Great! > On May 15, 2021, at 6:50 AM, Bastien <bzg@gnu.org> wrote: > > Hi Nathaniel, > > Ihor Radchenko <yantar92@gmail.com> writes: > >> Nathaniel W Griswold <nate@manicmind.earth> writes: >>> The formatting i get looks strange: >>> >>> #+begin_src sh >>> echo hi >>> echo hi >>> #+end_src >> >> Confirmed on master. > > Fixed in the maint branch, thanks. > > -- > Bastien ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: begin_src Indentation in org 9.4.4, 9.4.5 2021-05-15 11:50 ` Bastien 2021-05-15 11:51 ` Nathaniel W Griswold @ 2021-05-17 9:02 ` Sébastien Miquel 2021-05-18 6:37 ` Bastien 1 sibling, 1 reply; 10+ messages in thread From: Sébastien Miquel @ 2021-05-17 9:02 UTC (permalink / raw) To: Bastien; +Cc: emacs-orgmode Hi Bastien, The commit `bfda3cc7df31fa79222efb4c190618c3c85a3d04` breaks automatic (electric) indentation in src blocks for all configurations. Here's what happens with the original issue. When you press `RET` after the first ~hello hi~, the result is that the first line is indented by two spaces, and the second (where the point is) isn't. - since ~electric-indent-mode~ is on, ~org-return~ is called with `indent` set to `t`. - Since ~org-src-tab-acts-natively~ is `t`, indentation is done by calling `tab` in a src edit buffer, which by itself, does nothing. - The observed indentation comes from ~org-src--contents-for-write-back~. Since ~org-src--content-indentation~ is 2 and ~org-src--preserve-indentation~ is ~nil~, this functions further indents each *non blank* line by 2. At this point, the first line is indented, cursor is at bol. Note that you cannot indent your current empty line with `tab`. You can either indent it manually, or call ~org-edit-special~. When you write your second line, then press `RET`, ~org-src--contents-for-write-back~ will add an additional two spaces, producing the reported result. I think a reasonable fix is to have ~org-src--contents-for-write-back~ also indent blank lines. To do this, you need only remove following line from its definition. : (unless (eolp) ;ignore blank lines With this done and `bfda3cc7df31fa79222efb4c190618c3c85a3d04` reverted, the original issue is fixed, and the behaviour is better: when you press `RET` to enter a newline in a src block, it is automatically indented. The downside is that, unless ~org-src--preserve-indentation~ is `t`, when editing a src block, every empty line will be indented with spaces (according to ~org-edit-src-content-indentation~ + the indentation of the #+begin_src line). I think this is reasonable, but perhaps some might disagree. Regards, -- Sébastien Miquel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: begin_src Indentation in org 9.4.4, 9.4.5 2021-05-17 9:02 ` Sébastien Miquel @ 2021-05-18 6:37 ` Bastien 2021-05-18 13:43 ` Sébastien Miquel 0 siblings, 1 reply; 10+ messages in thread From: Bastien @ 2021-05-18 6:37 UTC (permalink / raw) To: Sébastien Miquel; +Cc: emacs-orgmode Hi Sébastien, Sébastien Miquel <sebastien.miquel@posteo.eu> writes: > The commit `bfda3cc7df31fa79222efb4c190618c3c85a3d04` breaks automatic > (electric) indentation in src blocks for all configurations. Yes, this was intentional: there are many variables interfering in this area, and preventing electric indentation for src code blocks seemed acceptable to me. Before I revert the commit and try your suggestion, can you share a patch that add both changes (the revert and your fix) manually so I can test it? If this fixes the original issue while preserving electric indentation, I'm okay with it. Also, do you want to become the maintainer for org-src.el? We need more people taking charge of specific areas in Org's code. Thanks, -- Bastien ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: begin_src Indentation in org 9.4.4, 9.4.5 2021-05-18 6:37 ` Bastien @ 2021-05-18 13:43 ` Sébastien Miquel 2021-05-18 14:08 ` Bastien 0 siblings, 1 reply; 10+ messages in thread From: Sébastien Miquel @ 2021-05-18 13:43 UTC (permalink / raw) To: Bastien; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 710 bytes --] Hi Bastien, Bastien writes: > Before I revert the commit and try your suggestion, can you share a > patch that add both changes (the revert and your fix) manually so I > can test it? If this fixes the original issue while preserving > electric indentation, I'm okay with it. Here's such a patch. > Also, do you want to become the maintainer for org-src.el? We need > more people taking charge of specific areas in Org's code. I do intend to keep monitoring this list and help around for the foreseeable future, and I would certainly agree to whatever sort of maintainer position eventually, but I hold no particular interest (or deep understanding) in this specific file. Regards, -- Sébastien Miquel [-- Attachment #2: 0001-org.el-org-src-contents-for-write-back-Indent-blank-.patch --] [-- Type: text/x-patch, Size: 2585 bytes --] From 1be7fa790e68d1fc2d198eee81c0d3bb72156d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Miquel?= <sebastien.miquel@posteo.eu> Date: Tue, 18 May 2021 14:39:33 +0200 Subject: [PATCH] org.el (org-src--contents-for-write-back): Indent blank lines * lisp/org.el (org-src--contents-for-write-back): Indent blank lines. * lisp/org-src.el (org-return): Revert part of commit bfda3cc7df. --- lisp/org-src.el | 9 ++++----- lisp/org.el | 6 +----- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lisp/org-src.el b/lisp/org-src.el index 5604e6568..79f002e56 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -453,15 +453,14 @@ Assume point is in the corresponding edit buffer." (insert (org-no-properties contents)) (goto-char (point-min)) (when (functionp write-back) (save-excursion (funcall write-back))) - ;; Add INDENTATION-OFFSET to every non-empty line in buffer, + ;; Add INDENTATION-OFFSET to every line in buffer, ;; unless indentation is meant to be preserved. (when (> indentation-offset 0) (while (not (eobp)) (skip-chars-forward " \t") - (unless (eolp) ;ignore blank lines - (let ((i (current-column))) - (delete-region (line-beginning-position) (point)) - (indent-to (+ i indentation-offset)))) + (let ((i (current-column))) + (delete-region (line-beginning-position) (point)) + (indent-to (+ i indentation-offset))) (forward-line)))))) (defun org-src--edit-element diff --git a/lisp/org.el b/lisp/org.el index ae09f3e99..0add9bc2e 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -18018,10 +18018,6 @@ object (e.g., within a comment). In these case, you need to use (delete-and-extract-region (point) (line-end-position)))) (org--newline indent arg interactive) (save-excursion (insert trailing-data)))) - ;; FIXME: In a source block, don't try to indent as it may result - ;; in weird results due to `electric-indent-mode' being `t'. - ((eq element-type 'src-block) - (org--newline nil nil nil)) (t ;; Do not auto-fill when point is in an Org property drawer. (let ((auto-fill-function (and (not (org-at-property-p)) @@ -19167,7 +19163,7 @@ Also align node properties according to `org-property-format'." (line-beginning-position 2)))) nil) ((and (eq type 'src-block) - org-src-tab-acts-natively + org-src-tab-acts-natively (> (line-beginning-position) (org-element-property :post-affiliated element)) (< (line-beginning-position) -- 2.31.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: begin_src Indentation in org 9.4.4, 9.4.5 2021-05-18 13:43 ` Sébastien Miquel @ 2021-05-18 14:08 ` Bastien 0 siblings, 0 replies; 10+ messages in thread From: Bastien @ 2021-05-18 14:08 UTC (permalink / raw) To: Sébastien Miquel; +Cc: emacs-orgmode Hi Sébastien, Sébastien Miquel <sebastien.miquel@posteo.eu> writes: > Here's such a patch. Applied, thanks a lot. >> Also, do you want to become the maintainer for org-src.el? We need >> more people taking charge of specific areas in Org's code. > I do intend to keep monitoring this list and help around for the > foreseeable future, and I would certainly agree to whatever sort of > maintainer position eventually, but I hold no particular interest (or > deep understanding) in this specific file. Sure, I understand. Thanks for your time in helping with this! Best, -- Bastien ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-05-18 14:08 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-05-07 21:01 begin_src Indentation in org 9.4.4, 9.4.5 Nathaniel W Griswold 2021-05-07 21:03 ` Nathaniel W Griswold 2021-05-07 22:14 ` Nathaniel W Griswold 2021-05-08 2:22 ` Ihor Radchenko 2021-05-15 11:50 ` Bastien 2021-05-15 11:51 ` Nathaniel W Griswold 2021-05-17 9:02 ` Sébastien Miquel 2021-05-18 6:37 ` Bastien 2021-05-18 13:43 ` Sébastien Miquel 2021-05-18 14:08 ` Bastien
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).