fork of org mode
Go to file
Nathan Dwarshuis 1b4fb607bd org-element.el: Make affiliated keyword interpreter faster
* lisp/org-element.el (org-element--interpret-affiliated-keywords):
Optimize performance by bypassing unnecessary types and reducing
loop complexity. Added new constant
`org-element-elements-no-affiliated` which stores the types to
be bypassed.

This function was doing redundant work on several levels which
dramatically reduced performance of interpreting element nodes
relative to object nodes.

First, all types were interpreted regardless of if they could
possibly contain affiliated keywords. Skipping these types
dramatically speeds up typical use cases since many of these
skipped types are common (headline, item, etc).

Second, the loop was much more complex than needed. The loop included
:standard-properties which should not be necessary here. It also
duplicated some work between calls to `org-element--properties-mapc`
and `mapconcat` (the code was moved entirely under the former). The
result should be faster and more readable.

TINYCHANGE
2024-11-29 17:05:54 -05:00
doc Document preview API for arbitrary link types 2024-11-27 19:34:34 +01:00
etc Document preview API for arbitrary link types 2024-11-27 19:34:34 +01:00
lisp org-element.el: Make affiliated keyword interpreter faster 2024-11-29 17:05:54 -05:00
mk mk/targets.mk (.PHONY): Add missing non-file targets 2024-06-20 18:29:44 +02:00
testing org-link: Customizable preview API for arbitrary link types 2024-11-27 19:34:26 +01:00
.dir-locals.el .dir-locals.el: Disable compilation of .dir-locals.el 2024-09-22 10:08:39 +02:00
.gitignore * lisp/org-agenda.el: Use lexical-binding 2021-03-09 22:56:33 -05:00
.gitmodules updated jump submodule for those behind http proxy 2013-06-06 14:36:24 -06:00
CONTRIBUTE.org Several typo fixes 2023-07-06 20:38:13 +03:00
COPYING Prefer HTTPS to HTTP in most links 2021-03-21 15:21:22 -04:00
Makefile Makefile ($(info): Document make repro 2024-06-18 17:01:01 +02:00
README.org README.org: Fix installation instructions 2023-12-22 12:21:52 +01:00

README.org

This is a distribution of Org Mode, a major mode for keeping notes, authoring documents, computational notebooks, literate programming, maintaining to-do lists, planning projects, and more — in a fast and effective plain text system.

Check the Org Mode website for more.

Install Org

Org is part of GNU Emacs: you probably don't need to install it.

To install a more recent version, please use command: M-x list-packages, find "org" in the list, click on it, and click "Install" in the popped up window.

Join the GNU Project

Org is part of GNU Emacs and GNU Emacs is part of the GNU Operating System, developed by the GNU Project.

If you are the author of an awesome program and want to join us in writing Free (libre) Software, please consider making it an official GNU program and become a GNU Maintainer. Instructions on how to do this are here http://www.gnu.org/help/evaluation.

Don't have a program to contribute? Look at all the other ways to help: https://www.gnu.org/help/help.html.

And to learn more about Free (libre) Software in general, please read and share this page: https://gnu.org/philosophy/free-sw.html

License

Org-mode is published under the GNU GPLv3 license or any later version, the same as GNU Emacs.

Org-mode is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Org mode. If not, see https://www.gnu.org/licenses/.