From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#42654: Using electric-pair-inihibit-predicate won't work for all members of electric-pair-pairs Date: Tue, 07 Jun 2022 11:53:17 +0200 Message-ID: <87tu8wn6k2.fsf@gnus.org> References: <1TK38SyOLkqabqkCrOYwMFSlY5dxH2-9LZVgtl-xgLwFmdAta5cLCMcWRLXya124ex_cHppAJJOM0nyVVS16JUlTv7zWNdB2oy68gM1cNYw=@protonmail.com> <87h74xstem.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8620"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: 42654@debbugs.gnu.org, =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= To: ej32u@protonmail.com Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jun 07 12:22:36 2022 Return-path: Envelope-to: geb-bug-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 1nyWM7-0001zg-Vl for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 07 Jun 2022 12:22:35 +0200 Original-Received: from localhost ([::1]:57612 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nyWM6-0006yL-FV for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 07 Jun 2022 06:22:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59664) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nyVuU-0006mf-5d for bug-gnu-emacs@gnu.org; Tue, 07 Jun 2022 05:54:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:43918) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nyVuT-0003Rj-Tb for bug-gnu-emacs@gnu.org; Tue, 07 Jun 2022 05:54:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nyVuT-0000ej-QV for bug-gnu-emacs@gnu.org; Tue, 07 Jun 2022 05:54:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 07 Jun 2022 09:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42654 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 42654-submit@debbugs.gnu.org id=B42654.16545956102483 (code B ref 42654); Tue, 07 Jun 2022 09:54:01 +0000 Original-Received: (at 42654) by debbugs.gnu.org; 7 Jun 2022 09:53:30 +0000 Original-Received: from localhost ([127.0.0.1]:37815 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nyVtx-0000dy-TF for submit@debbugs.gnu.org; Tue, 07 Jun 2022 05:53:30 -0400 Original-Received: from quimby.gnus.org ([95.216.78.240]:50944) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nyVtw-0000dW-20 for 42654@debbugs.gnu.org; Tue, 07 Jun 2022 05:53:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=DWJ8t5iDWai626G9aMdJSjUe8VKGVdKuI3Ho4IJwuS8=; b=URbzu7Ep6ENcTAXQnX0wRpvpTR tblwNVT2YZ6CZLlRCQnueeDrl9vg75qgUZdColbzTegY9FTMAPotcoUd3qQ/BWsF66G5f2pkIqlc3 spRdhY8qQjS8cNKKfx1H/I7fr+YbOKrP7TRM1d38KSktL7DrAYJa0Sf4S1MwEtTD6+R8=; Original-Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nyVtm-0000xk-PL; Tue, 07 Jun 2022 11:53:21 +0200 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEV0i8mqt9qIe2RZ UzQlJhT///8BGhQ6AAAAAWJLR0QF+G/pxwAAAAd0SU1FB+YGBwkyJi7ydSUAAAGOSURBVDjLdZPr YcMwCISlDaxM0IAXqGCCoP1n6vGw46QJP2xFH9wh5LT2OcbrevSxYdXHKOCrbWRsPV5tOyt7H22c 8UHdd/s/0N+TewvbMHmv367y46y/xNaKvu1XGfgX8CWu6S+V7exl3OYLaHQk7vJ7BSZC5J1tS+Yb iCA2o/sFTJ0cRJdNmoQowJM5kKIkXrLwDEDExL4zKWsRzbc9CvAJlng+AiAceO4J0Naq1nQhRRyo V1wBHhAzUWmlWyRfAE8pxhMVnFLhQaQ4mXdldaDq6pBZxo8QSmD6BJnkiqbtMIy0nMykcb81pAGt Vft+xJ5jj1TLXif9HN9TK4GMmIlDAIl9s5WFOVHCnyAycUduY6p6lBXwU8MM4LGkgF/XIlyGQm7f 8QgCc/G71Gx4OfUpkQ/RO35oWK2jB8asoI8zqNskwFu4SWjLvth3vG9TZAJANk4v5RDrKS1mZAVc P1sQvw+XeJJY4s413CRNC/jEA2BW+KGaTfmXF+ZhqO7EaRJ3EBXeoJ3HRrOYzx/t17FtTN2DFAAA ACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wNi0wN1QwOTo1MDozNyswMDowMP8Dw9MAAAAldEVYdGRh dGU6bW9kaWZ5ADIwMjItMDYtMDdUMDk6NTA6MzcrMDA6MDCOXntvAAAAAElFTkSuQmCC X-Now-Playing: The Names's _In Mutation_: "A Coeur Fendre" In-Reply-To: (ej32u@protonmail.com's message of "Tue, 07 Jun 2022 02:08:01 +0000") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:233851 Archived-At: ej32u@protonmail.com writes: > I tried setting ~electric-pair-inhibit-predicate~, but found that it > isn't used unless the inserted character has the right syntax. That > function is run by ~electric-pair-post-self-insert-function~, which > seems to only run the predicate function if the inserted character is > ~(memq syntax '(?\( ?\" ?\$))~. Ah, right. Here's the complete recipe to reproduce the problem: (progn (require 'elec-pair) (setq-local electric-pair-pairs (cons '(?* . ?*) electric-pair-pairs)) (electric-pair-mode 1) (defun my-inhibit-for-org-heading (inserted-char) (or (and (eq inserted-char ?*) ;; If point was the beginning of the line, don't pair. (eq (1- (point)) (line-beginning-position))) (funcall (default-toplevel-value 'electric-pair-inhibit-predicate) inserted-char))) (setq-local electric-pair-inhibit-predicate #'my-inhibit-for-org-heading)) `my-inhibit-for-org-heading' is never run when typing * in this scenario, because it doesn't have parentheses/quote syntax, so `electric-pair-syntax-info' returns UNCONDITIONAL true. I'm not sure what the logic is behind this -- perhaps Jo=C3=A3o has some comments; added to the CCs. --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no