emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [Patch] don't add indent for empty line when exiting, a code edit
@ 2014-03-11  0:22 Arun Persaud
  2014-03-12 18:08 ` Bastien
  0 siblings, 1 reply; 12+ messages in thread
From: Arun Persaud @ 2014-03-11  0:22 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 415 bytes --]

Hi

I started using org babel for python, but when using C-c ' I always
ended up with white space added to the empty lines in the source code
when returning into the org buffer. This especially shows up
(setq-default show-trailing-whitespace t).

I tried to fix this in org. It seems to work over here, but my elisp as
well as my understanding of org-mode is not perfect ;) Let me know if it
needs more work.

Arun

[-- Attachment #2: 0001-lisp-org-src.el-don-t-add-indent-for-empty-line-when.patch --]
[-- Type: text/x-patch, Size: 1223 bytes --]

From e393fed9dbb132fdefff66d304f67f7def643140 Mon Sep 17 00:00:00 2001
From: Arun Persaud <arun@nubati.net>
Date: Mon, 10 Mar 2014 17:09:12 -0700
Subject: [PATCH] lisp/org-src.el: don't add indent for empty line when exiting
 a code edit

Using C-c ' to edit code blocks adds an indent to all lines when exiting from
the code edit. This leaves trailing whitespace in the buffer, which can be especially
annoying when using show-trailing-whitespace.
---
 lisp/org-src.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lisp/org-src.el b/lisp/org-src.el
index d1f6879..ef09bd6 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -737,8 +737,10 @@ with \",*\", \",#+\", \",,*\" and \",,#+\"."
       (unless (or single preserve-indentation (= total-nindent 0))
 	(setq indent (make-string total-nindent ?\ ))
 	(goto-char (point-min))
-	(while (re-search-forward "^" nil t)
-	  (replace-match indent)))
+        (while (re-search-forward "^" nil t)
+          (if (not (looking-at "$"))
+              (replace-match indent)
+	    (forward-char 1))))
       (if (org-bound-and-true-p org-edit-src-picture)
 	  (setq total-nindent (+ total-nindent 2)))
       (setq code (buffer-string))
-- 
1.9.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-11  0:22 [Patch] don't add indent for empty line when exiting, a code edit Arun Persaud
@ 2014-03-12 18:08 ` Bastien
  2014-03-12 23:06   ` Charles Berry
  0 siblings, 1 reply; 12+ messages in thread
From: Bastien @ 2014-03-12 18:08 UTC (permalink / raw)
  To: Arun Persaud; +Cc: emacs-orgmode

Hi Arun,

Arun Persaud <apersaud@lbl.gov> writes:

> I tried to fix this in org. It seems to work over here, but my elisp as
> well as my understanding of org-mode is not perfect ;) Let me know if it
> needs more work.

Applied, thanks!

-- 
 Bastien

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-12 18:08 ` Bastien
@ 2014-03-12 23:06   ` Charles Berry
  2014-03-13  8:47     ` Bastien
  0 siblings, 1 reply; 12+ messages in thread
From: Charles Berry @ 2014-03-12 23:06 UTC (permalink / raw)
  To: emacs-orgmode

Bastien <bzg <at> gnu.org> writes:

> 
> Hi Arun,
> 
> Arun Persaud <apersaud <at> lbl.gov> writes:
> 
> > I tried to fix this in org. It seems to work over here, but my elisp as
> > well as my understanding of org-mode is not perfect ;) Let me know if it
> > needs more work.
> 
> Applied, thanks!
> 


Bastien,

