From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id UNYEJW65ol6yHQAA0tVLHw (envelope-from ) for ; Fri, 24 Apr 2020 10:03:26 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id EPhXBHW5ol7iKgAA1q6Kng (envelope-from ) for ; Fri, 24 Apr 2020 10:03:33 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 5151B94060C for ; Fri, 24 Apr 2020 10:03:32 +0000 (UTC) Received: from localhost ([::1]:58368 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jRvBC-0007yH-6R for larch@yhetil.org; Fri, 24 Apr 2020 06:03:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40748) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jRv9D-0006pS-Kw for emacs-orgmode@gnu.org; Fri, 24 Apr 2020 06:01:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jRv9C-00041w-M1 for emacs-orgmode@gnu.org; Fri, 24 Apr 2020 06:01:27 -0400 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:49355) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jRv9B-0003wS-TS for emacs-orgmode@gnu.org; Fri, 24 Apr 2020 06:01:26 -0400 X-Originating-IP: 185.131.40.67 Received: from localhost (40-67.ipv4.commingeshautdebit.fr [185.131.40.67]) (Authenticated sender: admin@nicolasgoaziou.fr) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id E57D6C0003; Fri, 24 Apr 2020 10:01:21 +0000 (UTC) From: Nicolas Goaziou To: No Wayman Subject: Re: [RFC] DOCT: Declarative Org Capture Templates References: <87wo66t8i7.fsf@gmail.com> Mail-Followup-To: No Wayman , emacs-orgmode@gnu.org Date: Fri, 24 Apr 2020 12:01:20 +0200 In-Reply-To: <87wo66t8i7.fsf@gmail.com> (No Wayman's message of "Thu, 23 Apr 2020 13:30:25 -0400") Message-ID: <87y2qlgq33.fsf@nicolasgoaziou.fr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=217.70.183.198; envelope-from=mail@nicolasgoaziou.fr; helo=relay6-d.mail.gandi.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/24 06:01:22 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 217.70.183.198 X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 X-Spam-Score: -1.11 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Scan-Result: default: False [-1.11 / 13.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; GENERIC_REPUTATION(0.00)[-0.56142517683667]; HAS_XOIP(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.51.188.0/24:c]; IP_REPUTATION_HAM(0.00)[asn: 22989(0.21), country: US(-0.00), ip: 209.51.188.17(-0.56)]; MX_GOOD(-0.50)[cached: eggs.gnu.org]; RCPT_COUNT_TWO(0.00)[2]; MAILLIST(-0.20)[mailman]; FREEMAIL_TO(0.00)[gmail.com]; RCVD_IN_DNSWL_LOW(-0.10)[209.51.188.17:from]; RCVD_TLS_LAST(0.00)[]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:22989, ipnet:209.51.188.0/24, country:US]; MID_RHS_MATCH_FROM(0.00)[]; TAGGED_FROM(0.00)[larch=yhetil.org]; ARC_NA(0.00)[]; RCVD_COUNT_FIVE(0.00)[6]; FROM_NEQ_ENVFROM(0.00)[mail@nicolasgoaziou.fr,emacs-orgmode-bounces@gnu.org]; FROM_HAS_DN(0.00)[]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[nicolasgoaziou.fr]; HAS_LIST_UNSUB(-0.01)[]; FORGED_SENDER_MAILLIST(0.00)[] X-TUID: cAvjFzCL80l4 Hello, No Wayman writes: > * [RFC] DOCT: Declarative Org Capture Templates Thank you for your work. I have some comments. Disclaimer: I am only using very basic capture templates. So, I cannot comment realistically on the new syntax you suggest. In particular, the example you give is way too complex for me to understand the benefits of your syntax. I suggest to start out with showing simple use-cases. Anyway, I hope more advanced capture template users can chime in and comment your design. My beginner questions are the following : - Is it compatible with the current syntax? If it isn't, is there a way to ease transition to the new syntax? - Is it simple to use on simple use-cases? - Is it more capable than the current syntax, i.e., does it handle situations that are not possible, even in a convoluted way, currently? > - DOCT validates templates before runtime execution. > > For exmaple, you have a template with an entry type of `'entry' > and you forget the leading star in the template string. > Days later you go to use that template. It's borked. This is different from introducing a new syntax for capture templates. Actually, `org-insert-place-item' and `org-capture-place-table-line' both try to fix misshaped templates already. OTOH `org-capture-place-entry' merely calls `org-capture-verify-tree' on the template, i.e., it barfs if the template is ill-defined. It is a discrepancy we could fix independently on your new syntax. I invite you to propose a patch for `org-capture-place-entry' so it does a better job at fixing the initial template, if needed. I'll gladly apply it. Regards, -- Nicolas Goaziou