From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id IKDrHKXvBV8hdgAA0tVLHw (envelope-from ) for ; Wed, 08 Jul 2020 16:09:09 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id GAnQGKXvBV92HgAAbx9fmQ (envelope-from ) for ; Wed, 08 Jul 2020 16:09:09 +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 BF1549402A2 for ; Wed, 8 Jul 2020 16:09:08 +0000 (UTC) Received: from localhost ([::1]:47660 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jtCd8-0003ZF-9s for larch@yhetil.org; Wed, 08 Jul 2020 12:09:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41340) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jtCc6-0002yG-TX for emacs-orgmode@gnu.org; Wed, 08 Jul 2020 12:08:02 -0400 Received: from static.214.254.202.116.clients.your-server.de ([116.202.254.214]:48940 helo=ciao.gmane.io) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jtCc5-0002pj-Fy for emacs-orgmode@gnu.org; Wed, 08 Jul 2020 12:08:02 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1jtCc2-0004JD-NT for emacs-orgmode@gnu.org; Wed, 08 Jul 2020 18:07:58 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Nick Dokos Subject: Re: [PATCH] org: add property names from #+PROPERTY keywords to completion list Date: Wed, 08 Jul 2020 12:07:52 -0400 Message-ID: <87eepmkn1j.fsf@pierrot.dokosmarshall.org> References: <87o8osxevq.fsf@alphaville.usersys.redhat.com> <87v9j054ya.fsf@kyleam.com> <87y2nvw9t1.fsf@alphaville.usersys.redhat.com> <87sge264v1.fsf@kyleam.com> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cancel-Lock: sha1:95puM2Xxb0v5WyUrep/jHsBs3/w= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/08 11:47:07 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: 30 X-Spam_score: 3.0 X-Spam_bar: +++ X-Spam_report: (3.0 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, FUZZY_DR_OZ=1, HEADER_FROM_DIFFERENT_DOMAINS=1, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 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@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -0.41 X-TUID: Z+3Mc2r+Z7sB Kyle Meyer writes: > Nick Dokos writes: > >> Here's the amended patch: it includes the fixes from Kyle's review, the modification >> he suggested that adds the plain property for each _ALL property to the list >> and a few test cases to the test/org-buffer-property-keys test. > > Thank you for the updates. Applied (bc4fa8a00). > >> - nil))) >> + ;; Get property names from #+PROPERTY keywords as well >> + (mapcar (lambda (s) >> + (nth 0 (split-string s))) >> + (cdar (org-collect-keywords '("PROPERTY")))) >> + nil)) > > I didn't spot it earlier, but this nil (not added by your patch) is > unnecessary. Since the patch is touching the line anyway, I've dropped > it on apply. > >> + bare-props) >> (org-with-wide-buffer >> (goto-char (point-min)) >> (while (re-search-forward org-property-start-re nil t) >> @@ -13132,7 +13137,15 @@ COLUMN formats in the current buffer." >> (let ((p (match-string-no-properties 1 value))) >> (unless (member-ignore-case p org-special-properties) >> (push p props)))))))))) >> - (sort (delete-dups props) (lambda (a b) (string< (upcase a) (upcase b)))))) >> + (sort (delete-dups (append props >> + ;; for each xxx_ALL property, make sure >> + ;; the bare xxx property is also >> + ;; included >> + (dolist (x props bare-props) >> + (if (string-match "_ALL\\b" x) >> + (setq bare-props (cons (substring x 0 -4) >> + bare-props)))))) > > I did a cosmetic rewrite here to use mapcar, which I hope you won't > mind. > BTW, I just thought of a possible problem: the manual says that property keys are case-insensitive (although all the examples I can find spell "_ALL" in upper case, but if I write :PROPERTIES: :foo_all: bar baz :END: I don't think that the code is going to handle it correctly. There are other places that also use "_ALL" without a let of case-fold-search (at least AFAICT). Am I paranoid or is this a problem? -- Nick