This seems to have broken org-edit-src-exit. :-(

I cannot figure out what triggers it (hence no ECM), but I sometimes get an
'End of buffer' error from inside the while loop.

I cannot exit the src edit buffer until I revert org-edit-src-exit to its
old version.

HTH,

Chuck

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-12 23:06   ` Charles Berry
@ 2014-03-13  8:47     ` Bastien
  2014-03-13 18:03       ` Charles Berry
  0 siblings, 1 reply; 12+ messages in thread
From: Bastien @ 2014-03-13  8:47 UTC (permalink / raw)
  To: Charles Berry; +Cc: emacs-orgmode

Hi Charles,

Charles Berry <ccberry@ucsd.edu> writes:

> This seems to have broken org-edit-src-exit. :-(
>
> I cannot figure out what triggers it (hence no ECM), but I sometimes get an
> 'End of buffer' error from inside the while loop.

I just pushed a fix.  Can you confirm you don't see the error anymore?

Thanks!

-- 
 Bastien

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-13  8:47     ` Bastien
@ 2014-03-13 18:03       ` Charles Berry
  2014-03-13 18:08         ` Bastien
  0 siblings, 1 reply; 12+ messages in thread
From: Charles Berry @ 2014-03-13 18:03 UTC (permalink / raw)
  To: emacs-orgmode

Bastien <bzg <at> gnu.org> writes:

> 
> Hi Charles,
> 
> Charles Berry <ccberry <at> ucsd.edu> writes:
> 
> > This seems to have broken org-edit-src-exit. 
> >
> > I cannot figure out what triggers it (hence no ECM), but I sometimes 
> > get an
> > 'End of buffer' error from inside the while loop.
> 
> I just pushed a fix.  Can you confirm you don't see the error anymore?
> 


Time to failure seems longer. But now I get an infinite loop.

The error message is gone. C-g stops the loop, but attempting to exit via 
C-c ' re-indents the code and the loop starts again.

Chuck

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-13 18:03       ` Charles Berry
@ 2014-03-13 18:08         ` Bastien
  2014-03-13 19:07           ` Charles Berry
  0 siblings, 1 reply; 12+ messages in thread
From: Bastien @ 2014-03-13 18:08 UTC (permalink / raw)
  To: Charles Berry; +Cc: emacs-orgmode

Charles Berry <ccberry@ucsd.edu> writes:

> Time to failure seems longer. But now I get an infinite loop.

Er, sorry for the confusion; should be fixed again.

-- 
 Bastien

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-13 18:08         ` Bastien
@ 2014-03-13 19:07           ` Charles Berry
  2014-03-13 19:46             ` Bastien
  0 siblings, 1 reply; 12+ messages in thread
From: Charles Berry @ 2014-03-13 19:07 UTC (permalink / raw)
  To: emacs-orgmode

Bastien <bzg <at> gnu.org> writes:

> 
> Charles Berry <ccberry <at> ucsd.edu> writes:
> 
> > Time to failure seems longer. But now I get an infinite loop.
> 
> Er, sorry for the confusion; should be fixed again.
> 

It is not. I am now back to getting the 'End of Buffer' msg

Chuck

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-13 19:07           ` Charles Berry
@ 2014-03-13 19:46             ` Bastien
  2014-03-13 22:08               ` Charles C. Berry
  2014-03-13 22:27               ` Florian Beck
  0 siblings, 2 replies; 12+ messages in thread
From: Bastien @ 2014-03-13 19:46 UTC (permalink / raw)
  To: Charles Berry; +Cc: emacs-orgmode

Charles Berry <ccberry@ucsd.edu> writes:

> Bastien <bzg <at> gnu.org> writes:
>
>> 
>> Charles Berry <ccberry <at> ucsd.edu> writes:
>> 
>> > Time to failure seems longer. But now I get an infinite loop.
>> 
>> Er, sorry for the confusion; should be fixed again.
>
> It is not. I am now back to getting the 'End of Buffer' msg

Ok, let me take some fresh air and come back to this later on.

-- 
 Bastien

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-13 19:46             ` Bastien
@ 2014-03-13 22:08               ` Charles C. Berry
  2014-03-13 22:27               ` Florian Beck
  1 sibling, 0 replies; 12+ messages in thread
From: Charles C. Berry @ 2014-03-13 22:08 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

On Thu, 13 Mar 2014, Bastien wrote:

> Charles Berry <ccberry@ucsd.edu> writes:
>
>> Bastien <bzg <at> gnu.org> writes:
>>
>>>
>>> Charles Berry <ccberry <at> ucsd.edu> writes:
>>>
>>>> Time to failure seems longer. But now I get an infinite loop.
>>>
>>> Er, sorry for the confusion; should be fixed again.
>>
>> It is not. I am now back to getting the 'End of Buffer' msg
>
> Ok, let me take some fresh air and come back to this later on.

Perhaps

- (forward-char 1))))
+ (forward-line 1))))

as the latter will not throw an error when (eobp) ?

Chuck

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-13 19:46             ` Bastien
  2014-03-13 22:08               ` Charles C. Berry
@ 2014-03-13 22:27               ` Florian Beck
  2014-03-14  9:00                 ` Bastien
  1 sibling, 1 reply; 12+ messages in thread
From: Florian Beck @ 2014-03-13 22:27 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

On 13.03.2014 20:46, Bastien wrote:
> Ok, let me take some fresh air and come back to this later on.
>

How about this:

(while (re-search-forward "\\(^\\).+" nil t)
   (replace-match indent nil nil nil 1)))

-- 
Florian Beck

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-13 22:27               ` Florian Beck
@ 2014-03-14  9:00                 ` Bastien
  2014-03-14 18:46                   ` Arun Persaud
  0 siblings, 1 reply; 12+ messages in thread
From: Bastien @ 2014-03-14  9:00 UTC (permalink / raw)
  To: Florian Beck; +Cc: emacs-orgmode

Hi Florian,

Florian Beck <fb@miszellen.de> writes:

> On 13.03.2014 20:46, Bastien wrote:
>> Ok, let me take some fresh air and come back to this later on.
>
> How about this:
>
> (while (re-search-forward "\\(^\\).+" nil t)
>   (replace-match indent nil nil nil 1)))

Works fine here, I pushed this solution.  Thanks!

-- 
 Bastien

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Patch] don't add indent for empty line when exiting, a code edit
  2014-03-14  9:00                 ` Bastien
@ 2014-03-14 18:46                   ` Arun Persaud
  0 siblings, 0 replies; 12+ messages in thread
From: Arun Persaud @ 2014-03-14 18:46 UTC (permalink / raw)
  To: emacs-orgmode

On 03/14/2014 02:00 AM, Bastien wrote:
> Hi Florian,
> 
> Florian Beck <fb@miszellen.de> writes:
> 
>> On 13.03.2014 20:46, Bastien wrote:
>>> Ok, let me take some fresh air and come back to this later on.
>>
>> How about this:
>>
>> (while (re-search-forward "\\(^\\).+" nil t)
>>   (replace-match indent nil nil nil 1)))
> 
> Works fine here, I pushed this solution.  Thanks!

Thanks everyone for fixing this!

Arun

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-03-14 18:46 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-11  0:22 [Patch] don't add indent for empty line when exiting, a code edit Arun Persaud
2014-03-12 18:08 ` Bastien
2014-03-12 23:06   ` Charles Berry
2014-03-13  8:47     ` Bastien
2014-03-13 18:03       ` Charles Berry
2014-03-13 18:08         ` Bastien
2014-03-13 19:07           ` Charles Berry
2014-03-13 19:46             ` Bastien
2014-03-13 22:08               ` Charles C. Berry
2014-03-13 22:27               ` Florian Beck
2014-03-14  9:00                 ` Bastien
2014-03-14 18:46                   ` Arun Persaud

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).