Ihor Radchenko <yanta...@posteo.net> writes: > Yes, org-mouse modifies the behavior of certain key bindings. Not > directly, but by advising `org-open-at-point'.
IIRC Emacs core libraries should not advise functions. This is something we should fix. Also, I'm not sure org-mouse.el has its place in Org's core nowadays. > It changes the very notion of that is a headline - the syntax definition > is altered. Very deeply nested headlines may become inlinetasks upon > loading org-inlinetask, touching all aspects of Org, not just editing. Same here, I'd be tempted to deny Org citizenship to inline tasks: it always felt like a nice hack for a niche use-case, but a hack anyway. If it modifies Org syntax in surprising ways, this is another argument for removing org-inlinetask.el from Org's core. Remember: this is not to say that inline tasks are forbidden, it's just a message for users that inline tasks are something not maintained by Org's core team. > And it is not clear how to fix this. We did not make inlinetasks into > standard Org syntax in the past and now it is in the weird state when we > have (featurep 'org-inlinetask) sprinkled across the code just to > accommodate for this conditional syntax. Yes, this is ugly. > Inlinetasks are too similar in syntax with headlines, so it is > impossible to make the change backwards-compatible. > >>> With the current state of affairs, it is often enough to >>> (require 'org-library) to get things work. If we get rid of all the >>> possible side effects, users will have to adapt their configurations >>> and we will thus violate "I won't force you to update your >>> configuration." >> >> Defining new functions is a desirable "side-effect" of all Elisp >> library, I don't think we should worry abou this. > > Defining new functions by itself is not a big deal. But there are parts > of Org that alter their behavior depending on whether a feature is > loaded (like org-inlinetask) or depending whether certain function > symbol is defined (babel). Similarly, loading new link types re-defines > Org syntax in all the documents, affecting editing of everything that > looks like the loaded link type (org-ctags). I feel like the stakes are not the same for features like org-mouse.el and org-inlinetask.el and for core features like Babel libs and links. For the former, a decision should be made relatively to the usefulness of the feature; for the latter, loading libs (with side-effects on the syntax) is required by the design of the core feature at hand (Babel and links). I'd focus on solving the problem with org-mouse and org-inlinetasks first. Let's make a poll for org-mouse.el then for org-inlinetasks.el ? -- Bastien Guerry