From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Christopher M. Miles" Newsgroups: gmane.emacs.help Subject: [QUESTION] I have problem on my org-contacts capf function source code Date: Sun, 14 Nov 2021 17:59:38 +0800 Message-ID: Reply-To: numbchild@gmail.com Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4294"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.7.0; emacs 28.0.60 To: Emacs Help Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sun Nov 14 11:02:44 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mmCLU-0000uP-64 for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 14 Nov 2021 11:02:44 +0100 Original-Received: from localhost ([::1]:36898 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mmCLS-0001uV-FZ for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 14 Nov 2021 05:02:42 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:41774) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mmCKk-0001uH-7b for help-gnu-emacs@gnu.org; Sun, 14 Nov 2021 05:01:58 -0500 Original-Received: from mail-am6eur05olkn2067.outbound.protection.outlook.com ([40.92.91.67]:62432 helo=EUR05-AM6-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mmCKh-0005Gm-TN for help-gnu-emacs@gnu.org; Sun, 14 Nov 2021 05:01:57 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lPNGLFsbXW9sZ6ly8ih/f9zccKL2kSTLeIpm66yADuxw1SqGN4ZfxiH+fCO/9b97NTWoly7kz55bDAYUB9bvJpcc8ji8eTI2UENa7M0nUTdznki8EXUrrsRyQIX+8C6AQ9/ZGQUlAzIjdRzwO/U3zfFjgF783s67FKn/vjbE86+rS8IZNg5fqxzaICv/Sm/jB3hCW1PNDMR/etHWmS68H2tAOSuBAX/5M8hYMHjKFx0YsZWL3+cVPnGSDRZwMhZuDAQ9Un5hfySoUmGKhUtFszEsO6WXf3g8B7FrIU8Z/Ww2Ui0T1fJcNjQmHiG2A30MrjdKkD+Gs+XugU3R7Su6Bw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XQ9TG+QkaMf6tk+02QPAlL82hmS/HjZLop1n70xxgPY=; b=BpHn364kSi3Hzec+liHqKXkm+zdclEDeMQ5Ppyd4ftTpl+WQ/+cmFpXbAm3DlAPKZal4CgZ2O8j4J9vgK9DPyHGd90zfLE2mQL/lDma9igebnWVZkEwCuIbT3Pa4MToxTyLFS5YrPgxQxvPZnbVp2C7DFlNH+2W3gjqrP4uW+Y1LUiSUY5z2/rh87FFJT+ql7jrU5QygIvpLFyXgLNKAGe4A17F6m0KNK02G37V6Jn7cGNzbepuqC0lmdUWlniEEi19PbCc/zljDo5cSr3WtCb/6bV88x11QeOKRHxm2yg/UVc6H90E4uLOuQEVl/O1KTeSf8BhQ6AzLJyl/B06mZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XQ9TG+QkaMf6tk+02QPAlL82hmS/HjZLop1n70xxgPY=; b=DYwOEB9nnfM2cqpNd9l0HL9drOdCpkrOznJP27I/JtU5bGr/zPSUXto9sWPGw9Pu7WNaPpbl9YxPy0J5YK3LeVyIRtFgkXFSbIqX+OIM0zb7PHDn7F5TtfFHD5JriVA/qJH3WVF0oGNO1y8rjraj+rOZHjeLQsONUHGrUJI08v8lJDSgX/Tsf4QLrNyw+neKJwp4IUPRq0Jk93l85tDjG+1E3/Y7WgB6BCyYXC4pssk7rzxJbmayqwhdqE9sYdlLfBnc+Yym/PN6POmOaLOam/vFjqZxc4Vf3oGhg3Z+9YxmTKU39tmPhrre5pmR7o2ozbSVljVn6RTIOqqPq9E+lw== Original-Received: from PAXPR08MB6640.eurprd08.prod.outlook.com (2603:10a6:102:dd::5) by PR2PR08MB4908.eurprd08.prod.outlook.com (2603:10a6:101:23::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Sun, 14 Nov 2021 10:01:53 +0000 Original-Received: from PAXPR08MB6640.eurprd08.prod.outlook.com ([fe80::90c1:4e36:aaac:49d0]) by PAXPR08MB6640.eurprd08.prod.outlook.com ([fe80::90c1:4e36:aaac:49d0%6]) with mapi id 15.20.4690.026; Sun, 14 Nov 2021 10:01:53 +0000 X-TMN: [3uNNdtKKt7BpcALLVa5vT88tPIlqVBMY] X-ClientProxiedBy: HK2PR04CA0085.apcprd04.prod.outlook.com (2603:1096:202:15::29) To PAXPR08MB6640.eurprd08.prod.outlook.com (2603:10a6:102:dd::5) X-Microsoft-Original-Message-ID: X-MS-Exchange-MessageSentRepresentingType: 2 Original-Received: from Mac-mini.local (115.231.16.203) by HK2PR04CA0085.apcprd04.prod.outlook.com (2603:1096:202:15::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend Transport; Sun, 14 Nov 2021 10:01:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f0bc2816-257f-48aa-17d4-08d9a755c8d8 X-MS-TrafficTypeDiagnostic: PR2PR08MB4908: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z5jvlcXcw40QrLfbReC8iNEkrTa0MBxBoBScCefrtokpPQmj2yGHK1jD22UoIXLnq80qSri6xXKQb9qARthB5dYZLBVh56eMOXE8s+W2exuGd36Swm0AJMwG453YHyKiVquU3xnyCX44EH1B21REpaEMJmPq4MNOqR8bbMGbg1jbbn3w5P2i8QK+oE6ZyTrnXxpfB2Z4qJmZg6ZEJti+iKWIrjPpXIiXMQn9pa6hzKTTfeJfpAyGAFFJPETdbtI56eZ5W5jzTKJfDNLaBXqUNEmIMd6IKrzUwX3E0JB7gYmzoRncRaYaJvwR+LSWPxu2umAvNqusb1tOlP2aUTEM+aCxicNMOW7GHFE6D0XvR0gCx5cP2OwlMhzXI7XaurUtlm3II/DcKWYNK+JYf86O4PHyxa8eKIxtTKVWRH++pmg2QzrOyZ7RbtXPHCRD/AM7dglZKq2MtjZYmeOU1HEijonobYzQo6moq0zwpwuJDmczNJc4Un8VRgQDiy0+JZOL5Cg+W7oacLciENwoUHyLSo3Hk/1JBOvH71iShVrZWDxbU+kF2jIE5kMj8ZSQYUBsT4tX5qziifrJNKvBtM6kxw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zSqbEuUMWZxAoVh8iZr9cmsJQtX4ehJgiJfwneq9qBnk/0yPsUsIY1aSKCBRRZE+ty55CHTvjfdfXrRVb2Xf8Ow/W7czwnuZvFkjmZulTkHnE5m4eLG7Y0P78a/t5fyCWyR8ZwPvwJ2bKp5T4IfpUluhxUgJnujajmuuQR/oTblEwRML3dy3TXZqJ01g0mWeTa/+8z1Y9HfQ7dDo6+YlUXge1+JRMrwp4/CHo4mwkBLmKYIhaJ/GVXxJKwB3ZXcFDpxjRNxUuBwC/ASn/b7b+GL0rQhV7wgxY4yVRToN2DoZ2UxOoG1V5iIkeHw99ahMW+Pqzbs9sbSRUHKzEdJMhJnHcV4PQF75TK7kgurRzkTOCm0VyrwS3Th9Ky2wIIYB3q+o+bqnIgMaqHGIHGRMr5AtBta4DhWUvyg9+SCZKhToDL5PyEoFJO//1vElfYdZ2WZ+AycWraRBHiJhbv+jpvRs2IafDnSaWJBPMekbFWudKSqvQ7c+bfayhSaxJiWaVgpPzppvG0FUrPEidABuOwiixPU0VVMynEUR/4qWdkleyiJFBUblpwdRQYrTlXHzlmsw1dz6y6oknnOruA0o8nXcIU24ovBqOxkSDu8pcjWxrOLIrI1Exbc/fztgPBxQe5Ai4uGJDZy7jBf6zSNiBSvXMcPMBkPErDmCN9PZGVS7X9zTNjbmFU7nX6WfwW7LAc5ECBTuBp51Nq6nuOMF1w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0bc2816-257f-48aa-17d4-08d9a755c8d8 X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB6640.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2021 10:01:53.5320 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4908 Received-SPF: pass client-ip=40.92.91.67; envelope-from=stardiviner@outlook.com; helo=EUR05-AM6-obe.outbound.protection.outlook.com X-Spam_score_int: 4 X-Spam_score: 0.4 X-Spam_bar: / X-Spam_report: (0.4 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, MSGID_FROM_MTA_HEADER=0.001, NML_ADSP_CUSTOM_MED=0.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:134580 Archived-At: --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I try to write a capf function for org-contacts to auto complete contact na= mes after "@". Here is my code, but it still does not work. Can someone help me to review my code and= figure out the problem. If you provide problem solution is welcome. Thanks a lot. #+begin_src emacs-lisp (defun org-contacts-org-complete-function () "Function used in `completion-at-point-functions' in `org-mode' to comple= te @name." (when-let* ((@-prefix-p (string-prefix-p "@" (thing-at-point 'symbol))) (symbol (thing-at-point 'symbol)) (prefix (substring-no-properties symbol 1 nil)) (bounds (bounds-of-thing-at-point 'symbol)) (begin (car bounds)) (end (cdr bounds))) (list begin end (all-completions prefix (mapcar (lambda (contact) (plist-get contact :name)) (org-contacts--all-contacts)) 'stringp) ;; (completion-table-dynamic ;; (lambda (input) ;; (mapcar ;; (lambda (contact) (plist-get contact :name)) ;; (org-contacts--all-contacts)))) :exclusive 'no :annotation-function ; tags ;; TODO (lambda (candidate) "Tags: ") :company-docsig #'identity ; metadata :company-doc-buffer ; doc popup (lambda (candidate) (let ((name (plist-get candidate :name)) (file (plist-get candidate :file)) (position (plist-get candidate :position))) (company-doc-buffer ;; get org-contact headline and property drawer. (with-current-buffer (find-file-noselect file) (goto-char position) (when (derived-mode-p 'org-mode) ;; `org-edit-src-code' is not a real narrowing command. ;; Remove this first conditional if you don't want it. (cond ((ignore-errors (org-edit-src-code)) (delete-other-windows)) ((org-at-block-p) (org-narrow-to-block)) (t (org-narrow-to-subtree))) (buffer-substring (point-min) (point-max))))))) :company-location (lambda (candidate) (let ((name (plist-get candidate :name)) (file (plist-get candidate :file)) (position (plist-get candidate :positio= n))) (with-current-buffer (find-file-noselect fi= le) (goto-char position) (cons (current-buffer) position))))))) ;;; @Chr (add-hook 'completion-at-point-functions 'org-contacts-completion-at-point = nil 'local) ;; (add-to-list 'completion-at-point-functions 'org-contacts-completion-at-= point) #+end_src =2D-=20 [ stardiviner ] I try to make every word tell the meaning that I want to express. Blog: https://stardiviner.github.io/ IRC(freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAmGQ3oUACgkQG13xyVro msPr2gf9FL6yzXtBV9fGyGYWGqq8B6i1Jwh8aDv1CKGYttvDq9Nu0AC5xbx5+nSF 52hYbaNbRrhveMybyaZgsdBWqpzz/ruYr9mh1sL+1PL/TCUEaEhUo+C2UMIJxMH5 IYCbJ1rGgvDh/cupZHaj53xjeuuC+TTaoXy8AuHbiNpaFaKIPWYXkLXvckwFxw72 sm23UQ0YrKh988VPnY0NxCGmTtubI57CoRu3/EZB3OcMqKHi0uS311MNt79f5dUf ba9FM+z1WPw5mYrlWEsUc4c99W1X3bi2uWLg25bvanTP58416HYUiXjl8ph9lvBo uTUIcPs/ZnHL8xKsXaCDro3XsAm01Q== =+v1G -----END PGP SIGNATURE----- --=-=-=--