From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id MIWLGThEs2JpWAEAbAwnHQ (envelope-from ) for ; Wed, 22 Jun 2022 18:32:56 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id ON2QGDhEs2Jv+AAAG6o9tA (envelope-from ) for ; Wed, 22 Jun 2022 18:32:56 +0200 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 221673E62E for ; Wed, 22 Jun 2022 18:32:55 +0200 (CEST) Received: from localhost ([::1]:49000 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o43Hi-0000wn-FI for larch@yhetil.org; Wed, 22 Jun 2022 12:32:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60968) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o43EG-0008DH-5i for emacs-orgmode@gnu.org; Wed, 22 Jun 2022 12:29:20 -0400 Received: from ciao.gmane.io ([116.202.254.214]:57958) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o43EE-0000D7-Oa for emacs-orgmode@gnu.org; Wed, 22 Jun 2022 12:29:19 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1o43EC-0009vy-N9 for emacs-orgmode@gnu.org; Wed, 22 Jun 2022 18:29:16 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: Proposal: 'executable' org-capture-templaes Date: Wed, 22 Jun 2022 23:29:10 +0700 Message-ID: References: <87pmjyco0x.fsf@localhost> <87fskrobiw.fsf@localhost> <87a6ay1enh.fsf@localhost> <87edzvdb44.fsf@localhost> <878rpu5qf4.fsf@localhost> <87zgi7357y.fsf@localhost> <875ykuslpx.fsf@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Content-Language: en-US In-Reply-To: Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 28 X-Spam_score: 2.8 X-Spam_bar: ++ X-Spam_report: (2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NICE_REPLY_A=-0.001, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1655915576; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=ELFC5pAwwkCiCLbKiamVwK6x3v0vdHf0JBGLxEZIXrc=; b=YM+wHhCGkAhHq3lLNGKi8qn761rMen3VWSZ/aZiWoPWmF8auPWeVZa2+UtFkiA8SQutPua OFI/vbcP4yD6a3GfFXq5+KTyF5KBEkklKz3eamzCF4NVvdypEPvF3SOpODZFIqanfST6yh 1VsF1zRrRe3f2j8MgzIpCnoXISuGLOUh/DlvPmgvZlm5XQYQP+umF4dGYbPaTNELv3/sic 7/A/EyaPZNqn+DoIWu3Rq2Y7byL/C++LfYYjzuRkEDMMIT7oKGcS0AA0e/raah09QM8rmD hMxLSiibvyxkZ9OXrdqFtpF3PFZfIqMbCN6ye1L9l4/C/1UtsrWdsb/0/Lz9pA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1655915576; a=rsa-sha256; cv=none; b=DLxm1sW2ZUA5WQmi3qPuFvrAcuYX8T6I1+IJLUP0Mzy1s4mikd+ayBIe9xTmiFW5g6TfV2 qTtTKrmANJYzDajewN4xzC44QLgtWZSOvaaFRFdCaa9xbFF175LKbImGucgu/snNP0WYMl U0PDzr32vizPgWvIabwtbhpsH2anEPACpVwspEZFjopJOrCd94akgMzK5JUSrreGmx0ZVG YwcqlHlzqHhhIvFeK2vBcr1c0YAZzgiDcGjJI8YOgIb5CK54D4yJHlgGw8WBS/bo8UwxAl KNjbrYXDuUyqs8Rf5cvt4Ypi5XZAhI6yz3tHrP6sUWsTxQtMC/5v4h6I+Mc8ow== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 1.94 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 221673E62E X-Spam-Score: 1.94 X-Migadu-Scanner: scn0.migadu.com X-TUID: 8FLapc0kZiHd On 22/06/2022 19:13, Arthur Miller wrote: > Max Nikulin writes: > > Menu should and application should be separated in my eyes. Menu is just a > graphical/audio? presentation of selectable choice to the user. As such it > should display choices, let user pick a choice, and return to the application > the picked choice. Compare to completing-read, or org-mks. I don't think we > should mingle application states and menu states. By state I mean some structure opaque to menu package. It just receives it from caller as an optional argument and (when given) later passes it to handler. Maybe it is alien approach in LISP, but in C (where closures are impossible) it is a widely used technique. Functions having callback argument usually have another void* one that is later passed as an argument of the callback function in addition to other data. (org-buffer-menu '(("a" "Option A" (1)) ("b" "Option B" (2))) :handler (lambda (entry state) (message "value %S state %S" (nth 2 entry) state)) :state '(1 2 3)) Menu caller does not care whether some buffer is created to present menu. Menu has no idea what state may contain, it just passes it to the handler. When menu is implemented as a buffer with keymap then state is stored as a buffer-local variable. As to your current implementation of org-select, I do not like that it is responsibility of caller to create different buffer names to enable multiple instances of menu. I would prefer to control single/multiple instances through a boolean argument of org-select. Arthur, I see that I should response to more your comments. However I am unable to identify source of disagreement, likely it is some different assumptions. That is why I decided to concentrate on a couple of questions in this message.