[Top][All Lists]

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

Re: [O] Add caching to org-buffer-property-keys

From: Thierry Banel
Subject: Re: [O] Add caching to org-buffer-property-keys
Date: Wed, 02 Mar 2016 19:48:52 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0

Nice function!
Maybe a rewrite of (org-read-property-name) calling
(org-entry-properties) could speed up things.
(org-entry-properties) returns an assoc list of the local header properties.

Le 02/03/2016 12:29, Karl Voit a écrit :
> Hi!
> In short: can we get a cached org-buffer-property-keys please?
> My background story:
> I love using following function which gives me a neat functionality:
> I mark a string, press the keybinding shortcut, and gets asked which
> property should be replaced/filled with the marked region text.
> Very handy when you've got a new phone number of a contact which
> should find its way to the associated property.
> (defun my-org-region-to-property (&optional property)
>   (interactive)
>   ;; if no region is defined, do nothing
>   (if (use-region-p)
>       ;; if a region string is found, ask for a property and set property to
>       ;; the string in the region
>       (let ((val (replace-regexp-in-string
>                   "\\`[ \t\n]*" ""
>                   (replace-regexp-in-string "[ \t\n]*\\'" ""
>                                             (substring (buffer-string)
>                                                        (- (region-beginning) 
> 1)
>                                                        (region-end))))
>                  )
>             ;; if none was stated by user, read property from user
>             (prop (or property
>                       (org-read-property-name))))
>         ;; set property
>         (org-set-property prop val))))
> A big drawback is that I have to wait 18 seconds(!) until
> org-read-property-name which calls org-buffer-property-keys asks for
> the property. This is a real show stopper for this cool function.
> Since the properties of a buffer do not change that often, caching
> its previous result would make sense to me. This way, I only have to
> wait 18 seconds once per file on the first call.
> An alternative would be a org-read-property-name which uses only the
> properties of the current heading.
> Thanks for your support!

reply via email to

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