[Top][All Lists]

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

Re: [Orgmode] proposal: defconst/defcustom org-tags-regexp

From: Carsten Dominik
Subject: Re: [Orgmode] proposal: defconst/defcustom org-tags-regexp
Date: Wed, 18 Jul 2007 23:24:40 +0200

On Jul 16, 2007, at 15:21, Adam Spiers wrote:

Hi again,

There seem to be a number of hardcoded regexps currently used for
matching heading tags, all very similar looking, and typically
something like:

  [ \t]*\\(:[[:alnum:]_@:]+:\\)?[ \t]*\\($\\|\r\\)

Is there any reason why these shouldn't be factored out into a new
defcustom org-tags-regexp?

Well, one reason is efficiency. When a regular expression is a constant,
Emacs is able to cache the compiled version of the regular expression,
and this can speed up code that does a lot of matching quite a bit.  The
token you show above is usually part of a larger string, so the full
regular expression would have to be make with concat and will therefore
be recompiled all the time.

However, we could use a macro to process the concat at compile time.
This would still require that you have set the appropriate variables
at compile time, and you would need to recompile the Lisp
file after each change in this constant - not something that Emacs users
do expect.

Do you know a solution for this problem?

Still, I agree that what I did is bad programming in the sense that
things like this could/should be factored out.

- Carsten

Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477

reply via email to

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