Re: begin_src Indentation in org 9.4.4, 9.4.5

2021-05-18 Thread Bastien
Hi Sébastien,

Sébastien Miquel  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



Re: begin_src Indentation in org 9.4.4, 9.4.5

2021-05-18 Thread Sébastien Miquel

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

>From 1be7fa790e68d1fc2d198eee81c0d3bb72156d08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Miquel?= 
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



Re: begin_src Indentation in org 9.4.4, 9.4.5

2021-05-17 Thread Bastien
Hi Sébastien,

Sébastien Miquel  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



Re: begin_src Indentation in org 9.4.4, 9.4.5

2021-05-17 Thread Sébastien Miquel

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




Re: begin_src Indentation in org 9.4.4, 9.4.5

2021-05-15 Thread Nathaniel W Griswold
!!!

Great!

> On May 15, 2021, at 6:50 AM, Bastien  wrote:
> 
> Hi Nathaniel,
> 
> Ihor Radchenko  writes:
> 
>> Nathaniel W Griswold  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




Re: begin_src Indentation in org 9.4.4, 9.4.5

2021-05-15 Thread Bastien
Hi Nathaniel,

Ihor Radchenko  writes:

> Nathaniel W Griswold  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



Re: begin_src Indentation in org 9.4.4, 9.4.5

2021-05-07 Thread Ihor Radchenko
Nathaniel W Griswold  writes:
> The formatting i get looks strange:
>
> #+begin_src sh
> echo hi
>   echo hi
> #+end_src

Confirmed on master.



Re: begin_src Indentation in org 9.4.4, 9.4.5

2021-05-07 Thread Nathaniel W Griswold
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-templatesshecho hiecho hi



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  wrote:
> 
> I messed up the paste, it's supposed to be:
> 
> --
> #+begin_src sh
>echo hi
>  echo hi
> 
> #+end_src
> --
> 




Re: begin_src Indentation in org 9.4.4, 9.4.5

2021-05-07 Thread Nathaniel W Griswold
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  wrote:
> 
> If i launch emacs with emacs -Q /tmp/blah.org
> 
> M-x org-insert-structure-templatesshecho hiecho hi
> 
> 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




begin_src Indentation in org 9.4.4, 9.4.5

2021-05-07 Thread Nathaniel W Griswold
If i launch emacs with emacs -Q /tmp/blah.org

M-x org-insert-structure-templatesshecho hiecho hi

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