emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* org-fill-paragraph leaves point at end of table
@ 2013-02-25  3:04 Eric Abrahamsen
  2013-02-25  9:10 ` Nicolas Goaziou
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Abrahamsen @ 2013-02-25  3:04 UTC (permalink / raw)
  To: emacs-orgmode

Calling `org-fill-paragraph' inside a table leaves point at the end of
the table, for reasons that are totally unclear to me.

I've tested this with up-to-date org and emacs -Q, so I'm hoping it's
reproducible. I edebugged org-fill-paragraph, and it appears to do the
right thing, going from the save-excursion to the cond to the org-table
cond statement, and there calling `org-table-align'. That works
correctly, but stepping forward you come to the end of the enclosing
`save-excursion', and emerging from `save-excursion' puts point at the
end of the table -- precisely what it's not supposed to do!

I made a minimum sexp to reproduce the relevant bits of
org-fill-paragraph:

#+BEGIN_SRC emacs-lisp
  (save-excursion
    (let ((element (org-element-at-point)))
      (case (org-element-type element)
        (table-row (org-table-align) t))))
#+END_SRC

Putting point in a table and eval'ing that also leaves point at the end
of the table. I tried using (call-interactively 'org-table-align) and it
did the same thing.

I'm baffled, particularly as it doesn't do this for any other element
type. Any clever ideas? M-q after a bit of typing is already stuck in my
fingers, and this bit of strangeness doesn't set the mark, so editing
long tables is a pain...

Thanks!

E

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

* Re: org-fill-paragraph leaves point at end of table
  2013-02-25  3:04 org-fill-paragraph leaves point at end of table Eric Abrahamsen
@ 2013-02-25  9:10 ` Nicolas Goaziou
  2013-02-25  9:21   ` Carsten Dominik
  0 siblings, 1 reply; 4+ messages in thread
From: Nicolas Goaziou @ 2013-02-25  9:10 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: emacs-orgmode

Hello,

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> Calling `org-fill-paragraph' inside a table leaves point at the end of
> the table, for reasons that are totally unclear to me.
>
> I've tested this with up-to-date org and emacs -Q, so I'm hoping it's
> reproducible. I edebugged org-fill-paragraph, and it appears to do the
> right thing, going from the save-excursion to the cond to the org-table
> cond statement, and there calling `org-table-align'. That works
> correctly, but stepping forward you come to the end of the enclosing
> `save-excursion', and emerging from `save-excursion' puts point at the
> end of the table -- precisely what it's not supposed to do!
>
> I made a minimum sexp to reproduce the relevant bits of
> org-fill-paragraph:
>
> #+BEGIN_SRC emacs-lisp
>   (save-excursion
>     (let ((element (org-element-at-point)))
>       (case (org-element-type element)
>         (table-row (org-table-align) t))))
> #+END_SRC
>
> Putting point in a table and eval'ing that also leaves point at the end
> of the table. I tried using (call-interactively 'org-table-align) and it
> did the same thing.
>
> I'm baffled, particularly as it doesn't do this for any other element
> type. Any clever ideas? M-q after a bit of typing is already stuck in my
> fingers, and this bit of strangeness doesn't set the mark, so editing
> long tables is a pain...

`org-table-align' inserts a whole new table and removes completely the
previous one. This confuses `save-excursion' which doesn't recognize any
familiar location anymore.

I've pushed a fix for it. All filling tests pass, but if you notice
anything suspicious, please signal it.

Thank you for the report.


Regards,

-- 
Nicolas Goaziou

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

* Re: org-fill-paragraph leaves point at end of table
  2013-02-25  9:10 ` Nicolas Goaziou
@ 2013-02-25  9:21   ` Carsten Dominik
  2013-02-25 10:12     ` Eric Abrahamsen
  0 siblings, 1 reply; 4+ messages in thread
From: Carsten Dominik @ 2013-02-25  9:21 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: Eric Abrahamsen, emacs-orgmode


On 25 feb. 2013, at 10:10, Nicolas Goaziou <n.goaziou@gmail.com> wrote:

> Hello,
> 
> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
> 
>> Calling `org-fill-paragraph' inside a table leaves point at the end of
>> the table, for reasons that are totally unclear to me.
>> 
>> I've tested this with up-to-date org and emacs -Q, so I'm hoping it's
>> reproducible. I edebugged org-fill-paragraph, and it appears to do the
>> right thing, going from the save-excursion to the cond to the org-table
>> cond statement, and there calling `org-table-align'. That works
>> correctly, but stepping forward you come to the end of the enclosing
>> `save-excursion', and emerging from `save-excursion' puts point at the
>> end of the table -- precisely what it's not supposed to do!
>> 
>> I made a minimum sexp to reproduce the relevant bits of
>> org-fill-paragraph:
>> 
>> #+BEGIN_SRC emacs-lisp
>>  (save-excursion
>>    (let ((element (org-element-at-point)))
>>      (case (org-element-type element)
>>        (table-row (org-table-align) t))))
>> #+END_SRC
>> 
>> Putting point in a table and eval'ing that also leaves point at the end
>> of the table. I tried using (call-interactively 'org-table-align) and it
>> did the same thing.
>> 
>> I'm baffled, particularly as it doesn't do this for any other element
>> type. Any clever ideas? M-q after a bit of typing is already stuck in my
>> fingers, and this bit of strangeness doesn't set the mark, so editing
>> long tables is a pain...
> 
> `org-table-align' inserts a whole new table and removes completely the
> previous one. This confuses `save-excursion' which doesn't recognize any
> familiar location anymore.
> 
> I've pushed a fix for it. All filling tests pass, but if you notice
> anything suspicious, please signal it.

I do not expect problems, because you now fall back onto org-table-align without any save-excursion around it, AFAICS.  org-table-align remembers line number and table row number and restores them, so this should work.

- Carsten

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

* Re: org-fill-paragraph leaves point at end of table
  2013-02-25  9:21   ` Carsten Dominik
@ 2013-02-25 10:12     ` Eric Abrahamsen
  0 siblings, 0 replies; 4+ messages in thread
From: Eric Abrahamsen @ 2013-02-25 10:12 UTC (permalink / raw)
  To: emacs-orgmode

Carsten Dominik <carsten.dominik@gmail.com> writes:

> On 25 feb. 2013, at 10:10, Nicolas Goaziou <n.goaziou@gmail.com> wrote:
>
>> Hello,
>> 
>> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>> 
>>> Calling `org-fill-paragraph' inside a table leaves point at the end of
>>> the table, for reasons that are totally unclear to me.
>>> 
>>> I've tested this with up-to-date org and emacs -Q, so I'm hoping it's
>>> reproducible. I edebugged org-fill-paragraph, and it appears to do the
>>> right thing, going from the save-excursion to the cond to the org-table
>>> cond statement, and there calling `org-table-align'. That works
>>> correctly, but stepping forward you come to the end of the enclosing
>>> `save-excursion', and emerging from `save-excursion' puts point at the
>>> end of the table -- precisely what it's not supposed to do!
>>> 
>>> I made a minimum sexp to reproduce the relevant bits of
>>> org-fill-paragraph:
>>> 
>>> #+BEGIN_SRC emacs-lisp
>>>  (save-excursion
>>>    (let ((element (org-element-at-point)))
>>>      (case (org-element-type element)
>>>        (table-row (org-table-align) t))))
>>> #+END_SRC
>>> 
>>> Putting point in a table and eval'ing that also leaves point at the end
>>> of the table. I tried using (call-interactively 'org-table-align) and it
>>> did the same thing.
>>> 
>>> I'm baffled, particularly as it doesn't do this for any other element
>>> type. Any clever ideas? M-q after a bit of typing is already stuck in my
>>> fingers, and this bit of strangeness doesn't set the mark, so editing
>>> long tables is a pain...
>> 
>> `org-table-align' inserts a whole new table and removes completely the
>> previous one. This confuses `save-excursion' which doesn't recognize any
>> familiar location anymore.
>> 
>> I've pushed a fix for it. All filling tests pass, but if you notice
>> anything suspicious, please signal it.
>
> I do not expect problems, because you now fall back onto
> org-table-align without any save-excursion around it, AFAICS.
> org-table-align remembers line number and table row number and
> restores them, so this should work.

And sure enough, it does!

Sorry for all the table-related stuff. I'm in one of those moments where
you throw caution to the wind and entrust a time-sensitive company
project to areas of git-master Orgmode you've never used before. Likely
very stupid, but it's too late to turn back now.

Thanks!
E

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

end of thread, other threads:[~2013-02-25 10:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-25  3:04 org-fill-paragraph leaves point at end of table Eric Abrahamsen
2013-02-25  9:10 ` Nicolas Goaziou
2013-02-25  9:21   ` Carsten Dominik
2013-02-25 10:12     ` Eric Abrahamsen

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