From: Richard Lawrence <rwl@recursewithless.net>
To: Ihor Radchenko <yantar92@posteo.net>
Cc: emacs-devel@gnu.org
Subject: Re: Upstreaming org-element-ast (was: Improving Emacs' iCalendar support)
Date: Thu, 02 Jan 2025 21:01:15 +0100 [thread overview]
Message-ID: <871pxlhto4.fsf@recursewithless.net> (raw)
In-Reply-To: <87msg9qej0.fsf@localhost>
Ihor Radchenko <yantar92@posteo.net> writes:
> 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)
D'oh. You're right; sorry for the noise.
In fact, I had already tried that in a previous iteration, but it didn't
fix the issue(s) I was seeing in the tests and so I had already
backpedaled on it by the time I wrote my previous email.
I think this bit of the docstring had convinced me by that time that
calling org-element-create via apply wasn't necessary:
> When CHILDREN is a single anonymous node, use its contents as children
> nodes.
In any case, the issue with passing nil as the &rest argument is what
causes most of the tests to fail. This remains so even once I change the
call to use (apply #'org-element-create ...) as you suggested. This *is*
documented in the Elisp manual, and I guess it makes sense, but I still
find it somewhat unintuitive to reason about.
So again, at least for all my uses, an additional/alternative interface
to org-element-create that doesn't make children a &rest argument would
be useful. I had hoped I could just make ical:make-ast-node an alias of
org-element-create, but for now I will leave it as a wrapper around
org-element-create with a different calling convention. Otherwise, I
haven't run into anything that would prevent me from using
org-element-ast and I'd be happy to use a more general version of it in
icalendar-ast.el.
Thanks for your help!
Best,
Richard
next prev parent reply other threads:[~2025-01-02 20:01 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
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
[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-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
2025-01-02 20:01 ` Richard Lawrence [this message]
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=871pxlhto4.fsf@recursewithless.net \
--to=rwl@recursewithless.net \
--cc=emacs-devel@gnu.org \
--cc=yantar92@posteo.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.