* [PATCH] Org Capture Add Tags with org-toggle-tag
@ 2022-02-03 0:57 Kevin Foley
2022-10-19 8:29 ` Ihor Radchenko
0 siblings, 1 reply; 2+ messages in thread
From: Kevin Foley @ 2022-02-03 0:57 UTC (permalink / raw)
To: Org Mode List
[-- Attachment #1: Type: text/plain, Size: 865 bytes --]
I have a capture template which utilizes %^g to prompt me for a tag to
add to a headline which already has a tag. An example to demonstrate
is:
* TODO %? %^g :foo:
If I call this template and give it "bar" when prompted for a tag, it
results in (where | is the cursor position):
* TODO | :bar: :foo:
And bar is recognized as a tag.
I've been able to resolve this with the attached patch. However,
looking at the git history of that code it seems the intent might have
been to prevent some recursive resolution so I'm not sure if this breaks
that.
I've realized I could also attach the %^g to :foo: tag in the template
and things work as expected but if that's the expectation then I think
it's worth mentioning in the docstring for org-capture-templates.
Thanks,
Kevin
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: org-capture.el.diff --]
[-- Type: text/x-diff, Size: 590 bytes --]
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index 5195b785e..b27de40fe 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -1753,9 +1753,7 @@ (defun org-capture-fill-template (&optional template initial annotation)
'org-tags-history))
":")))
(when (org-string-nw-p ins)
- (unless (eq (char-before) ?:) (insert ":"))
- (insert ins)
- (unless (eq (char-after) ?:) (insert ":"))
+ (org-toggle-tag ins 'on)
(when (org-at-heading-p) (org-align-tags)))))
((or "C" "L")
(let ((insert-fun (if (equal key "C") #'insert
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] Org Capture Add Tags with org-toggle-tag
2022-02-03 0:57 [PATCH] Org Capture Add Tags with org-toggle-tag Kevin Foley
@ 2022-10-19 8:29 ` Ihor Radchenko
0 siblings, 0 replies; 2+ messages in thread
From: Ihor Radchenko @ 2022-10-19 8:29 UTC (permalink / raw)
To: Kevin Foley; +Cc: Org Mode List
Kevin Foley <kevin@kevinjfoley.me> writes:
> I have a capture template which utilizes %^g to prompt me for a tag to
> add to a headline which already has a tag. An example to demonstrate
> is:
>
> * TODO %? %^g :foo:
>
> If I call this template and give it "bar" when prompted for a tag, it
> results in (where | is the cursor position):
>
> * TODO | :bar: :foo:
>
> And bar is recognized as a tag.
>
> I've been able to resolve this with the attached patch. However,
> looking at the git history of that code it seems the intent might have
> been to prevent some recursive resolution so I'm not sure if this breaks
> that.
>
> I've realized I could also attach the %^g to :foo: tag in the template
> and things work as expected but if that's the expectation then I think
> it's worth mentioning in the docstring for org-capture-templates.
It sounds logical to me that every %-escape will be replaced with
corresponding text. So, your toggle behaviour would actually be
surprising for me.
If you think that the existing docstring is confusing, could you provide
a patch explaining what is not clear?
--
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>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-10-19 8:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-03 0:57 [PATCH] Org Capture Add Tags with org-toggle-tag Kevin Foley
2022-10-19 8:29 ` Ihor Radchenko
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).