From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id KDFEFxBou1+pewAA0tVLHw (envelope-from ) for ; Mon, 23 Nov 2020 07:43:12 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id CIEYExBou19dKgAAB5/wlQ (envelope-from ) for ; Mon, 23 Nov 2020 07:43:12 +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 DAA329400D3 for ; Mon, 23 Nov 2020 07:43:11 +0000 (UTC) Received: from localhost ([::1]:53500 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kh6VB-00063K-EU for larch@yhetil.org; Mon, 23 Nov 2020 02:43:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60190) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kh6UJ-00063A-5y for emacs-orgmode@gnu.org; Mon, 23 Nov 2020 02:42:15 -0500 Received: from static.214.254.202.116.clients.your-server.de ([116.202.254.214]:33830 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 1kh6UH-0005us-9T for emacs-orgmode@gnu.org; Mon, 23 Nov 2020 02:42:14 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kh6UC-0004i7-F9 for emacs-orgmode@gnu.org; Mon, 23 Nov 2020 08:42:08 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Adam Porter Subject: [ANN] Org QL Custom Predicates Tutorial Date: Mon, 23 Nov 2020 01:41:59 -0600 Message-ID: <87blfo1pvc.fsf@alphapapa.net> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, 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: ns3122888.ip-94-23-21.eu 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-Spam-Score: -0.51 X-TUID: MXP/CmoLOQlG Hi again friends, Following the release of org-ql 0.5, I've pushed a new feature to the 0.6-pre branch: custom predicates. You can now easily define custom predicates to make searching easier. For example, you could define a custom (person) predicate like so: #+BEGIN_SRC elisp (org-ql-defpred person (name) "Search for entries with the \"person\" property being NAME." :body (property "person" name)) #+END_SRC Then you could do a search for entries in your agenda files having the property "person" with the value "Bob" like this: #+BEGIN_SRC elisp (org-ql-search (org-agenda-files) "person:Bob") #+END_SRC Please see the tutorial for a walkthrough of the process of building a custom predicate incrementally: https://github.com/alphapapa/org-ql/blob/master/examples/defpred.org Thanks, Adam