org-columns--display-here: Cache result of `substitute-command-keys'

* lisp/org-colview.el (org-columns--read-only-string):
(org-columns--display-here): Cache return value of
`substitede-command-keys' in a variable.  It is otherwise slow to call
it every time a row is displayed.
This commit is contained in:
Ihor Radchenko 2024-02-11 16:25:37 +01:00
parent 2a999b298f
commit 7e547fd3b6
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 6 additions and 3 deletions

View File

@ -365,6 +365,7 @@ ORIGINAL is the real string, i.e., before it is modified by
"Store the relative remapping of column header-line. "Store the relative remapping of column header-line.
This is needed to later remove this relative remapping.") This is needed to later remove this relative remapping.")
(defvar org-columns--read-only-string nil)
(defun org-columns--display-here (columns &optional dateline) (defun org-columns--display-here (columns &optional dateline)
"Overlay the current line with column display. "Overlay the current line with column display.
COLUMNS is an alist (SPEC VALUE DISPLAYED). Optional argument COLUMNS is an alist (SPEC VALUE DISPLAYED). Optional argument
@ -439,9 +440,11 @@ DATELINE is non-nil when the face used should be
(line-end-position 0) (line-end-position 0)
(line-beginning-position 2) (line-beginning-position 2)
'read-only 'read-only
(substitute-command-keys (or org-columns--read-only-string
"Type \\<org-columns-map>`\\[org-columns-edit-value]' \ (setq org-columns--read-only-string
to edit property"))))))) (substitute-command-keys
"Type \\<org-columns-map>`\\[org-columns-edit-value]' \
to edit property")))))))))
(defun org-columns--truncate-below-width (string width) (defun org-columns--truncate-below-width (string width)
"Return a substring of STRING no wider than WIDTH. "Return a substring of STRING no wider than WIDTH.