From: Ihor Radchenko <yantar92@posteo.net>
To: Richard Lawrence <rwl@recursewithless.net>
Cc: emacs-devel@gnu.org
Subject: Re: Upstreaming org-element-ast (was: Improving Emacs' iCalendar support)
Date: Thu, 02 Jan 2025 18:03:31 +0000 [thread overview]
Message-ID: <87msg9qej0.fsf@localhost> (raw)
In-Reply-To: <87seq290b6.fsf@recursewithless.net>
Richard Lawrence <rwl@recursewithless.net> writes:
>> Should be just
>> (org-element-create type props contents)
>> and then
>> (org-element-contents new-node)
>
> That's what I would have thought. In my experiment, I have done this:
>
> (defun ical:make-ast-node (type &optional props &rest children)
> ;; automatically mark :value as a seconary property for org-element-ast:
> (let ((full-props (plist-put props :secondary (list :value))))
> (org-element-create type full-props children)))
>
> (so basically just aliasing org-element-create) and
That's not what you did.
You did not replicate the calling convention
(org-element-create 'type properties '(<child1> <child2> ...))
(ical:make-ast-node 'test nil '("a" "b" "c"))
will have CHILDREN = '(("a" "b" "c"))
and pass this argument to `org-element-create' that will faithfully
create a node with a single child - anonymous node ("a" "b" "c").
You should do
(apply #'org-element-create type full-props children)
This is a common pattern when passing argument to a function with &rest.
--
Ihor Radchenko // yantar92,
Org mode maintainer,
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>
next prev parent reply other threads:[~2025-01-02 18:03 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-18 9:01 Improving Emacs' iCalendar support Richard Lawrence
2024-10-18 9:24 ` Eli Zaretskii
2024-10-19 8:22 ` Richard Lawrence
2024-10-19 10:11 ` Eli Zaretskii
2024-10-20 5:08 ` Richard Lawrence
2024-10-20 5:21 ` Eli Zaretskii
2024-10-18 12:58 ` Sebastián Monía
2024-10-19 8:28 ` Richard Lawrence
2024-10-19 5:44 ` Adam Porter
2024-10-19 8:39 ` Richard Lawrence
2024-10-20 3:09 ` Adam Porter
2024-10-22 18:40 ` Ihor Radchenko
2024-10-23 7:29 ` Björn Bidar
[not found] ` <87plnr6zvk.fsf@>
2024-10-23 8:09 ` Ihor Radchenko
2024-10-23 9:05 ` Richard Lawrence
2024-10-23 10:03 ` Björn Bidar
2024-10-23 9:01 ` Richard Lawrence
2024-10-23 20:24 ` Ferdinand Pieper
2024-10-24 14:52 ` Richard Lawrence
2024-10-24 17:45 ` Ihor Radchenko
2024-10-25 12:53 ` Richard Lawrence
2024-10-25 18:59 ` Ihor Radchenko
2024-10-21 6:10 ` Björn Bidar
2024-10-21 6:22 ` Visuwesh
2024-10-23 9:15 ` Richard Lawrence
2024-10-23 9:45 ` Visuwesh
[not found] ` <87wmi29eaf.fsf@>
2024-10-26 17:49 ` Ihor Radchenko
2024-10-28 10:44 ` Björn Bidar
[not found] ` <87r080tslf.fsf@>
2024-10-28 19:09 ` Ihor Radchenko
2024-11-23 8:44 ` Richard Lawrence
2024-11-24 9:50 ` Eli Zaretskii
2024-11-24 10:21 ` Ihor Radchenko
2024-11-24 10:41 ` Eli Zaretskii
2024-11-24 10:58 ` Ihor Radchenko
2024-11-24 11:08 ` Eli Zaretskii
2024-11-24 11:21 ` Upstreaming org-element-ast (was: Improving Emacs' iCalendar support) Ihor Radchenko
2024-11-24 12:55 ` Eli Zaretskii
2024-12-25 11:31 ` Ihor Radchenko
2024-12-29 20:19 ` Richard Lawrence
2024-12-29 20:53 ` Richard Lawrence
2024-12-30 17:18 ` bug#74994: " Ihor Radchenko
2024-12-30 17:18 ` Ihor Radchenko
2024-12-29 20:53 ` bug#74994: " Richard Lawrence
2024-12-30 17:16 ` Ihor Radchenko
2024-12-31 7:55 ` Richard Lawrence
2025-01-01 9:29 ` Ihor Radchenko
2025-01-01 12:38 ` Richard Lawrence
2025-01-02 18:03 ` Ihor Radchenko [this message]
2025-01-02 20:01 ` Richard Lawrence
2025-01-02 20:09 ` Ihor Radchenko
2025-01-01 13:01 ` Richard Lawrence
2024-12-29 20:19 ` bug#74994: " Richard Lawrence
2024-11-25 9:09 ` Improving Emacs' iCalendar support Richard Lawrence
2024-11-25 12:42 ` Eli Zaretskii
2024-11-25 13:03 ` Rudolf Schlatte
2024-11-25 13:36 ` Eli Zaretskii
2024-11-25 17:14 ` Richard Lawrence
2024-12-20 13:21 ` Richard Lawrence
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87msg9qej0.fsf@localhost \
--to=yantar92@posteo.net \
--cc=emacs-devel@gnu.org \
--cc=rwl@recursewithless.net \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.