From: Carsten Dominik <dominik@science.uva.nl>
To: Dmitri Minaev <minaev@gmail.com>
Cc: org-mode <emacs-orgmode@gnu.org>
Subject: Re: Three questions about Org-mode API
Date: Mon, 12 May 2008 13:03:10 +0200 [thread overview]
Message-ID: <1E0F063B-FC61-436F-B5F9-EBAAD47BAD64@science.uva.nl> (raw)
In-Reply-To: <b6c377310805111219o1316032cj7959f2760081fae3@mail.gmail.com>
On May 11, 2008, at 9:19 PM, Dmitri Minaev wrote:
> Hello,
>
> I use org-mode as a front-end to view and edit the data stored in a
> list. It's easy and fast to render the list as an Org-mode tree, but I
> have some problems with the performance when I convert the data back
> to the list.
>
> 1. If I want to retrieve all properties of an entry (a thousand or two
> of entries, for that matter), what would be faster: using
> org-entry-get for every property, org-entry-properties or using custom
> regexps?
If you are talking only about the standard properties (i.e. not the
TODO state or the tags, but just the properties in the drawer, the
fastest inside-org way would be
(org-entry-get nil 'standard)
at each headline, which would get rid of the considerable overhead of
getting the special properties. This still has some overhead, so
custom regexps could speed this up a bit.
If speed is an issue, I would write an external program in perl.
I think I could write a perl parser that is at least a factor of 10
faster
than anything in emacs lisp.
One could also think of an external database, but that only would work
will for a linear list of entries, and structure editing does ruin
such things.
> 2. Is there a way to obtain programmatically the contents of an entry,
> the text in it (assuming the entry has no children nodes)?
Check out Bastien's parser, I think it is in some branch in the git repo
(right Bastien???). Although I don't know how fast this would be.
> 3. It would be nice to mark the edited entries as `dirty' to avoid the
> conversion of non-changed entries. Any ideas?
This is hard, because you don't want to put any contraints on how the
entry can be edited. One could use text properties (during a single
session) or Org properties, both triggered with after-change-
functions, but that is a lot of editing overhead.
- Carsten
next prev parent reply other threads:[~2008-05-12 11:03 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-11 19:19 Three questions about Org-mode API Dmitri Minaev
2008-05-12 11:03 ` Carsten Dominik [this message]
2008-05-12 18:36 ` Dmitri Minaev
2008-05-15 6:58 ` Carsten Dominik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1E0F063B-FC61-436F-B5F9-EBAAD47BAD64@science.uva.nl \
--to=dominik@science.uva.nl \
--cc=emacs-orgmode@gnu.org \
--cc=minaev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).