Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

helm-completing-read-handlers-alist: Use "org-set-tags-command" instead of "org-set-tags" #3

Open
NathanNeff opened this issue Aug 11, 2019 · 6 comments
Assignees

Comments

@NathanNeff
Copy link

NathanNeff commented Aug 11, 2019

I copied this issue from the helm project [0] to the helm-org project:

When using org-mode 9.2 and higher, set-tags was broken. It was displaying the
set of tags correctly when a heading had no tags. However, if a heading had 1+ tags
already, then Helm was not displaying the list of available tags.

I think I found the issue (it's quite simple). The org-set-tags function is not called by
org-mode when pressing C-c C-q. The function is called org-set-tags-command.

Adding the entry
(org-set-tags-command . helm-org-completing-read-tags) to helm-completing-read-handlers-alist
fixed the problem.

(add-to-list 'helm-completing-read-handlers-alist '(org-set-tags . helm-org-completing-read-tags))

However, after looking a bit further, the old emacs versions also called "org-set-tags-command" when pressing C-c C-q.

org-set-tags-command calls org-set-tags. So, why does this fix work? Any more insight is appreciated.

I don't know enough about the magic of Helm to know why this fix works (being
that org versions 9.1.x and 9.2.x both call org-set-tags-command which calls
org-set-tags.

The definitions of org-set-tags-command and org-set-tags changed quite a bit
from org 9.1.x to Org 9.2.x. One difference that I notice is that the old version of
org-set-tags [1] was an (interactive) function and the new version of org-set-tags is
not [2].

Any ideas?

[1] 9.1.14 https://code.orgmode.org/bzg/org-mode/src/release_9.1.14/lisp/org.el#L14883
[2] 9.2.5 https://code.orgmode.org/bzg/org-mode/src/master/lisp/org.el#L12334

Possibly related issues:
emacs-helm/helm#2063

Spacemacs issue:
syl20bnr/spacemacs#3738

[0] emacs-helm/helm#2183

@NathanNeff NathanNeff changed the title "org-set-tags-command" helm-completing-read-handlers-alist: Use "org-set-tags-command" instead of "org-set-tags" Aug 11, 2019
@thierryvolpiatto
Copy link
Member

thierryvolpiatto commented Aug 11, 2019 via email

@jagrg
Copy link
Contributor

jagrg commented Aug 13, 2019 via email

@alphapapa alphapapa self-assigned this Aug 13, 2019
@NathanNeff
Copy link
Author

NathanNeff commented Aug 14, 2019 via email

@NathanNeff
Copy link
Author

Also, I think the README.md needs to be fixed as well.

@improve100
Copy link

org-capture: Capture abort: Symbol’s value as variable is void: helm-completing-read-handlers-alist

@granitrocky
Copy link

II was still having this issue with org mode. Because Org uses (completing-read-multiple), helm doesn't read helm-completing-read-handlers-alist for completions. I have written a workaround instead. It's an advice that wraps helm--completion-in-region and checks what commands/modes we're using and changes the separator accordingly.

https://gist.github.com/granitrocky/af86037dcd239a928c10c7fa974f54a3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants