emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Three questions about Org-mode API


From: Carsten Dominik
Subject: Re: [Orgmode] Three questions about Org-mode API
Date: Mon, 12 May 2008 13:03:10 +0200


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





reply via email to

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