From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: add additional tag (using %^G) to existing tag in org capture Date: Sun, 10 Sep 2017 09:46:49 +0200 Message-ID: <878thn2dxy.fsf@nicolasgoaziou.fr> References: <87377xdbni.fsf@alphapapa.net> <87wp59biv0.fsf@alphapapa.net> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:60223) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dqwxD-0006Jq-70 for emacs-orgmode@gnu.org; Sun, 10 Sep 2017 03:46:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dqwxA-0007gN-3h for emacs-orgmode@gnu.org; Sun, 10 Sep 2017 03:46:55 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:51843) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dqwx9-0007fV-TQ for emacs-orgmode@gnu.org; Sun, 10 Sep 2017 03:46:52 -0400 In-Reply-To: <87wp59biv0.fsf@alphapapa.net> (Adam Porter's message of "Fri, 08 Sep 2017 05:11:15 -0500") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Adam Porter Cc: emacs-orgmode@gnu.org Hello, Adam Porter writes: > Xebar Saram writes: > >> the issues is that it dosent seem to add an additional tag to the already defined tag list in the capture (:@work: ) but instead add another :TAG: field >> apart from the already existing tag field. so the final result looks like this: >> >> ** TODO TEST :@work: :TAG: >> >> while i expect the %^G capture to add to the existing tag entry so it looks like this >> >> ** TODO TEST :@work:TAG: > > Hey Z, > > I understand now. Yes, that happens because org-capture-fill-template > inserts the tag text manually, like this: > > #+BEGIN_SRC elisp > (let* ((org-last-tags-completion-table > (org-global-tags-completion-table > (cond ((equal key "G") (org-agenda-files)) > (file (list file)) > (t nil)))) > (org-add-colon-after-tag-completion t) > (ins (mapconcat > #'identity > (org-split-string > (completing-read > (if prompt (concat prompt ": ") "Tags: ") > 'org-tags-completion-function nil nil nil > 'org-tags-history) > "[^[:alnum:]_@#%]+") > ":"))) > (when (org-string-nw-p ins) > (unless (eq (char-before) ?:) (insert ":")) > (insert ins) > (unless (eq (char-after) ?:) (insert ":")) > (and (org-at-heading-p) > (let ((org-ignore-region t)) > (org-set-tags nil 'align))))) > #+END_SRC > > It would be simple to have it use org-set-tags-to instead of inserting > them manually. I guess that would be correct in the vast majority of > cases, however IIUC it would be a change in functionality, as the %^G > could be put anywhere in the template and insert tags there (which seems > like a strange thing to do, but you never know). On the other hand, it > seems like what you're asking for would be the more expected > functionality, in which case this would be a bug fix. So maybe the > maintainers would accept a patch for that, or maybe not... :) Either case sounds odd to me. As you point out, using `org-set-tags-to' means "%^G" is no longer a placeholder, since the change is likely to happen is some other location. >From a UI POV, turning "^%G" into a property, e.g., :ask-for-tags, could make more sense. WDYT? Regards, -- Nicolas Goaziou