emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] bug in org-habits


From: Nicolas Goaziou
Subject: Re: [O] bug in org-habits
Date: Wed, 04 Nov 2015 00:43:17 +0100

John Wiegley <address@hidden> writes:

> Thanks for discussing this with me, Nicolas. I appreciate there may be
> technical complexities involved. Could we special-case allow PROPERTIES to be
> the *very last thing* in an entry? I don't need it to float anywhere else. I
> just like it to be at the end.

I think it's a false good idea.

As a matter of fact, going to the end of an entry is not negligible,
because of inlinetasks. Also, it is not really O(1) since it depends on
the size of the entry. To get an idea, on my computer, moving past a 500
lines entry takes around 0.001s. I can imagine slower computers, or
larger entries, neither being unheard of, having a slightly noticeable
delay.

Also, supporting both locations means that users will pay the full price
in entries without a property drawer, even if they chose the fast path,
i.e., drawer at the beginning of the entry, in the first place. This
kind of defeats some of the advantages of the current state.

There is also a meaner problem. Unlike to beginning of entry, end of
entry is a moving target. Org sometimes automatically adds stuff there
(e.g., footnotes when `org-footnote-section' is nil). So do other parts
of Emacs (file local variables come to mind). Preventing insertions in
this area can be tedious, if possible at all. 

OTOH, the mechanism protecting the beginning of the entry, i.e,
`org-end-of-meta-data', is already implemented since planning lines
require it anyway.

Again, speed _was_ an issue, as testified by, e.g.,
org-use-property-inheritance's docstring. Current solution is both
robust and fast, and is well worth the high price of an incompatible
change, considering its central place in Org.

>> If you need to end your entry with a drawer, couldn't you put any of them
>> there? You can even have one there named "PROPERTIES".
>
> But it wouldn't be the true PROPERTIES, would it? Most of my entries look like
> this (and I have many thousands of them):

It wouldn't, of course. But at least you would get your "period" at the
end of the entry. It doesn't matter much if it is empty since its
contents are hidden anyway.

> ** TODO Update auto insurance cards                             :Home:ATTACH:
> SCHEDULED: <2016-03-11 Fri +6m>
> - State "DONE"       from "TODO"       [2015-09-11 Fri 11:28]
> - State "WAITING"    from "TODO"       [2015-07-22 Wed 19:48]
> - State "DONE"       from "STARTED"    [2014-12-13 Sat 15:56]
> - State "DONE"       from "TODO"       [2014-03-31 Mon 03:11]
> - State "CANCELED"   from "TODO"       [2013-12-11 Wed 19:23]
> - State "CANCELED"   from "TODO"       [2013-05-21 Tue 12:30]
> - State "DONE"       from "TODO"       [2012-05-17 Thu 22:24]
> - State "CANCELED"   from "TODO"       [2011-04-23 Sat 22:04]
> - State "TODO"       from "DONE"       [2010-10-23 Sat 21:54]
> - State "DONE"       from "TODO"       [2010-10-08 Fri 14:26]
> :PROPERTIES:
> :ID:       B1F3D3F6-9F39-4899-9AF8-93E019E7C6BB
> :CREATED:  [2010-05-08 Sat 17:34]
> :LAST_REPEAT: [2015-09-11 Fri 11:28]
> :Attachments: AutoInsuranceIdCards.pdf
> :END:

The following is not ugly either

  ** TODO Update auto insurance cards                             :Home:ATTACH:
  SCHEDULED: <2016-03-11 Fri +6m>
  :PROPERTIES:
  :ID:       B1F3D3F6-9F39-4899-9AF8-93E019E7C6BB
  :CREATED:  [2010-05-08 Sat 17:34]
  :LAST_REPEAT: [2015-09-11 Fri 11:28]
  :Attachments: AutoInsuranceIdCards.pdf
  :END:
  - State "DONE"       from "TODO"       [2015-09-11 Fri 11:28]
  - State "WAITING"    from "TODO"       [2015-07-22 Wed 19:48]
  - State "DONE"       from "STARTED"    [2014-12-13 Sat 15:56]
  - State "DONE"       from "TODO"       [2014-03-31 Mon 03:11]
  - State "CANCELED"   from "TODO"       [2013-12-11 Wed 19:23]
  - State "CANCELED"   from "TODO"       [2013-05-21 Tue 12:30]
  - State "DONE"       from "TODO"       [2012-05-17 Thu 22:24]
  - State "CANCELED"   from "TODO"       [2011-04-23 Sat 22:04]
  - State "TODO"       from "DONE"       [2010-10-23 Sat 21:54]
  - State "DONE"       from "TODO"       [2010-10-08 Fri 14:26]

even more so considering it really appears as 

  ** TODO Update auto insurance cards                             :Home:ATTACH:
  SCHEDULED: <2016-03-11 Fri +6m>
  :PROPERTIES:
  - State "DONE"       from "TODO"       [2015-09-11 Fri 11:28]
  - State "WAITING"    from "TODO"       [2015-07-22 Wed 19:48]
  - State "DONE"       from "STARTED"    [2014-12-13 Sat 15:56]
  - State "DONE"       from "TODO"       [2014-03-31 Mon 03:11]
  - State "CANCELED"   from "TODO"       [2013-12-11 Wed 19:23]
  - State "CANCELED"   from "TODO"       [2013-05-21 Tue 12:30]
  - State "DONE"       from "TODO"       [2012-05-17 Thu 22:24]
  - State "CANCELED"   from "TODO"       [2011-04-23 Sat 22:04]
  - State "TODO"       from "DONE"       [2010-10-23 Sat 21:54]
  - State "DONE"       from "TODO"       [2010-10-08 Fri 14:26]

and with a fake "THE-END" drawer

  ** TODO Update auto insurance cards                             :Home:ATTACH:
  SCHEDULED: <2016-03-11 Fri +6m>
  :PROPERTIES:
  - State "DONE"       from "TODO"       [2015-09-11 Fri 11:28]
  - State "WAITING"    from "TODO"       [2015-07-22 Wed 19:48]
  - State "DONE"       from "STARTED"    [2014-12-13 Sat 15:56]
  - State "DONE"       from "TODO"       [2014-03-31 Mon 03:11]
  - State "CANCELED"   from "TODO"       [2013-12-11 Wed 19:23]
  - State "CANCELED"   from "TODO"       [2013-05-21 Tue 12:30]
  - State "DONE"       from "TODO"       [2012-05-17 Thu 22:24]
  - State "CANCELED"   from "TODO"       [2011-04-23 Sat 22:04]
  - State "TODO"       from "DONE"       [2010-10-23 Sat 21:54]
  - State "DONE"       from "TODO"       [2010-10-08 Fri 14:26]
  :THE-END:
  
Regards,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]