emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
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

  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).