emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Matt Lundin <mdl@imapmail.org>
To: Org Mode <emacs-orgmode@gnu.org>
Subject: Re: [PATCH] org-global-tags-completion-table does not include tags from buffers
Date: Mon, 19 Mar 2018 10:02:01 -0500	[thread overview]
Message-ID: <878tao2jo6.fsf@fastmail.fm> (raw)
In-Reply-To: <87zi35geo2.fsf@fastmail.fm> (Matt Lundin's message of "Sun, 18 Mar 2018 18:14:05 -0500")

[-- Attachment #1: Type: text/plain, Size: 1449 bytes --]

Attached is a patch that fixes the issue.

Best,
Matt

Matt Lundin <mdl@imapmail.org> writes:

> If org-tags-alist is customized by the user, the value returned by
> org-global-tags-completion-table does not include any tags from agenda
> buffers and files.
>
> This behavior contradicts the docstring of
> org-global-tags-completion-table, which claims to return the list of all
> tags in all agenda buffer/files.
>
> I believe this bug was introduced with commit
> 4743d43dd8e448b6c440b1e4988bcd353de60cc7 in April 2016. Before that
> commit, Org mode appended tags in org-tags-alist to tags gathered from
> the buffer. After the commit, Org mode no longer gathers buffer tags if
> org-tags-alist is defined.
>
> Line 13731 is the key line:
>
>         (or org-current-tag-alist (org-get-buffer-tags)))
>
> AFAICT, org-current-tag-alist only includes tags defined in
> org-tag-alist and org-tag-persistent-alist. So if these are defined, the
> function will never gather the buffer tags.
>
> As an aside, this bug makes filtering the agenda by filetags or tags in
> org buffers impossible due to commit
> 404ac42ee51f0ac0d9cfb8fbefaefbbe96c61017, which requires a match for tag
> completion when hitting "/ [TAB]" in the agenda. Since
> org-global-tags-completion-table does not actually return the tags in
> buffers, it is impossible to filter by them.
>
> I can reproduce this with emacs -Q (emacs 25.3 and Org mode from git).
>
> Best,
> Matt


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Include-buffer-tags-in-global-tags-completion.patch --]
[-- Type: text/x-patch, Size: 1183 bytes --]

From fc09bce2c9efe72a340132a499510658cd03bec2 Mon Sep 17 00:00:00 2001
From: Matt Lundin <mdl@imapmail.org>
Date: Mon, 19 Mar 2018 09:53:15 -0500
Subject: [PATCH] Include buffer tags in global tags completion 

* lisp/org.el: (org-global-tags-completion-table): Return all tags,
  including tags in the buffer. This fixes a bug that caused buffer
  tags to be excluded if user configured tags either via org-tag-alist
  or the #+TAGS keyword.
---
 lisp/org.el | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 73ab32aa0..44b57a60d 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -13724,10 +13724,11 @@ instead of the agenda files."
 		  (mapcar
 		   (lambda (file)
 		     (set-buffer (find-file-noselect file))
-		     (mapcar (lambda (x)
-			       (and (stringp (car-safe x))
-				    (list (car-safe x))))
-			     (or org-current-tag-alist (org-get-buffer-tags))))
+		     (append (org-get-buffer-tags)
+			     (mapcar (lambda (x)
+				       (and (stringp (car-safe x))
+					    (list (car-safe x))))
+				     org-current-tag-alist)))
 		   (if (car-safe files) files
 		     (org-agenda-files))))))))
 
-- 
2.16.2


  reply	other threads:[~2018-03-19 15:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-18 23:14 [Bug] org-global-tags-completion-table does not include tags from buffers Matt Lundin
2018-03-19 15:02 ` Matt Lundin [this message]
2018-03-21  1:01   ` [PATCH] " Bastien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878tao2jo6.fsf@fastmail.fm \
    --to=mdl@imapmail.org \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).