emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [POLL] Should Org tempo be enabled by default? (expand templates


From: Aaron Ecay
Subject: Re: [O] [POLL] Should Org tempo be enabled by default? (expand templates thru e.g. "<s[TAB]")
Date: Tue, 01 May 2018 17:28:23 +0100
User-agent: Notmuch/0.26 (https://notmuchmail.org) Emacs/27.0.50 (x86_64-pc-linux-gnu)

Hi Nicolas,

Iʼm very sympathetic to the direction of travel of these changes, and to
the suggestion that you make in your message about using warnings to
advert users to incompatible changes.  (As you can read in my message to
the parent thread).

However (with great respect for all that you have done to improve org
over the years), I think you missed the point in some of the things you
wrote.

2018ko maiatzak 1an, Nicolas Goaziou-ek idatzi zuen:

[...]

> I think some of you (basically, anyone thinking we should enable "<s
> TAB" by default ;)) are missing the point.
> 
> 
> The first important thing to understand is that, even if we enable
> `org-tempo' by default, next Org release /will break/ for some of us.
> 
> - It will break because `org-tempo' is only 99% backward-compatible.  So
>   anyone having customizing templates is bound to change them.
> 
> - It will break because there are 9 other incompatible changes between
>   9.1 and 9.2.
> 
> So, asking to load `org-tempo' by default just to avoid breaking users
> set-up is a wrong argument. It will only "protect" those among us that
> use "<s TAB" but didn't customize /and/ are not affected by the other
> incompatible changes. IOW, updating Org from 9.1 to 9.2 will not be
> smooth for everyone. No matter what `org-tempo' becomes.

By this logic, since org 9.2 already contains 9 breaking changes, we can
change anything else in that version.  Make all the key bindings start
with M-S-C-e instead of C-c, sort all the headings in a file in
alphabetical order when opening it, ...

No software update will ever be entirely disruption-free, if nothing
else because bugs will always happen.  So we have to think about the
impact of (intentional) changes not in a binary Yes/No fashion, but in
terms of how many users they affect, and how bad that effect is.  In
this case, the number affected is large (as measured informally by
participation in this poll) and the disruption is severe (a specifically
documented org feature now doesnʼt work, with no obviously discoverable
reason why).  So that is a powerful argument against making the change
in this way, when we can achieve the same long-term effect in a less
disruptive way (with deprecation warnings).

I do think that breaking changes should be grouped into batches.  And
if org has as many as ten that are pending, it is a strong argument to
call the next release version 10, with all the associated fanfare (and
breakage warnings!)  Or if point releases are needed in the meantime,
hold these breaking changes on a branch that can be merged before Org
10.


[...]

> Expansion templates are a great thing, but this is only sugar for Org,
> which is totally usable without them. Besides, some facilities are
> providing it for us. This falls into (2). By design, I'm convinced we
> should not include them. I also wish that anyone involved in this thread
> can take a step back to see the whole picture.

This is a red herring.  The changes do not eliminate expansion template
code from org.  They merely substitute (incompatibly) one expansion
template mechanism for a new one.

FWIW, I do think the idea is worth exploring of getting rid of the (old
and new) template expansion code and using emacsʼs built-in SRecode
template facility.  Like most of the CEDET stuff, it looks horridly
overengineered at a first glance.  But it is also included with emacs by
default (unlike e.g. yasnippet which otherwise looks more pleasant to
program to me), and it would be (even more) responsive to the concerns
from emacs-devel that were quoted in your full message.  To be specific,
this would entail (eventually) getting rid of the
org-structure-template-alist variable entirely, as well as the menu now
bound to C-c C-,; the former would be replaced by (AFAIUI) template
files that would be included with org and/or created by users for their
custom templates; the latter would use SRecodeʼs built-in template
selection instead.

-- 
Aaron Ecay



reply via email to

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