emacs-orgmode
[Top][All Lists]
Advanced

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

Re: Improve the performance of `org-set-tags-command` on large `org-tag-


From: Ihor Radchenko
Subject: Re: Improve the performance of `org-set-tags-command` on large `org-tag-alist`
Date: Sat, 13 May 2023 07:43:13 +0000

stardiviner <numbchild@gmail.com> writes:

> I have a large `org-tag-alist` value that contains about ~7000 tags.
> When I press [C-c C-q] `org-set-tags-command`. Emacs suspends a long time.

Indeed. That's because `org-fast-tag-selection' tries to put all those
7k tags into tag selection window.

We can probably limit the maximum number of tags in the quick selection
window.

Can you try the attached simple diff for `org-fast-tag-selection' and
check if it is enough to solve the hang?

diff --git a/lisp/org.el b/lisp/org.el
index c148409d9..d745fd01e 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -11765,7 +11765,7 @@ (defun org-fast-tag-selection (current inherited table 
&optional todo-table)
        (org-fast-tag-insert "Current" current c-face "\n\n")
        (org-fast-tag-show-exit exit-after-next)
        (org-set-current-tags-overlay current ov-prefix)
-       (setq tbl fulltable char ?a cnt 0)
+       (setq tbl (seq-take fulltable 26) char ?a cnt 0)
        (while (setq e (pop tbl))
          (cond
           ((eq (car e) :startgroup)
-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

reply via email to

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