From: Adam Porter <adam@alphapapa.net>
To: rwl@recursewithless.net
Cc: emacs-devel@gnu.org
Subject: Re: Improving Emacs' iCalendar support
Date: Sat, 19 Oct 2024 00:44:49 -0500 [thread overview]
Message-ID: <0bacd69a-7941-44d2-ac5e-3ae3f256481a@alphapapa.net> (raw)
In-Reply-To: <87ed4dss2x.fsf@ohm.mail-host-address-is-not-set>
Hi Richard,
I don't have much to add to what's been said, but my first thought is
that a robust iCal library would probably be most useful for importing
and exporting between the iCal format, obviously. So I'd suggest that
its API should help with transforming iCal data into other formats,
probably by converting it into a simple Lisp data structure that other
libraries could work with. And then, it should also provide a function
to transform that data structure back into an iCal file.
Also, it would be good if it were designed to be extensible in case the
standards receive updates, or in case vendor-specific functionality is
needed by users.
So I'd suggest looking at the existing Emacs/Org applications that use
iCal, and designing your API so that such applications would find it
easy to use (not that it should directly imitate what already exists,
unless such APIs are already ideal).
Finally, I'd suggest that you consider using structs as the primary
internal data structure, because they provide setter and accessor
functions, which are helpful to developers (e.g. they help catch some
mistakes at compilation time). If you do, I've found it helpful to
define an "etc" slot in various structs to which an alist or plist can
be attached, which provides the ability for the structs to carry
additional data that wasn't foreseen during its design.
--Adam
next prev parent reply other threads:[~2024-10-19 5:44 UTC|newest]
Thread overview: 13+ 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 [this message]
2024-10-19 8:39 ` Richard Lawrence
2024-10-20 3:09 ` Adam Porter
2024-10-21 6:10 ` Björn Bidar
2024-10-21 6:22 ` Visuwesh
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.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0bacd69a-7941-44d2-ac5e-3ae3f256481a@alphapapa.net \
--to=adam@alphapapa.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 public inbox
https://git.savannah.gnu.org/cgit/emacs.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).